Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Apr 09 21:23

    brunchboy on main

    Remove no-longer needed environ… (compare)

  • Apr 07 02:45

    brunchboy on main

    Force browsers to load updated … (compare)

  • Apr 07 02:23

    github-actions[bot] on v7.0.1-SNAPSHOT

    (compare)

  • Apr 07 02:22

    brunchboy on main

    No longer throw exceptions when… (compare)

  • Apr 05 14:13
    CKunhardt closed #133
  • Apr 05 14:13
    CKunhardt commented #133
  • Apr 05 04:48
    brunchboy commented #133
  • Mar 26 19:45
    dependabot[bot] labeled #134
  • Mar 26 19:45
    dependabot[bot] opened #134
  • Mar 26 19:45

    dependabot[bot] on npm_and_yarn

    Bump minimist from 1.2.5 to 1.2… (compare)

  • Mar 26 10:27
    dependabot[bot] labeled #43
  • Mar 26 10:27
    dependabot[bot] opened #43
  • Mar 26 10:27

    dependabot[bot] on npm_and_yarn

    Bump minimist from 1.2.5 to 1.2… (compare)

  • Mar 21 00:13

    brunchboy on main

    Add thread dump instructions fo… (compare)

  • Mar 18 04:05

    brunchboy on main

    Add Zulip chat links [skip ci] (compare)

  • Mar 18 03:56

    brunchboy on v0.6.3-SNAPSHOT

    (compare)

  • Mar 18 03:55

    brunchboy on v0.7.0-SNAPSHOT

    (compare)

  • Mar 18 03:55

    brunchboy on v7.0.0-SNAPSHOT

    (compare)

  • Mar 17 23:01

    brunchboy on main

    Update chat links to the specif… (compare)

  • Mar 17 22:30

    brunchboy on main

    Update chat links to the specif… (compare)

Maddix
@nmaddix
Someone just commented about https://www.prodjlink.com/ on a reddit post where I mentioned BLT. At a glance it looks like it just extracts the timecode and doesn't have any show functionality. Ever tried it?
James Elliott
@brunchboy
Someone on this chat might have. I personally have to be careful not to look at commercial offerings in this space, because they generally have very restrictive end-user license agreements which could interfere with my ability to continue to research, develop, and offer the completely free and open-source implementations that power BLT. Also, some of the companies in this area have been extremely unfriendly, litigious, and unpleasant in the past (I’m not saying this is one of them, I don’t know what that company is called any more or even if it still exists, I just try to stay far away so I can keep doing my thing).
James Elliott
@brunchboy
Sigh… not cutting the release tonight. I fixed one bug about reporting the wrong trigger number when there is an exception in an expression at load time for triggers other than Trigger 1, but then discovered that the search function is not working properly in the embedded user guide, which makes it really hard to use when not connected to the internet. I am looking for help on the Antora users channel, but don’t want to finish the release until that is sorted out.
James Elliott
@brunchboy
Hurrah! :tada: I got the search working in the embedded user guide again with the help of the author of that integration. And then I spent all of today rediscovering how very many of my own libraries go into Beat Link Trigger, and cutting the releases of all of them neeed to build each other so I can release Beat Link Trigger 0.6.3. But that is in process right now. I also updated the version of Ableton Link that gets embedded to 3.0.3.
James Elliott
@brunchboy
And it is finally released, just in time to be an end-of-year gift. :gift:
Kevinnns
@Kevinnns
That's awesome James! I've finally started trying to use BLT for what it's supposed to, so the new way of scrolling and zooming in the wave forms in the show interface are very welcome :)
Also; The Cue Libraries are a great way to easely re-use stuff, love that! That's what I get for never really diving into the Show stuff.
James Elliott
@brunchboy
That’s lovely to hear, Kevin!
sergioherculano
@sergioherculano
Hi Colleagues, I am aware the difficult to get data from Rekordbox but I know that can be difficult but is not impossible :) this is the picture of my setup. My goal is to achieve a better integration of my DJ Setup with Resolume and My Light Software/Console via MIDI / OSC Messages to resolume and MIDI Time Code to Vista Chroma-Q, today I am able to do that but in total manual way and I would like to have it in sync or controlled via CUES in sync with the music I am playing. Is there any other findings how this can be possible ? If not from which point do you recommend me to start if I decide to develop something in this direction ? DJ Setup Layout.jpg
James Elliott
@brunchboy
If you are talking about rekordbox in performance mode, no, there is no reason to believe that will ever even be theoretically possible. It simply does not participate in a network with other devices or software in that way.
If you want to do that sort of thing, use rekordbox in export mode, with controllers that participate in a DJ Link network.
James Elliott
@brunchboy
The IP communication between rekordbox and that controller is interesting, though. If you have been able to find out anything usable in it, that would be very interesting. Are you familiar with our detailed analysis of the IP protocols that make up Pro DJ Link?
Kevinnns
@Kevinnns
@brunchboy I was looking at that as well and thinking: What would happen if you were able to spawn BLT on a Virtual IP/Nic in that same network?
But then I remembered: Rekordbox takes all
That binds to *
James Elliott
@brunchboy
And we have no idea at this point what the content of that communication is; it may be, for example, just pixels for the display or something. Someone would need to do all the analysis we did of the DJ link traffic to see if anything useful can be found, and if there is any way to join in. Since it is probably a purely point-to-point pairwise interaction, I personally doubt anything usable will be found, but I would be delighted if someone proves me wrong and spawns a sister ecosystem of projects to work in that world.
They would probably require promiscuous traffic capture, because of the pairwise nature of that communication, which would make them more complex and risky, of course.
sergioherculano
@sergioherculano

I checked some documents of Pro DJ Link that you made, to capture this communication of this controller I used WireShark, is this the best approach ? Which are the recommendations ? I would be very happy to collect all information and share here.

First think I noticed was this USBLAN that I did not heard about before, it seems that the DDJ-RZX behaves as a Network device, them I installed WireShark to inspect the communication of the controller and Macbook services and I noticed that the commuication happen in ports 50000 50001 similar what I saw in the Pro DJ Link documents found in Github.

If you give me some information I am willing to provide more data about it in the way we can analyze it.

Sérgio

sergioherculano
@sergioherculano
I just did a short capture while I am mixing in RZX with Rekordbox in Performance mode, it was made in Wireshark with Promiscuos mode on, besides that I also took the files and ports that are being used by Rekordbox and Rekordbox Agent Apps in the Macbook. The results are stored in Google Drive, I saw that there are several messages with Display Information to be send to RZX but there other thata I can't understand so far. https://drive.google.com/drive/folders/1nt38rxClVHUBn88EPbFN37QnHrFiGD4V?usp=sharing
James Elliott
@brunchboy
That sounds like the right approach. I don’t have any real recommendations other than, study the captures, see if you can figure out meanings and patterns, then test and explain and share them. That’s how we got as far as we did today. I probably won’t be able to help myself, because it’s frustrating to try to analyze things without actual access to the hardware, but the world will definitely appreciate any discoveries you can make. All the information I have to give is already published, and it sounds like you have seen it.
sergioherculano
@sergioherculano

@brunchboy Thanks for the input, I will check gain the packet detail information you prepared, anyway looking what I got from RZX so far it seems to be different values what means it will be a big work to analyze and have some results.

What I could recognize is that in the side of RZX they are using 6 Ports (49434, 49435, 49436, 49437, 49438 and 49439) and in the side of Rekordbox (49123, 49124, 49125, 49126, 49127, and 49128) the first RZX port communicate with the first of Rekordbox and son on.

Other thing is that the packets starts with 2 different patters:
https://drive.google.com/file/d/1KpHGKSU7a-ttrNpDyXU1_Laod1iK7voL/view?usp=sharing

https://drive.google.com/file/d/1KxhKckbVFf6cbUtflcYqJGuaARgQE-lK/view?usp=sharing

What is similar what you figured out in Pro DJ Link.

Let see what I can find :)

Sérgio

James Elliott
@brunchboy
That’s exciting! Best of luck, and if you have any theories that need help thinking about, or feel stuck about something, people here might be able to bounce ideas around.
sergioherculano
@sergioherculano

