So here is my idea. Which is just a rough idea. I would like to develop a device, which can interpret Serato timecode vinyl and can use Algoriddim Djay with it.
For that functionality, I will clone my Reloop Beatpad USB interface, and emulate it to Djay. Unfortunately Djay cannot be used with any MIDI controllers and soundcards. It just works with the supported ones, so I need to fake it.
Further break down the device:
I have to make an input stage, which gets the pre-amplified timecode signal, decodes it do some math and magic, and provides the pure position, speed and direction information for further use.
The output stage must be the Reloop Beatpad clone, which is a USB soundcard and a MIDI deviceand HID device in one package.
In more details:
The first part is the timecode interpreter. This process need to be real-time with as low latency as possible. I need phono pre-amps and 4 channel ADC to capture the signal. I don’t know the required resolution and sampling frequency for that now. I’m sure 44,1KHz and 16bit is enough. The question is, can it be lower, and if so, how much lower?
The output format can be MIDI.
- Can be „Pure MIDI”. Some custom MIDI command with the required data.
- Can be „Smart MIDI”. Like faking a MIDI controller, jogwheel, pitchband, play/pause by transforming the vinyl movement, needle drop to play/pause and vinyl relative pitch to pitch slider movements. Or emulating touches of jogwheel in scratch mode. I haven’t figured out the exact method yet.
Also could be HID.
- HID has some advantages over MIDI. Polling interval could be 1ms low, and the amount of useful data can be a lot more than MIDI in one message. It can be used by custom softwares written by anyone.
It also could be a future format for inter-processor communication. To be used by another embedded processor for example.
The other half of this device is the USB soundcard.
– It has to have 4 channels (2 stereo), so I’m gona need 4 channel DAC with at least 44,1KHz and 16 bit.
– It has to be USB class compliant
– It has to have as low latency as possible.
I think the maximum overall latency should not exceed 20ms, otherwise it is less useful, and the lag is noticable. Which is a very strict restriction in engineering point of view. The time resolution of outputting HID data is 1ms. The resolution of USB audio streaming is also 1 ms. There must be some buffering because of many reasons. So this means we have no more than 20 time units to do everything. But to be in the 10-16 range would be much better.
A year ago
One year ago, in November 2013, when I had the base idea I did some research. I found DjPlayer app for iPad. Actually it is a hungarian development!!! which can do the timecode thing on iPad. This is the first, and only app till now that can do. It only needs an appropriate soundcard for 2 turntables and for 2 outputs. I only know a few soundcards which can do the trick, one is Native Instruments Audio 6 for the Traktor Scratch system. (This is the only one that has 4 phono input channels and 4 outputs and USB class compliant)
The main requirement is that the soundcard should be „class compliant”. (Which means it should not use any custom driver but the regular USB Audio Class 1.0 or 2.0 drivers) And NI does have a new firmware for Audio 6 to be class compliant. But they only have it for Audio 6, not for Audio 2 or 4/8 or 10. Such as Rane for Serato SSL series. They require additional driver.
This great app works with most of the DVS vinyls like Serato, Traktor, Mixvibes etc. It would solve my problem to buy this app and a Traktor Audio 6. But in that case my development would not have any sense, and I should use another mixing app. So I had to figure out a new problem J I decided to make a more universal device, which can work together width both DjPlayer, Algoriddim Djay and many more. And maybe have other oportunities for hackers, Ableton Live users and other perverts. And I’m going to do it just because I can J
I contacted with the developers last year and we had a quick chat about DVS on iPad. We discussed some technical details the possibility of making software modifications in DjPlayer for the hardware I would like to build. I got some useful information from them regarding the iPad side. (Like iPad cannot handle custom USB HID devices by default)
To be honest I don’t understand the reason why Traktor and Serato are not making timecode functionality in their app. Well I understand Serato, because they don’t really have iOS application, just a remote control for SeratoDj, they maybe wont’t develop a complete iOS app. But Traktor has a very nice iOS app and I think they definatelly could integrate DVS. It could be a sales decision, to keep Traktor Scratch and the new Z2 mixer in the game.
I did start some kind of development last year. I began with a simple MIDI device, that can send at least a single Note On event. I ported MIOS MIDI to STM3240G-EVAL board. And after 1-2 weeks it worked. There were no application examples for MIDI at that time in ST libraries. I made mine from the Virtual COM Port example which was one of the USB Device applications. But then I stopped the