Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phrase information #11

Open
oliver-eve-music opened this issue Aug 16, 2022 · 7 comments
Open

Phrase information #11

oliver-eve-music opened this issue Aug 16, 2022 · 7 comments

Comments

@oliver-eve-music
Copy link

Is your feature request related to a problem? Please describe.
Hello, would it be possible to make phrase information available to OBC? It seems like it is available in beat-link Deep-Symmetry/beat-link-trigger#119

Describe the solution you'd like
Have access to phrase information sent from players over ProDJ Link.

Describe alternatives you've considered
The only alternative I know of is to use Rekordbox with CDJ3000 and the RB-DMX1 lighting control unit. I'd like to be able to do this without being confined to Rekordbox

Additional context
N/a

@brunchboy
Copy link
Member

Hi, and thanks for the interest!

If you would like to add this, then a pull request would be welcome. There are not enough people using OBC for me to immediately consider doing it myself. Now that it is easy to use a full BLT installation on a Raspberry Pi 4, with the GUI running over a VNC virtual display, I don’t feel there is much reason to use the far-more-limited OBC, or to try to port features to it.

If you can provide more concrete details of your use case, and exactly what information you are looking for and how you would use it, I might try to find some time. But I would encourage you first to try to do it yourself and contribute the changes.

@oliver-eve-music
Copy link
Author

Hi @brunchboy

Thanks for the swift response. Does BLT run and export OSC data also?
The reason I am looking to use this project is to have it communicate with lighting software I am writing that will sync lighting shows with a Pioneer XDJ-XZ. Having access to the phrase information will allow for a much better lighting control as I will be able to react to the energy of different parts of tracks (break vs chorus for example).

@brunchboy
Copy link
Member

BLT is an integration environment where it is easy to add code to do whatever you like, and there are examples of how to send OSC. And it has a user interface where you can assign actions to phrase types. Building that would be a lot of effort in OBC. But hashing out the details of how you would propose to do that, as well as the exact kinds of OSC messages you would want to send in different circumstances would be the first step towards determining whether it makes sense to try to build this in OBC, or just use BLT.

@oliver-eve-music
Copy link
Author

I'd expect it to operate in much the same was as the OSC beat endpoints.
Phrase information is exported with the tracks to the USB and are basically labels at certain time codes within the track.
At any given time only 1 phrase can be active, but a track has multiple phrases and alternates between them, e.g. intro, bridge, chorus, break, outro, etc.
Being able to respond to changes in these phrases would allow for lighting software to react to the different phrases and say change to something calmer for a break, vs something with more energy for the chorus for example.

@brunchboy
Copy link
Member

That is still too vague to implement; there are a lot of different phrase types and families (track moods), you would need to specify exactly which OSC messages would be used for each. Just look at how complex the phrase triggers section of the BLT user guide is: https://blt-guide.deepsymmetry.org/beat-link-trigger/7.0.1/shows_phrasetriggers

There is also a notion that the player can be in a “fill” section of a phrase, which is at the end, suggesting the main part of the phrase has ended but the next phrase has not yet begun. It is shown as dots in the phrase color bar within rekordbox. That might be worth communicating as well.

Also the track can be in one of eight “banks”, and that would probably be useful information to convey as well.

So the first step is to list all the OSC messages you would like to use to convey all of this information. Then, perhaps set up a proof-of-concept doing it in BLT. But once the details are ironed out, then we could look at how it would be actually implemented in OBC.

@oliver-eve-music
Copy link
Author

Ok cool, ill do some digging and get back to you on this. Thanks for the info.

@brunchboy
Copy link
Member

brunchboy commented Jun 8, 2023

@oliver-eve-music if you are still interested in this, you will probably enjoy studying the integration example I added to the BLT user guide showing how to send phrase information to TouchDesigner: https://blt-guide.deepsymmetry.org/beat-link-trigger/7.1.0/Integration_TouchDesigner.html

We ended up deciding to use JSON over UDP rather than OSC, because there is just too much information about phrases for OSC to be a good fit, as I was discussing above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants