-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Rane Serato TTM57SL Mixer Audio Card #5904
Comments
Commented by: francois-martorello I have a rane ttm 57 to help, I have already plug it on linux, alsa recognise only one input output mixer, but there is two input to plug the decks and one output.
|
Commented by: daschuer Do we have a contact person at RANE? They might have a personal interest to make their hardware work with Linux. |
Commented by: millard-alan I'd like to help out with this if I can, as I've just bought a Rane TTM57SL mixer, and I'd like to get it working properly with Mixxx. I'm running Mixxx under Ubuntu 11.10, and I've got Serato installed and working with the TTM57SL under Windows. Can anyone tell me what software I can use to debug the USB bus, in order to determine what messages are being sent to/from the mixer? |
Commented by: millard-alan I've used USBTrace (http://www.sysnucleus.com) to log USB traffic to/from the mixer. I plugged in the TTM57SL, started logging, and then started Serato. After 125 messages the log got repetitive, so I assume all of the relevant control commands for configuring mixer output occur within these first few messages. I've attached the log in USBTrace format and as an exported .txt file, as well as the exported device information. Is this helpful to anyone? |
Commented by: ywwg HI alan, thanks so much for your help! Can you give me the output of "aplay -l" when the Rane mixer is attached to the system? |
Commented by: millard-alan No problem :) I'm happy to help in whatever way I can. Here's the output of "aplay -l" when the mixer is connected: **** List of PLAYBACK Hardware Devices **** I should mention that I'm able to get some functionality with this mixer and xwax/Mixxx. The problem is that I have to set the mixer to output the control tone, so that xwax/Mixxx can pick up the signal. Unfortunately, this means that the control tone is affected by the crossfader, so it cuts out and prevents vinyl position tracking. When I'm using the mixer with Serato, I set the mixer to output the digital signal coming back from Serato, which carries the overlayed audio. In this set up, the control tone is unaffected by the crossfader, only the overlayed audio is (which is what we want to happen with xwax/Mixxx). Is this simply a case of mimicking the initial USB communication between Serato and the TTM57SL, within Mixxx, or is this something for the ALSA development team? |
Commented by: Pegasus-RPG Doesn't that mixer also send control signals a la MIDI? Please plug it in to your Linux system, do sudo lsusb -v, then copy and post just the section about that mixer (it'll probably be quite long.) |
Commented by: millard-alan Here's the mixer section of the output of "sudo lsusb -v": Bus 002 Device 004: ID 13e5:0003 Rane |
Commented by: Pegasus-RPG Excellent! "bInterfaceClass 3 Human Interface Device" means it should work fine as a control surface with the features_controllerAbstraction branch. |
Commented by: ywwg I've seen DJs click checkboxes inside Serato to select what mixer outputs to use. I think there are four checkboxes and they can pick two. So my question is, are there any special USB packets sent when the user clicks these checkboxes? |
Commented by: millard-alan I know which checkboxes you mean Owen. Under the Hardware tab in the Setup screen of Serato, there's a section called Control Source, with two checkboxes for Deck A - 1 and 2, and two checkboxes for Deck B - 3 and 4. I'm having trouble checking whether clicking these checkboxes sends any special USB packets, because USBTrace isn't able to capture in real-time once it gets past the initial handshake between the mixer and Serato, due to the large volume of messages being sent back and forth. I can filter the messages by type, but I'm not sure what I'm looking for. Do you have any idea what kind of USB packets I should be checking for? To make matters worse, USBTrace keeps crashing and giving me the blue screen of death, forcing me to reboot, so it's taking me ages to do this by trial and error. Can you recommend any other USB traffic analysis software that might be more stable? |
Commented by: ywwg I really don't know what to look for, I don't know anything about USB :/. The output of aplay -l shows only two audio devices so somehow Serato is talking to the mixer and asking for the correct audio feeds. The only other idea I had is, if you set up Serato to work correctly, leave the mixer on, and then hook up a linux computer, do the audio inputs work as expected under linux? Or do the audio inputs always reset to the master/headphone output, which is what I think it's sending? Maybe you can select the correct audio inputs in Serato running in Wine or something crazy like that? |
Commented by: francois-martorello-gmail I think you should interest to alsa drivers create new driver or add
|
Commented by: millard-alan I just tried running Serato in Wine, but unfortunately it's unable to communicate to the mixer over USB. I just get the message "Rane Hardware Disconnected". From a quick Google, this seems to be a common problem, I don't think anyone has managed to get Serato working with Wine. I also tried what you suggested Owen - setting up the mixer with Serato, leaving the mixer on, then disconnecting the USB cable and plugging it into a Linux machine. This doesn't work either - Mixxx still needs me to change the mixer input to the analogue signal from the turntable, so that the control signal gets output over USB. I guess this means that the initial USB communication with Serato isn't enough to persistently configure the mixer? When I'm using Serato, I have the mixer input set to the digital signal coming back from Serato, and somehow the analogue signal from the turntable is being routed through to Serato over USB behind the scenes. I've found some better software called HDD Software USB Monitor (http://www.hhdsoftware.com/usb-monitor), so I might be able to get more information about the USB traffic, if someone can tell me what I should be looking for. There's a constant stream of packets to/from the mixer after the initial handshake, of types: URB_FUNCTION_GET_CURRENT_FRAME_NUMBER I've tried filtering these out, and then playing around with the checkboxes in Serato, and there doesn't seem to be any USB packets of types other than these being sent when I do it. This means that either there is no communication between Serato and the mixer when you tick the checkboxes, or that it uses one of the above packet types that I've filtered out. Perhaps all of the mixer outputs are always available to Serato, and it just chooses which to use rather than instructing the mixer to provide a particular output? Maybe this is a fundamental problem at the ALSA driver level? If I run "alsamixer" and select the TTM57SL as the sound card, it just says "This sound device does not have any controls." |
Commented by: Pegasus-RPG Since the thing speaks HID, you might be looking at too low a level. Try getting an HID sniffer and see if that gives you any clues. (HID packets are sent on interrupt transfers.) BTW, if you have Scratch Live running on internal mode, then yank the USB connection, does it notice immediately or will it keep working? |
Commented by: millard-alan This USB Monitor software is part of Device Monitoring Studio, which is also able to capture HID traffic. I just noticed that the mixer shows up differently before/after I start Scratch Live. Before starting Scratch Live: Universal Serial Bus controllers Sound, video and game controllers Human Interface Devices After starting Scratch Live: Universal Serial Bus controllers The mixer goes from being a composite USB device, comprising 2 audio devices and an HID device, to a single Rane TTM 57SL device. The configuration before starting Scratch Live looks similar to the output of "sudo lsusb -v" under Linux. I think Scratch Live installs a new driver for the mixer when it starts up. This seems to be mentioned in the manual (http://serato.com/downloads/files/67733/Scratch_Live_TTM_57SL_Manual.pdf): "Additional Windows Drivers: Once Scratch Live is installed, any additional hardware that is connected will be recognized and the drivers will be automatically installed." I've tried setting up the software to sniff packets for the HID device, but as soon as Scratch Live starts up, the capture stops because the devices change. If I monitor the new Rane TTM 57SL device, then there are various "views" available: Raw Data View, URB View, Packet View, HID View. I see a constant stream for each view except HID, which is blank, even when I play around with the checkboxes in Scratch Live, so it doesn't look like any HID packets are being sent. I think if there are any important control signals, they should be in that log of the initial handshake that I posted earlier? However, I expect a lot of it might just be querying the mixer to figure out which driver to install. I should mention that the Rane TTM 57SL device driver that gets installed once Scratch Live starts, only persists for as long as the USB cable is connected. If I unplug it, and then plug it back in, the mixer goes back to being detected as a composite USB device. Sean: If Scratch Live is running in internal mode, then it does notice immediately when the USB cable is disconnected, and stops working until you plug it back in. I think this is partly due to the fact that Scratch Live only outputs audio via the mixer (since there's no option to output audio locally, like in Mixxx). What does this tell us? |
Commented by: ywwg It sounds like the Rane mixer behaves like a standard USB Audio device until Scratch talks to it, activates a proprietary driver, and says "ok, time to turn on all the cool features." So my conclusion is the mixer must be dual-mode and will require a special driver in order to work with Mixxx. Since the Rane/Serato people give away the Scratch software for free (they make money on these mixers and hardware), maybe we should ask them about the possibility of opening up the spec? The argument being, it will allow even more people to use/buy their hardware. Or will they think it's possible to use that information to create new hardware that would allow Scratch to run on non-Serato sound cards? (No one would actually do that, since making hardware has never been open source's strong suit and it would be an obvious lawsuit target) |
Commented by: millard-alan That sounds plausible Owen. I think Serato might be more concerned about losing Scratch Live users to Mixxx, since they've recently released The Bridge (http://serato.com/thebridge/) for use with Ableton Live. While Scratch Live is free software, Ableton Live isn't, and I expect Serato and Ableton have some kind of financial agreement based on the premise that Scratch Live will bring in new Ableton Live customers. Rane may also have a contract with Serato which ties their hardware to Scratch Live? That being said, I think it's definitely worth approaching Rane about opening up the spec - you never know unless you ask. As you say, it's in their interest to provide Linux support, so that more people buy their hardware. There probably just isn't enough demand for Rane to bother developing a Linux driver themselves, but giving us the spec shouldn't be too much hassle for them. Does anyone know who to contact within Rane about this? |
Commented by: millard-alan Out of interest, I just tried getting Mixxx to work on Windows, and ran into similar issues. Scratch Live now comes packaged with ASIO drivers for the Rane TTM57SL, so you can use it with software other than Scratch Live. Unfortunately, by default, the driver is configured to output the post-fader signal for both channels, and there doesn't appear to be a way to configure the driver directly through Windows. However, I found a thread on the Serato forums (http://serato.com/forum/discussion/110139), which explains how to configure the ASIO driver via Ableton Live. By following these instructions, I was able to select the pre-fader signals for both channels. This configuration is persistent, so I can then close Ableton Live and open Mixxx, and Mixxx will receive the pre-fader control signal, so it is able to track the position of the vinyl even when the crossfader is closed :) Sadly, this is still limited to a single-turntable setup, since the mixer must be explicitly set to output the analogue control signal, otherwise Mixxx won't hear it (unlike Scratch Live, which is somehow able to listen to the analogue signal even when the mixer is set to output the digital overlayed audio). This would seem to confirm that the problems experienced under Linux are indeed due to driver issues, and that Scratch Live isn't communicating with the mixer over USB to tell it which signals to output. |
Commented by: Pegasus-RPG Please test the mixer on Mixxx v1.11.0-alpha1 or later and let us know if it shows up as an HID device under Controllers in Mixxx. If so, run Mixxx with --controllerDebug and see if you can figure out the control packet format. |
Commented by: millard-alan The mixer shows up as an HID device under Controllers in Mixxx 1.11.0-alpha2 (if run with root privileges, for write access to USB HID controllers). This initially showed up as “TTM57SL 1.00_6”, but after enabling it and restarting Mixxx, it showed up as “TTM BOOT 1.00_0”. I then selected Load Preset: EKS Otus. This seemed to communicate with the mixer, but then all of the red skull LEDs on the mixer lit up, and it became unusable. Fortunately, I was able to fix this by connecting to the mixer using Serato Scratch Live under Windows. I think the HID communication with Mixxx caused the mixer to reset. This is probably unlikely to cause any permanent damage, but I'm not willing to continue playing around with this, since the mixer cost me a lot of money, and I don't want to break it. Sorry, guys. |
Commented by: Pegasus-RPG Okay, great to hear that it is an HID device! It's never recommended to load presets for other devices to avoid exactly what you experienced, as HID packet formats can vary widely between devices and nobody wants to risk permanent damage. So please delete the EKS Otus xml file from .mixxx/controllers/. However, you can safely run Mixxx with the --controllerDebug parameter, enable the device but don't choose a preset, then as you manipulate it, the HID packets it sends will show on the console. If you're interested, you can look closely at it to see which byte(s) change(s) for each control. It sounds like the main problem though is enabling time code to go to Mixxx while Mixxx's audio comes out the 57's outputs. For this, I'm afraid we will either need to contact Rane, or use an HID sniffer on SSL. |
Commented by: Pegasus-RPG For reference, apparently the TTM-57SL shows up as two separate sound cards. See the bottom part of http://dj.rane.com/support/knowledge-base/how-to-setup-rane-hardware-with-virtual-dj |
Commented by: ywwg This mixer is now EOL by Serato (it won't work with their new software) so a bunch of these might be coming on the used market soon. If Mixxx can support them that would breathe new life into old hardware! |
Commented by: synthead1 I just purchased a Rane TTM-57SL and am very interested in seeing support for this hardware. I use both Linux and Windows environments and would be glad to upload any data that would be helpful. |
Commented by: Pegasus-RPG Synthead: I saw your comment in IRC. You actually don't need to load a preset at all. |
Commented by: ywwg This bug is for supporting the Rane's audio card, not any HID knobs. If it's possible to get controller information from the Rane and that's what's being asked for, please file a separate bug. |
Reported by: ywwg
Date: 2011-05-20T19:42:48Z
Status: Confirmed
Importance: Wishlist
Launchpad Issue: lp785939
Tags: hid
Attachments: [Contains the files: rane_ttm57sl.utl, rane_ttm57sl_log.txt, rane_ttm57sl_device_information.txt](https://bugs.launchpad.net/bugs/785939/+attachment/3046308/+files/Contains the files: rane_ttm57sl.utl, rane_ttm57sl_log.txt, rane_ttm57sl_device_information.txt)
We briefly had access to a Serato mixer and discovered that while it works with Mixxx, we were unable to configure the mixer to tell it which audio channels to send over USB audio. The mixer has multiple modes, including sending out raw input, mixed output, etc. No options show up in Alsa-mixer, so our guess is that there are simple USB signals that the Serato software sends to the mixer to change these settings. It would be really cool if Mixxx could talk to this mixer and change its settings. (It would be even cooler if this were implemented as part of an ALSA driver...)
Fixing this bug will require expertise and hardware:
Once we identify the USB messages, it should be possible to implement them in Mixxx and duplicate this functionality.
The text was updated successfully, but these errors were encountered: