Problems with Reloop Digital Jockey 2 Master edition

Bug #1020338 reported by iLugo on 2012-07-02
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Low
Unassigned
1.10
Low
Unassigned
1.11
Low
Unassigned

Bug Description

Using a Reloop Digital Jockey 2 Master Edition with Mixxx software, the Mixxx program crashes when I just press one of the play buttons (on the Mixxx GUI) after loading a music. Sometimes it gives Segfault, sometimes gives SIGABORT.

The debug information will contain several "PortMidi: `Buffer overflow'", "QMutex: cv destroy failure", "QMutex: mutex destroy failure" and finally "Segmentation fault" after many "Requested control does not exist" and ControlObject::getControl returning NULL" debug messages.

(See: http://www.mixxx.org/forums/viewtopic.php?f=3&t=3861)

I am using Mixxx v1.10.1 installed from the ppa:mixxx/mixxx repository, on my Kubuntu Natty 11.04 64bit.
My desktop computer setup:
CPU: AMD Phenom(tm) II X6 1100T; 3300MHz; 64bit
Motherboard: ASUS Crosshair V Formula
RAM: 8GiB (2x DIMM DDR3 Synchronous 1333MHz)
VGA controller: nVidia GeForce GT 440 - using the nVidia binary propietary driver, current version: 280.13-0ubuntu6.1
Controller:
Reloop Digital Jockey 2 Master Edition

As requested by D.J. Pegasus in the forum, I have created a couple of backtraces (attached). I do not have debug symbols for Mixxx, thus I decided to at least install the Qt symbols (ubuntu package: libqt4-dbg) to provide as much information as possible.
I would be glad to rerun the test if someone would provide the debug symbols for Mixxx.

Attached backtraces: Note that since I could not find a way to attach more than one file, I was forced to concatenate three backtraces in ONE file, separated by few lines full of asterisks '*********************'

1. Backtrace_without_pasuspender.txt : This was obtained by running “gdb mixxx” as per "http://mixxx.org/wiki/doku.php/creating_backtraces" . The Mixxx program failed with Segfault.

2. Backtrace_with_pasuspender_sigabrt.txt: This was obtained by running "pasuspender mixxx" and letting it generate a core dump, then loaded it in gdb. The program here failed with SIGABRT.

3. Backtrace_with_pasuspender_sigsegv.txt: This was obtained by running "pasuspender mixxx" and letting it generate a core dump, then loaded it in gdb. The program here failed with SIGSEGV.

Note that in all tests, the way to crash the program is to: 1) Load a music in one or the two sides, and 2) Click a Play button on the GUI.

iLugo (isra) wrote :

Additional information:
$ lspci | grep -i 'usb'
00:12.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.5 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:16.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
04:00.0 USB Controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
05:00.0 USB Controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
06:00.0 USB Controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller

I see the problem. Disable the MIDI Through device, then reload the Reloop preset and let us know if that solves it.

iLugo (isra) wrote :
Download full text (3.3 KiB)

Sorry, I am afraid you are going to have to be more detailed. I am not a Mixxx experienced user, I just bought the Reloop device, installed Mixxx and have not been able to use it yet, to my great frustration:
Do I do this with the Reloop device connected ? if so, do I connect it before or after I launch Mixxx? How exactly should I do the "disable, then reload the Reloop preset" action? I mean, this is what I am doing in an attempt to guess from your brief instructions:
1) With the Reloop device OFF, I launch Mixxx.
2) Then: Options -> Preferences -> MIDI Controllers -> 1. Midi Through Port-0 -> Remove the check mark from the "Enabled" -> click OK. (I am assuming this is what you mean by "Disable the MIDI Through device" part)
3) My interpretation for the "reload the Relooop preset": now I go again: Options -> Preferences -> MIDI Controllers -> 1. Midi Through Port-0 -> put the check mark on the "Enabled" -> click "Load Preset" and select "Reloop Digital Jockey 2 Controller Edition". Then click "Yes" to the "Are you sure?" popup. Then click OK to go back to the main window.
4) Now I switch ON the Reloop device, previously the USB connector is connected.
5) After several seconds, I drag a music to the left side and another music to the right side.
6) If I click on any buttons of the Reloop device, nothing happens.
7) I click any of the play buttons on the GUI and Mixxx crashes and closes.

Next attempt:
1) With the Reloop device still connected and ON, I launch Mixxx (after the crash).
2) Then: Options -> Preferences -> MIDI Controllers -> 1. Midi Through Port-0 -> Remove the check mark from the "Enabled" -> click OK. (I am assuming this is what you mean by "Disable the MIDI Through device" part)
3) My interpretation for the "reload the Relooop preset": now I go again: Options -> Preferences -> MIDI Controllers -> 1. Midi Through Port-0 -> put the check mark on the "Enabled" -> click "Load Preset" and select "Reloop Digital Jockey 2 Controller Edition". Then click "Yes" to the "Are you sure?" popup.
When I do this, I get a series of popup messages like this:
Mixxx - MIDI script function not found
The MIDI script function 'DigitalJockey2Controller.EnableHeadPhone2' was not found in loaded scripts.
The MIDI message 0x90 0x41 will not be bound.
(Click Show Details for hints.) Details:
* Check to see that the function name is spelled correctly in the mapping file (.xml) and script file (.js)
* Check to see that the script file name (.js) is spelled correctly in the mapping file (.xml)

When I click OK, then another popup almost identical, just with different script functions, like 'DigitalJockey2Controller.EnableHeadPhone1', 'DigitalJockey2Controller.LoopIn' and many others that "will not be bound".
4) After clicking OK to all of those, I get to the Midi Through Port-0 page, so I click OK to return to the main window.
5) I drag a music to the left side and another music to the right side.
6) If I click on any buttons of the Reloop device, nothing happens.
7) I click to any of the play buttons (left or right) and to many other buttons on the GUI and Mixxx does NOT crash, it seems to work normally. But no Reloop controller.

Was this what ...

Read more...

RJ Ryan (rryan) wrote :

Hi iLugo,

What Sean means is that you should disable the MIDI Through Port (uncheck the 'Enabled' box) and leave it disabled. The MIDI-through port is not a valid MIDI device. Do you see a device in the preferences representing the Reloop device?

The fact that the MIDI-through port can crash Mixxx is a serious problem we've had for a while though. We really should either blacklist it or pin down the race conditions that allow it to crash Mixxx.

Changed in mixxx:
importance: Undecided → Critical
milestone: none → 1.10.1
iLugo (isra) wrote :
Download full text (3.2 KiB)

Hi Ryan,

Thanks a lot for the explanation.

Now I understand that the Midi Through port is something that I do not want enabled in any case until the bug is fixed.
However, I still have the problem that the Reloop device is not recognized and do not even appear in the preferences, as you can see in the attached .png file.

How this is supposed to appear? I have tried connecting and reconnecting the Reloop device USB connector to different USB ports. Is there anything else that I need to do to get this device recognized by Mixxx? am I doing/missing something incredibly stupid?

I have seen the "Mixxx says I have no HID controllers attached even though I do" entry in http://mixxx.org/wiki/doku.php/troubleshooting . However, I do not see any message in the log that suggests that no controllers are attached.
These are the only Warning lines I have in mixxx.log (11 warnings):
Warning [Main]: Requested control does not exist: "[Samplers],show_samplers" . Creating it.
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:13
Warning [Main]: Requested control does not exist: "[Vinylcontrol],show_vinylcontrol" . Creating it.
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:13
Warning [Main]: Requested control does not exist: "[Microphone],show_microphone" . Creating it.
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:13
Warning [Main]: QGLContext::makeCurrent(): Cannot make invalid context current.
Warning [Main]: Requested control does not exist: "[Spinny1],show_spinny" . Creating it.
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:13
Warning [Main]: Requested control does not exist: "[Spinny2],show_spinny" . Creating it.
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:13

And interestingly, in the last few lines of the log, I still have this:
Debug [Main]: MidiDeviceManager::getDeviceList
Debug [Main]: Writing MIDI preset file "/home/kaka/.mixxx/midi/Midi_Through_Port-0.midi.xml"
Debug [Main]: MidiMapping: writing script block for "Reloop-Digital-Jockey2-Controller-scripts.js"

...although the Through port has been disabled (and the program restarted and the Reloop reconnected since that).

So, could this mean that there is still some configuration that forces the Reloop device to be associated to Midi through port, perhaps as a result of a previous configuration where the port was enabled? could this be reseat/eliminated to see if the program will finally detect the Reloop device? or, again, perhaps I am failing to do a basic thing?

I have to say that the Reloop device is working under Windows/Traktor, so I have to exclude a hardware failure from the Reloop device itself or its cable.

Once again, thank you for your interest . The Reloop device is a "Top Seller" in conrad.de, so I am sure this could help others who, like me, want...

Read more...

iLugo (isra) wrote :

I have attached the mixxx.log file, per the previous comment.

Hi iLugo,

If the device doesn't show up in Mixxx then it is likely that it is not
supported as a MIDI device on Linux. I did some Googling and can't find any
mentions of Reloop Digital Jockey being supported on Linux. Do you know if
it is supported or not? Does it work with any other LInux MIDI apps?

Could you run these two commands and paste the output? The first one lists
all of the MIDI devices that Linux recognizes that are plugged in and the
second lists all the USB devices that are plugged in.
amidi -L
lsusb -v

On Wed, Jul 4, 2012 at 12:56 PM, iLugo <email address hidden> wrote:

> I have attached the mixxx.log file, per the previous comment.
>
> ** Attachment added: "mixxx.log"
>
> https://bugs.launchpad.net/mixxx/+bug/1020338/+attachment/3213340/+files/mixxx.log
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/1020338
>
> Title:
> Mixxx crashes with Reloop Digital Jockey 2 Master edition when
> pressing play button
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1020338/+subscriptions
>

Hi Ryan,

I am attaching the requested output for the commands listed below in the next comments immediately.
I have done:
lsusb -v
sudo lsusb -v
amidi -L
amidi -l
aseqdump -l
aconnect -i

Interestingly, lsusb output (see attachment lsusb_-v.txt) will state: "libusb couldn't open USB device /dev/bus/usb/002/003: Permission denied." for all devices. For this reason, I run it with sudo (see sudo_lsusb_-v.txt). It shows now at least the iManufacturer, iProduct and few additional lines. This is different than lsusb as regular user.
Does this mean that it is just a permission issue and I should try the "Mixxx says I have no HID controllers attached even though I do" entry in http://mixxx.org/wiki/doku.php/troubleshooting ?

iLugo (isra) wrote :
iLugo (isra) wrote :
iLugo (isra) wrote :
iLugo (isra) wrote :
iLugo (isra) wrote :
iLugo (isra) wrote :
iLugo (isra) wrote :

By the way, the Reloop Digital Jockey 2 Interface Edition is reported to work in Ubuntu 10.10 amd64 http://permalink.gmane.org/gmane.comp.multimedia.mixxx.devel/3727 -- and previously also working on Ubuntu 9.10 in http://www.digipedia.pl/usenet/thread/15448/754/
Of course, my device is not the IE but the Master Edition. I wonder if the differences are that big as to make it absolutely not working at all in Linux.
The differences I note in the Reloop website are that the Master edition has:
- Flexible input-routing: phono/line inputs can be routed to the software or the master output
- Fully digital mixer: Internal signal processing is constructed digitally
- Symmetrical outputs and additional outputs
whereas the IE does not.

I will try again creating the /etc/udev/rules.d/15-mixxx-usb.rules and see if this yields any significant differences.
The goal now is obviously to understand if Linux supports at all the Master Edition.
I do not know if this will make a lot of sense, but I can also try with a live DVD, such as Ubuntu 12.04 or Mint 13 (based on Ubuntu 12.04) , perhaps first in a VM (VMware or VirtualBox), else directly on my desktop pc. This could be useful only if the issue is not some kind of configuration/permission issue, otherwise I might have the same issue in the other distro.

Any suggestions/advices are most welcome.

iLugo (isra) wrote :

FYI:
Ubuntu 12.04 (32 bit, kernel 3.2.0-23-generic-pae) running on VirtualBox yields _exactly_ the same output for all the above commands.

RJ Ryan (rryan) wrote :

Hmm. It looks like the Reloop device is this one:

Bus 002 Device 003: ID 200c:1009

The device class is "Vendor Specific" which means that it is not a class-compliant MIDI device and Linux needs a driver to speak to it.

Have you already tried creating a udev rule? Could you paste the contents of what you're trying here?

iLugo (isra) wrote :

I have done as instructed in the last entry of http://www.mixxx.org/wiki/doku.php/troubleshooting , i.e., created a udev rules file: /etc/udev/rules.d/15-mixxx-usb.rules with the following contents:

# Allow scannining USB devices
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="mygrouphere"

# Allow communicating with HID devices
ATTRS{bInterfaceClass}=="03", GROUP="mygrouphere", MODE="0660"

Then: "sudo chmod 644 /etc/udev/rules.d/15-mixxx-usb.rules"
Then: "sudo stop udev"
Then: "sudo start udev"
(ubuntu's way for sudo /etc/init.d/udev restart )
Then log off then log on again

I disconnected the Reloop device, then reconnected it. Then did dmesg, and the relevant line (last) is:
[19124.876038] usb 2-3: new high speed USB device number 5 using ehci_hcd

Then: "amidi -l", "aseqdump -l" and "aconnect -i" yield exactly the same output as the original experiment above (see attachments).

Then "lsub -v" (no sudo) yields (for the Bus 002 Device 003: ID 200c:1009 ) exactly the same output as the above attachment sudo_lsub_-v.txt - at least now it is not necessary to do sudo, thanks to the above udev rule.

Then if I run Mixxx, all remains the same: the Reloop controller is not shown in the Preferences -> MIDI Controllers section, and I can use Mixxx, but no controller (as long as I do not enable the midi Through port, then Mixxx crashes).

Running out of ideas.... so far it would seem as if Linux does not recognizes it and needs a driver, even in Ubuntu 12.04 with kernel 3.2.0-23.... unless I have something wrong with my PC's hardware (but in dualbooting in Windows/Traktor it works).

I still find strange that the Interface Edition would be recognized but not the Master Edition... I would like to know what is the driver that the Interface Edition is using, or by which mechanism that version works. I have seen posts in the forum like this http://mixxx.org/forums/viewtopic.php?f=7&t=1226&p=14638&hilit=reloop#p7754 where the user Jones seems to know about the Master edition.

HID controller support is new as of Mixxx v1.11.0. Please download the latest beta from the forums and see if it appears (though I'm doubtful given that lsusb output.)

Apparently, despite the similar names, the two controller editions have very different interface hardware.

If it doesn't appear in v1.11.0, a contributor is working on bulk USB device support for v1.12.0 so that might help you. (Keep an eye on the forums as we'll post a test build there when the feature is ready to test.)

iLugo (isra) wrote :

Thank you very much Sean,
I will try your suggestions when I can find a little time. These are two very good news that provide hope. I am glad this project has good support and development is very active.

RJ Ryan (rryan) wrote :

Since the crashes were related to the midi-through-port (which is a known issue) I'm renaming this bug to just focus on supporting the reloop device.

summary: - Mixxx crashes with Reloop Digital Jockey 2 Master edition when pressing
- play button
+ Problems with Reloop Digital Jockey 2 Master edition
Changed in mixxx:
importance: Critical → Low
milestone: 1.10.1 → none
Donny (donato-troccoli) wrote :

Hi everyone, I've got the same hardware and the Reloop Digital Jockey 2 Master edition isn't working at all with Mixxx in Ubuntu 13.10 Saucy distr.
I think that first of all the device have to be recognized by ALSA in its control panel as a sound card or else.
To do this i think that must work on the kernel, for example develop a Reldj_mod kernel module and load it as a usb driver, 'cause to work fine the device must be turned on before turning on the computer (said by the seller).
What do you think about?

Donny (donato-troccoli) wrote :

I think the difference between the others edition of the reloop digital jockey 2 is this (Master Edition) has a built-in audio interface or sound card. D/A sample audio conversion is made by the Reloop device and then sent to the outputs Balanced /Unbalanced /Booth RCA.

Donny (donato-troccoli) wrote :

In the manual is written the device can work also in standalone mode, this means it can get inputs by external CDJ or turntables. Also it can work in midi mode with pc.

Donny (donato-troccoli) wrote :

What does "No Linux MIDI Driver" mean?
Is it impossible to make this device work with linux for hardware incompatibility or
there is no time/money for developers to work on this?
Working hard on this "Midi driver" in linux is there the hope to make it work?

RJ Ryan (rryan) wrote :

Re-posting what I wrote on the forums:

Hi Donny,

That means that somebody needs to develop a MIDI driver for the reloop on Linux before Mixxx can use it. This typically involves reverse engineering the USB implementation to figure out how the device sends MIDI data over USB and then writing a Linux USB driver (or alternatively a user-space driver with libusb) that would present the device as a MIDI device.

It's totally possible but nobody on the Mixxx team has this device to build the support for it. Mixxx is created by volunteers so in a sense there is no time or money for developers to work on this :). If you find someone who has the device and is good at writing Linux drivers then that might be a good person to convince to work on it :). Not having the device makes it very very difficult to do this work.

iLugo (isra) wrote :

Hi Donny, Ryan,

It is sad that things are like this, but Ryan has explained it very well. Ever since I reported this issue back in July 2012, I could not find any other solution, despite the very kind help of Ryan and others, than not use the device in Linux, my favorite OS. I do have a partition with Windows XP, but honestly I don't even like to boot in that piece of ...OS, so my frustration is big because the Reloop device was not cheap, but is not in use. I sort of kept my hopes that after more than one year perhaps "someone" would have written the driver as Ryan explained. But now I see where we are.
I don't code drivers, but don't want to just now put the damn thing in the garbage, I will have to either wait, or try to discover someone who would be able to do a decent job. Of course, an obvious difficulty, that guy would need to have the Reloop thing with him/her to do that. While I might even be able to find a guy (perhaps a friend of a friend), this would be in another country, so I could not even lend him my device so easily.
A nastier alternative (more difficult for me than any of the previous ones) is to swallow the frog and ... use it under Windows; but I would not like to quit as of yet.

iLugo (isra) wrote :

By the way, I wanted to --once again-- thank so much Ryan and the Mixxx team for their excellent and very friendly support and congratulate them for the amazing work they do. The world needs more people like you guys.

Donny (donato-troccoli) wrote :

Thanks Sean for the answer.

Donny (donato-troccoli) wrote :

Building this kind of driver implies costs? I don't mean the cost of the developer writing and reverse engineering work.

RJ Ryan (rryan) wrote :

@Donny -- the costs I was referring to are the developer purchasing a Reloop Digital Jockey 2 Master Edition and then spending many hours of their time reverse engineering it. Presumably once they have written the driver they will contribute it to the Linux kernel so it will be available to all as FLOSS.

If you'd like you could start a campaign on a site like Pledgie. We have had success doing fundraising for small projects on Pledgie (such as this one: https://pledgie.com/campaigns/13624 ). You could use this to raise money to buy a willing developer a unit and compensate them for their time.

Donny (donato-troccoli) wrote :

Then to write this linux driver is there no need to ask any kind of permission to Reloop Gmbh?
Thanks however for suggestion ;)

RJ Ryan (rryan) wrote :

Ah, sorry I misunderstood you. No there is no permission necessary from Reloop since the reverse engineering is for compatibility purposes. It would be ideal if Reloop were to develop the driver themselves but I imagine they have little interest in this.

jus (jus) wrote :

@Donny
Since you are a customer with legitimate interest, have you asked Reloop about on the status of their Linux driver efforts?
http://www.reloop.com/contacts

Donny (donato-troccoli) wrote :

Thanks everyone for helps :).
@jus
No, I haven't. I'll contact them anyway for an eventual support in this.

Donny (donato-troccoli) wrote :

@jus
This is what Reloop wrote me:
-----
Hi Donato,
Linux is very rare used and unusual in the DJ section, so we're sorry to tell you, that there are no linux drivers available.
------
that was predictable.

Donny (donato-troccoli) wrote :

Happy Xmas to y'all!!

Donny

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers