Traktor track name / time to LCD via MIDI! ...using Denon LCD support & Arduino

Midi track string

So how easy would it be to port the string information coming out of the denon driver into osc to send track titles to touchosc or lemur? because that would be awesome.

bump - anyone made any more progress with this?

I have been meaning to come out of hibernation! lol I have been very busy with my new career as a PCB frontend engineer so not had as much time to work on music tech stuff as I have been used to in the past.

I have put Arduino to one side temporarily, I have been developing with PIC and C more recently and now have a working USB MIDI core design. After manufacturing my first Arduino design (01M) I decided that I just couldn’t move forward without being able to add USB to my designs. I have not abandoned Arduino, I have just developed a way to add full speed USB MIDI to any of my projects :slight_smile: The chip I have been working with is a PIC8F4550 (same as the one on the CUI board). Although I could now theoretically add USB MIDI to Arduino with my recent project, im not sure if it is ‘ethically’ right to use AVR and PIC in one design!! :stuck_out_tongue:

So with regards to the Denon LCD MIDI project, I would hope that utilising full speed USB MIDI (no UART emulation / FTDI chip) could iron out some of the issues we were having.

Im currently working some really exciting projects and will no doubt return to the forums in the near future when I have some new and exciting developments to discuss :slight_smile:

The data produced by Traktor for the Denon is all MIDI so I would have thought this would be quite straight forward given the right tools. The MIDI data could be passed out of Traktor over a ‘virtual MIDI cable’ to a program which could convert the data to OSC. This program would also need to be able to convert the MIDI bytes into a format which controlled a display over OSC. I have not had any time to experiment with Max for Live yet, but I think this program is the kind of thing you would need to use to achieve this.

good to see you back on the forums man… you and djnecro made some really interesting threads/posts… this place is kinda boring nowadays :disappointed:

Can Traktor output deck playing/deck not playing info? I’m building my own MIDI controller and I’ve got LED indicator on the play button so if I could somehow get info about when the track stopped playing I would turn that LED off.

Sorry for bumping btw.

Yeh, add out > deck common > play/pause.

Yeah I figured it. Thanks anyways.

Still trying to figure this out to use with my teensy… Not getting it!

huge bump here :slight_smile:

Is there any clear guide/tutorial/easy way to actually do that ?
via the HC4500 or via Autohotkey or via anything else ? Also saw in another thread the same question raised (Output "artist - track" name from Traktor)

@MiL0 did you manage to do it finally?

or to make it even easier, is there any way to extract just the trackname/artist name of deck A/B to a txt file ?

thank you for ANY help !

This could be used for triggering external workflows!

I have submitted a feature request for Traktor to send track load and track unload messages:

TP-11697 Please implement metadata notifications on LOAD and UNLOAD

If this data can be pulled some other way by modifying my TKS4 mapping to send track info over Midi or otherwise to Ableton this would suffice. Here is my project.

If this can be accomplished without adding work to the NI queue or changing Traktor in any way I would love to try it. I am going to check out your work and see if I can utilize it.

Thanks.

I would love to do something like this with the browsers in both Traktor and Serato.

seems like this should be easier now that we have the S8 - has anyone ever tried sniffing / reverse engineering the communication protocol?

Yes, I’m working on a QML file (QML files hold all the logic for the S8, S5 and D2) that sends track information to a Node.js server, after which you can display it on a webpage or send it somewhere else. It still needs some work though to get it 100% reliable.

first of all:

great ideas and great work so far!
I’m working on a similar project to get my old broken cdj 800 back to life, ready for midi and with a little extra things that could be displayed on a display. The ATmega168 could be a bit small for that, but an STM32 M3 or M4 could work…
I was wondering which information I can get from Traktor in general. Maybe we could get the Waveform information through usb (maybe it has to be an HID-based controller instead if MIDI?)

what do you guys think?

Did you ever finish this? Even a half baked project would be cool & I can help if you want, I’m considering using this instead of the Denon thing for my controller.

Yhea I wanna get a D2 just to see what they are doing with the display data, would be so awesome if we could jack this, I wonder if they are sending visual display data or just the info and are rendering it on the controller itself.

Funny, I hadn’t touched that code for 3 years, but I actually revived it last week and finished it. It’s very reliable now. The Node.js part is unfinished, but I’m sure you could whip something up once you see what data it sends. I’ll put it up on GitHub soon.

[QUOTE]
Yhea I wanna get a D2 just to see what they are doing with the display data, would be so awesome if we could jack this, I wonder if they are sending visual display data or just the info and are rendering it on the controller itself.[/QUOTE]

Traktor renders the entire D2 screen on the computer and sends it to the controller, the D2 itself doesn’t do much. I’m not sure if you could trick Traktor into sending the screen somewhere else.

Wow thanks for both of these things! Was super curious about this for a long time and love to check out that code on GH.

Hey Erik any chance this is on GH? I would love to try it out on my new S1 OLED screen:

Here you go: GitHub - ErikMinekus/traktor-api-client: Send live track data from Traktor Pro to a web server

Basically you need a webserver that listens to those endpoints and parses the request body as JSON.

Let me know if you need more help.