Lykos153 / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4 stars 4 forks source link

Support multiple layers for the performence pads #5

Open Lykos153 opened 6 years ago

Lykos153 commented 6 years ago

The state of the Pad section is hardcoded in the device. Serato Intro only supports the basic modes: Hot Cue, Loop, Sampler where the lower 4 keys are always for manual loops. Serator DJ supports 4 layers: normal press, double press, shift+press, shift+double press. Those are hardcoded as well and I haven't yet found a way to access them. As I don't own a copy of Serato DJ, I also can't sniff them.

We could implement this manually, but that would require a lot of additional work. I thought about using the PARAM buttons to switch layers, as they don't seem to be used outside the sequencer mode.

https://www.mixxx.org/forums/viewtopic.php?f=7&t=11664&p=37897#p37897

eigengrau commented 6 years ago

I’ve made the following tweaks to the pad section and will try them out this week:

eigengrau commented 6 years ago

Did you get a chance to intercept some MIDI traffic between Serato and the controller? It might be nice to have cue-loop and roll modes, with the button LED blinking to indicate the mode. Only the LED doesn’t respond to the obvious MIDI messages. I wonder if this is something that requires the proprietary Roland driver (though I couldn’t see why it should). On the other hand, the Virtual DJ folks seem to have pad state LEDs under control.

Lykos153 commented 6 years ago

I couldn't do this, because the starter version of Serato doesn't support multiple layers. However, I'll try to do it with Virtual DJ next Monday.

eigengrau commented 6 years ago

Sounds good. As per the website, it also looks like it’s possible to install Serato Pro in trial mode.

From Googling around, it looks like it’s not possible to capture MIDI traffic sent by applications though. So the miditrace tool will probably only show MIDI sent by the controller; but that’s a start I guess.

You also mentioned capturing USB frames from the VM? This is probably a bit of work, but if you have a VM setup anyway, it looks like Wireshark has a display filter for MIDI events sent over USB audio. Though, Serato requires the proprietary Roland driver, so not sure if this will even be shown as USB audio.

eigengrau commented 6 years ago

Oh, btw, I remembered that there used to be the program MIDIOX, which would install a virtual MIDI output for applications to use. Data sent there could then be processed or logged before being sent on. If Serato can be convinced to use that MIDI output, maybe that would be an easier solution. It also looks like there’s LoopBe now, which looks similar.

Lykos153 commented 6 years ago

Got it!! A successful day resulting in two lines of code =D

Now there are 4 layers of the performance pads. The buttons now send:

The pads send the same messages in all 4 layers, so we have to rewire them.

eigengrau commented 6 years ago

Awesome! Is it christmas already? Did you need to resort to using Wireshark?

Lykos153 commented 6 years ago

Yeah, Virtual DJ didn't like the virtual midi output^^

github-actions[bot] commented 3 years ago

This issue is marked as stale because it has been open 90 days with no activity.