First and very simple to conclude, the first part represents the direction of communication flow:

192.168.110.1 -> 192.168.110.254: https://drive.google.com/file/d/1KpHGKSU7a-ttrNpDyXU1_Laod1iK7voL/view?usp=sharing

192.168.110.254 -> 192.168.110.1 : https://drive.google.com/file/d/1KxhKckbVFf6cbUtflcYqJGuaARgQE-lK/view?usp=sharing

The IP Address 192.168.110.254 is the USBLAN IP of RZX Controller. Now I am asking myself what hell is this IP 192.168.110.1 (can be Rekordbox or Something else).

Sérgio

Army
@Army-dev
hey, i didnt know anything about networking. but i'm already working on a project, which reads out the information from rekordbox into osc/midi signals. https://www.reddit.com/r/vjing/comments/jl92r3/i_dont_have_money_for_showkontrol_so_i_programmed/
sergioherculano
@sergioherculano
Hi @Army-dev , great work how did you implemented that ? I am interested . Thanks
Kevinnns
@Kevinnns
@Army-dev that looks damn awesome!
James Elliott
@brunchboy
Interesting @Army-dev, you are examining the memory of the running rekordbox program to do this? Does that work cross platform? How does it cope with new releases? And where is the source code? A very intriguing approach!
Army
@Army-dev

Interesting @Army-dev, you are examining the memory of the running rekordbox program to do this? Does that work cross platform? How does it cope with new releases? And where is the source code? A very intriguing approach!

Development is still in progress, it basically reading out the information from the memory, it works like a "game cheat", and i think it will works on cross platforms too??? i never touchd a computer with MacOS in my life :D. I gonna make it open source. if there is a new update to rekordbox i have to find the values again i think, but i didnt tryed this yet because i have a cracked rekordbox lol. (or just dont update until i relase the config file for it) I need time/motivation to finish this project to make a stable relase :) i'll update you guys

James Elliott
@brunchboy
Sounds good! My approach is to do all development in the open on GitHub even before anything works, but I know that’s not what everyone likes. Thanks for sharing what you have!
blackcoffeerider
@blackcoffeerider
happy new year everyone
sergioherculano
@sergioherculano

Happy New Year Everyone.

I found another application in GitHub that is also reading memory from Rekordbox to get the information https://github.com/Kethsar/RekordboxReader.

Returning to my point I tried to analyze the USBLan inspection of my DDJ-RZX using WireShark but not found any data that can help to get the information we need, so I decided to make another experience using Python to get information about the current track that is being played from Kuvo and it worked, them using other fields fields from Rekordbox Playlist I was able to have several information such as Track Name, Artist, BPM, track duration, start time, key, energy level and so on. I do not know how this will help me so far but let see :)

James Elliott
@brunchboy
Happy new year! Let’s hope this one is much better than the last. It is fun to see all this exploration happening.
sergioherculano
@sergioherculano
Yes, I just found a nice analysis of Rekordbox, https://rekord.cloud/blog/technical-inspection-of-rekordbox-6-and-its-new-internals and I agree that try to keep Rekordbox as a closed system is the worst thing Pioneer can do, if they open it more solutions will be developed for sure. So let`s continue our analysis and investigation :)
James Elliott
@brunchboy
That is a nice article, I was glad to see they linked to my analysis of the data files. :smile:
sergioherculano
@sergioherculano
With some ideas and using some kind of tricks was possible to grab information of tracks that are being played in Rekordbox, just started this week to implement it let's see where this will go image.png
Army
@Army-dev

With some ideas and using some kind of tricks was possible to grab information of tracks that are being played in Rekordbox, just started this week to implement it let's see where this will go image.png

Good Job!, U used memory reading?

James Elliott
@brunchboy
@Kevinnns has been talking to me privately about this, but I should share that we’re working on a cool new concept, that can be built entirely on the existing BLT platform. It uses a trigger as well as a tiny Show file to give you a GUI like the one below for selecting on which beats a MIDI event (or OSC message, or whatever) gets sent:
BeatMode.png
You can edit an arbitrary pattern on the bottom, or set it in one step using one of the larger buttons; whichever beats (and larger button, if one is applicable) are currently being sent are visibly active in the GUI.
Also, you can set up recognized tracks in another show file that you know benefit from certain beat patterns to set that pattern automatically when they start playing.
Kevinnns
@Kevinnns
Yep, cool for all the work on it already James! I hope it can benefit others at well.
To give an idea why we're having that discussion: With the current Lightning application I'm using, I'm unable to send MIDI clock or an different value to get the speed/step synced to the beat grid
So to work a round that I've been using BLT with the Beat Expression to send an OSC command to go to the next step in a certain chase
Then I started noticing that some tracks have a vibe where you'd like to change the chase/step only on the 1st and 3th beat for instance and others every beat. So instead of creating multiple chases that listen to different OSC commands to go through the steps I asked James if it was possible to do something on the BLT side to switch that up. For now we've been running with 2 Triggers and activated/deactivated the preferred trigger. But what James is now showing will work so much better and easier
sergioherculano
@sergioherculano

With some ideas and using some kind of tricks was possible to grab information of tracks that are being played in Rekordbox, just started this week to implement it let's see where this will go image.png

Good Job!, U used memory reading?

Hi Thanks, I am not using memory reading, first because I am not familiar with development reading memory pointers :), second because I guess reading memory it can be something that will requires a lot of maintenance if Pioneer change something in Rekordbox, what I mean it can be totally dependent of the version of the sofware, maybe I am wrong but since I do not know how to implement such code I started to look ways to capture the Rekordbox screens and apply OCR on top of it, and using Python and some OCR classes I was able to read all information and convert it in a way I am able to read. Right now is just a concept but I am able to read the screen and get all information. I am also in contact with this SCS that has a nice Show Control Application (https://www.showcuesystems.com/cms/), they provide me a 30 days Professional Plus license for testing. My goal now is with the information I got from Rekorbox start a CUE in Show Control System via MTC or OSC to keep videos and lights in sync with the music I am playing. right now I got a nice results with Resolume, it means, I can have a video effect for Intro, another for Drop, other for Breaks and Outros and so on, we are progressing slowly. Basically I could Achieve the same result as demonstrated in this ShowKontrol video with my approach https://vimeo.com/331869833?1&ref=fb-share&fbclid=IwAR0p-XV1nLgHZ9ntt4cOK3A6I_pkF9cw0Hx_h-eXXfBIYGUbvAxBvea-W9c, I will continue with the development and making some other tests, soon I am going to create a real project in Visual Studio and I am going to publish it in GitHub, right now I have just a piece of codes that I am working on the concept.

James Elliott
@brunchboy
So this is something that the DJ would need to cooperate with, you couldn’t run it on a front-of-house network computer like Beat Link Trigger, right? (It would still be hugely useful in scenarios where the DJ is involved, just curious.)
Army
@Army-dev

So this is something that the DJ would need to cooperate with, you couldn’t run it on a front-of-house network computer like Beat Link Trigger, right? (It would still be hugely useful in scenarios where the DJ is involved, just curious.)

Yes, this is the "main" problem for me/or with those methods. But maybe you can do it on cdj2000nxs2 and higher? I dont know if the DJ playing from cdj with usb, what you can see in rekordbox in performance mode. Soo yes Beat Link Trigger is still amazing :)

James Elliott
@brunchboy
If the DJ is playing from the CDJ with USB, it doesn’t interacat with rekordbox in performance mode. Otherwise Beat Link Trigger could as well.
sergioherculano
@sergioherculano

So this is something that the DJ would need to cooperate with, you couldn’t run it on a front-of-house network computer like Beat Link Trigger, right? (It would still be hugely useful in scenarios where the DJ is involved, just curious.)

In the development I am experimenting it can run in other computer in the newtwork, that's how I am working, Rekordbox is running in a MAC and, getting screenshots and sending it for a shared area that my Windows laptop have access to translate the information. I do not know if this experiment will be successful but let's see :)

James Elliott
@brunchboy
The DJ would have to cooperate to run something to take and share those screen shots though. Unless you are providing the computer that runs rekordbox, which is less common than when you are providing the CDJs and mixer and they just show up with a USB.