Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 04 21:08
    moemoeq commented #37
  • Sep 04 21:08
    moemoeq commented #37
  • Aug 25 12:38
    brunchboy edited #52
  • Aug 20 19:03
    brunchboy opened #130
  • Aug 20 19:03
    brunchboy labeled #130
  • Jun 24 20:40

    brunchboy on main

    Update Antora components. (compare)

  • Jun 24 20:31

    dependabot[bot] on npm_and_yarn

    (compare)

  • Jun 24 20:31

    brunchboy on main

    Bump handlebars from 4.7.6 to 4… Merge pull request #127 from De… (compare)

  • Jun 24 20:31
    brunchboy closed #127
  • Jun 24 20:30

    dependabot[bot] on npm_and_yarn

    (compare)

  • Jun 24 20:30

    brunchboy on main

    Bump lodash from 4.17.19 to 4.1… Merge pull request #128 from De… (compare)

  • Jun 24 20:30
    brunchboy closed #128
  • Jun 24 20:30

    dependabot[bot] on npm_and_yarn

    (compare)

  • Jun 24 20:29

    brunchboy on main

    Bump normalize-url from 4.5.0 t… Merge pull request #129 from De… (compare)

  • Jun 24 20:29
    brunchboy closed #129
  • Jun 24 04:22

    brunchboy on main

    Fix broken external API doc lin… (compare)

  • Jun 24 04:18

    brunchboy on main

    Fix broken external link in use… Remove newly login-protected ex… (compare)

  • Jun 24 04:18

    brunchboy on guide-0.6.3

    Remove newly login-protected ex… Fix broken external link in use… Fix broken external API doc lin… (compare)

  • Jun 24 04:18

    brunchboy on guide-0.6.2

    Fix broken external API doc lin… Fix broken external link in use… (compare)

  • Jun 23 23:14

    brunchboy on main

    Fix branch which triggers workf… (compare)

James Elliott
@brunchboy
Hello, @EvanPurkhiser and nice to hear from you! I have not seen this, no, I keep the menu items type table up to date with what I know: https://djl-analysis.deepsymmetry.org/djl-analysis/track_metadata.html#types-for-menus
I agree that looks pretty empty-ish, zero or empty-string values for everything except parent ID, which is 1. Do you know what was being requested which led to this response?
daffron
@daffron
@brunchboy Hey, Have added the logs to ticket now
James Elliott
@brunchboy
That’s great. Thanks again, they already revealed some next steps for me to work on.
@tvrdennis_twitter My email said there was a question from you yesterday, but I can not find it in the chat history now. Did you figure out what you needed? If not, could you try repeating your question here? Did anyone else see it?
Eric Lindvall
@eric
has anyone created something to save track changed events to a file?
ah, I think I found it as "Playlist Writer"
James Elliott
@brunchboy
Hello, @eric! Yes, that records performed tracks to a text file. If you want to do something slightly different, that code is a good starting point. There is also a section in the user guide which gives a walk through of how to build a simpler version of that tool: https://blt-guide.deepsymmetry.org/beat-link-trigger/0.6.2/matching#writing-a-playlist
Eric Lindvall
@eric
@brunchboy this is great. I would definitely be into writing some clojure to customize things. where exactly do I put this code?
Dennis the Menace
@tvrdennis_twitter
@brunchboy i figured it out myself :) thanks
James Elliott
@brunchboy
Hey, @eric sorry I lost track of your question, it’s been a bit of a stressful week. The user guide walks through how to create and edit trigger expressions, please let me know if there are conceptual gaps that give you trouble. If you want something that is very close to what the built in Playlist Writer does, though (since that adds some nice UI), you might be best off just forking the project and editing the source for that.
Eric Lindvall
@eric
@brunchboy no problem. sorry for the dumb questions. I was trying to figure out what I needed by just poking around the docs instead of reading them methodically. I think I understand how it all fits together now.
James Elliott
@brunchboy
That’s great to hear! Please let me know if any mysteries remain, and how things turn out. :smile:
razmih12
@razmih12

hello everybody! i am writing you regarding a little help I need.
i want to use the beatlink with Ableton, to link the tempo from my CDJs2000 to it.
all good, I manage to do that, but since I don't own a pair of CDJs 2000 Nexus2, I can't "tell" beatlink to watch the tempo from Master.
i found a workaround in my head: create 2 triggers, one from player 1, and the other from player 2. now it's the tricky part: say i trigger the tempo from player 1 witch is playing and i have to move to the next track on player 2. i want player 2 to send the tempo information once player 1 stopped playing.
i have to do this with custom trigger enabled filter expressions.

finally here's my asking: can you please help me to do this as i don't know anything in programming Clojure or anything.

thank you and big up for Beatlinktrigger <3

James Elliott
@brunchboy
Hello, @razmih12, and welcome! Unfortunately, CDJ-2000s don’t support sync, so you are going to be limited in what you can achieve, as you have discovered. Also unfortunately, I don’t have access to any of those players to try things and help write code. However, it sounds like you might already be close. When you say that you got it working with one CDJ, can you give me details about how you did that? I don’t think the newer Ableton Link feature can work, because that follows the master player, and there won’t be one with non-nexus players. So, were you using a trigger that was sending MIDI clock?
If that is what you are doing, I think you can get it to work. All you need to do is set the trigger to follow “Any Player”, and it will follow the tempo of whichever player is playing. When both are playing, it has to pick one, and I think it might just pick the lowest-numbered player. But since you are beat matching then, it should hopefully not matter. And once you stop one of them, it will be only following the other.
So, in summary, I suggest you try using a single trigger, configured to follow Any Player, and send MIDI Clock. See if that works well enough for you.
razmih12
@razmih12
@brunchboy Hello! Yes, I will upgrade to nexus2 next year. I did the link procedure as I was reading in here: https://djtechtools.com/amp/2017/07/19/decoding-pioneer-pro-link-connect-cdjs-ableton-link/
I use an RME Fireface 800 to send the link to Ableton.
I tried your version with "any player" but when I preview a track quickly in cue and if it's not in the same tempo as the other player is playing, I get quick changes between the two tempos, and obviously the Ableton did it too, sadly...
So I'll just have to wait till I buy the nexus2. Thank you for your quick reply!
daffron
@daffron

It seems Im unable to open beat link trigger, once it connects it appears on the taskbar, but has no UI

I tried uninstalling and reinstalling but seems to have remembered my old settings - where are these saved?

James Elliott
@brunchboy
That’s strange. It uses the Java Preferences API, and so it depends on your OS. Since you mentioned the task bar it sounds like you might be in Windows, and I believe that means it uses the registry, but I’m not a Windows developer so I’m not precisely certain. If I recall correctly, it organizes its settings under the key org.deepsymmetry.beat_link_trigger (yes, just confirmed that).
You can google how Java preferences work on Windows. If you can figure out where temporary directories are created, you may be able to find the log files (or check on a different machine to find the file path). I wonder if it stored window positions that are off-screen now? But it is supposed to detect that. Maybe I should add a command-line argument to clear the settings. But I would like to figure out what is going wrong in your situation.
RJBooty
@RJBooty
Hi, sorry if this has been asked before but I can't see any results for it.
When using Traktor/DVS and CDJs, the tempo information (tempo slider) is detected by BLT but Ableton/Link doesn't recognise any changes. If I use a CDJ normally (no DVS) everything is as expected. Is there something i've missed? Any pointers much appreciatef
James Elliott
@brunchboy
Hello, @RJBooty! This is the first I have heard anyone asking about this, but unfortunately I don’t really understand what you are trying to accomplish. Beat Link Trigger works with DJ Link Pro, and nearly all features of that protocol require you to be playing a track on the CDJ that has been analyzed in rekordbox to identify where the beats are, and so on. If you are using DVS, none of that is true right? So I would not expect anything to work.
However, Traktor itself can use Ableton Link these days, and so I would recommend you just use that directly, and ignore Beat Link Trigger. The fact that you happen to be using CDJs to control Traktor is irrelevant in this case, you’re not using the rekordbox ecosystem, so BLT is not helpful.
RJBooty
@RJBooty
Hi @brunchboy , thanks for the reply!
It totally makes sense that BLT requires the CDJ to play a track, I guess in this case the 'track' is actually a timecode signal/file.
Though Traktor can indeed use Ableton Link, it isn't possible (as far as I can work out) to make traktor the Master tempo for Link. Which means you can't use tempo faders on CDJs/Turntables running Traktor DVS, as they are locked to the Ableton Link tempo.
I was hoping that there might be a workaround with BLT, as currently (if I use a CDJ in normal mode/not DVS Traktor) BLT acts as the master tempo and Live is the slave.
James Elliott
@brunchboy
Yes, if you are playing a rekordbox-analyzed track, you can use BLT to control an Ableton Link session tempo, or you can allow Ableton Link to be master and control the tempo of the CDJs. That was quite a breakthrough in coding! But when you are just using DVS, I am not going to be able to do anything for you. I think that it is possible to have Traktor be the Ableton Link tempo master, but you will want to ask that on a Traktor forum for details. I have not been using it much since I moved to the rekordbox world.
RJBooty
@RJBooty
I understand that a track has to have been analyzed in Rekordbox and that that's how BLT works, but as mentioned, didn't know if there were any other 'workarounds' for my approach.
If it's any help/insight, I am actually only really using 2 turntables with Traktor DVS, the CDJ doesn't need to be DVS, the issue is having Traktor as the master
James Elliott
@brunchboy
I think that is possible, but I am not the right person to ask for details I’m afraid.
RJBooty
@RJBooty
No worries at all, I appreciate it's not really that BLT related, but thought it worth asking!
Thanks for the replies, and of course for BLT! (Using it in a separate project, as it was meant for, and it's fantastic!)
James Elliott
@brunchboy
Understood! I hope you can get things working the way you want. I may poke around a bit when I have a chance, but don’t wait around for me to. :smile:
And thank you for the kind words, I always love hearing from people who are using these projects.
RJBooty
@RJBooty
Please let me know if you do get the chance!
Weirdly, have just come across this...(I have next to no understanding of code/programming, but maybe you can make more sense of it!)
https://andyland.info/wordpress/?p=6310
James Elliott
@brunchboy
Oh, sad news, that article says I am wrong, and for some reason Native Instruments have chosen not to allow Traktor decks to update the tempo of the Ableton Link session. So that’s something you’ll need to take up with them. But I’m afraid they are having such problems with profitability and layoffs, that it’s not likely to be a development priority for them any time soon. :worried:
Maybe someday that author will figure out how to release a portable version of their program that runs on any Mac, and ideally code-sign and notarize it so it runs without complaint (but that requires paying for an Apple developer program annual membership, so they may not. I do, in order to allow Beat Link Trigger to run without complications, but it’s a bit eccentric that I spend $105/year on that.)
James Elliott
@brunchboy
If you have a Mac and you’re willing to trust an unsigned, non-notarized Mac binary (I wouldn’t recommend that personally) you could try following his instructions on how to reset the quarantine bit to run it. But going from MIDI clock to Ableton Link is a bit icky in the first place, Link is so much better than MIDI clock. Are there any other DVS programs you could use that have better Ableton Link support? I wonder if Mixxx does these days?
James Elliott
@brunchboy
Ironically, before I got sucked into figuring out how to integrate with the rekordbox beat grid, I built a way for my lighting software to tie into the Traktor beat/bar grid: https://afterglow-guide.deepsymmetry.org/afterglow/mapping_sync.html#syncing-to-traktor-beat-phase
RJBooty
@RJBooty

Standard NI being a pain!
Yeah not sure i'd use that Binary, I have other ways of sending MIDI clock and it's just nowhere near as good, as you say, as link.
It's only really traktor I use as I bought it many moons ago. I'll have a dive into some other DVS.
Might be a silly question, but would Rekordbox DJ/DVS work with BLT? The Rekordbox information won't be coming from a CDJ, but from the Rekordbox App on the Mac (I guess what i'm asking is if it's routable, somehow)

Afterglow looks interesting and a potential solution so I'll dig into it, and as it's to do with lighting might be super helpful for what we're doing.

If it's of any interest to you/others, this whole project is to gain (pretty much just) timing information from the CJDs/Turntables from Traktor/DVS system, send out (synced) CV information from Live and (synced) video from Resolume, to modular video eurorack system, final output to a projector and a TV wall. Currently, using BLT as it was meant to be used is perfect (albeit only using it for bpm information at the moment) so big thanks! Hopefully further down the line we'll look at using more of the triggers/BLT system to create something almost entirely automated

James Elliott
@brunchboy
Unfortunately when rekordbox is operating in performance mode it does not participate in a DJ Link network so it won’t communicate with BLT. It’s only CDJs and XDJs (stand-alone and now XZ) that provide the packets we need to work with.
Afterglow is probably too experimental to be worth investing a lot of time into unless you are keen on building a really unique algorithmic light show using Artnet and DMX. :smile:
RJBooty
@RJBooty
I don't suppose there's any discussion of further developing BLT to work with Rekordbox in performance mode?
(if one can even call it further development, pretty much an entirely different feature! haha)
James Elliott
@brunchboy
Sorry, you misunderstood. That’s simply not technically possible. Rekordbox is the limitation: it does not participate in a network in that mode.
So you need to lobby Pioneer to change rekordbox. But they seem to basically have it split into two different words that don’t speak to each other, and they have had no interest in supporting outside compatibility. We had to figure everything out on our own.
James Elliott
@brunchboy
(They also seem to be afraid of cannibalizing sales of their expensive “club-level” gear if they were to allow too many features to work with their entry-level offerings.)
RJBooty
@RJBooty
Ah my mistake. Thank you for clarifying
James Elliott
@brunchboy
No worries, I’m just sorry I didn’t have better news to share.
Maddix
@nmaddix
Hi @brunchboy, hope all is well. Quick question here... is the only way to generate OSC messages through clojure expressions? Is there a comprehensive guide on this somewhere? I'm finding the search feature to not be too helpful finding examples in the docs. They're sprinkled in there but searching for osc doesn't really find them, and searching for osc-send doesn't work due to the way it searches
Kevinnns
@Kevinnns

@nmaddix Don't know if this helps... but what I've done to communicate with Lightjams! is the following:

In Lightjams!:
Enabled OSC
Set the port and network adapter

Created a mapping /magic/0 this is mapped to "channel 0" in lightjams

Also I've mapped OSC channel 0 to a function inside Lightjams to do a step in a chase (turning lights on/off)

In BLT:
Main Screen:
Triggers -> Global Setup Expression:
(swap! globals assoc :lightjams (osc/osc-client "x.x.x.x" port))

Triggers -> Global Shutdown Expression:
(osc/osc-close (:lightjams @globals))

To send a command per beat to Lightjam, in BLT:
Triggers -> New Trigger

On that new trigger:
Edit Beat Expression:
(when (#{1 3} beat-within-bar)
(osc/osc-send (:lightjams @globals) "/magic/0" 1)
(Thread/sleep 40)
(osc/osc-send (:lightjams @globals) "/magic/0" 0))

Note: With lightjams it's a bit easier, as I don't have to dive into the documentation of a vendor to figure out how OSC needs to be called to execute what function. That's what got us with a "hardware" DMX table like the Hog4.
Note 2: Yes, there is a sleep in there, otherwise the OSC commands follow too quickly and Lightjams doesn't register the 1, so it'll do nothing. It depends on the destination if suchs things are needed
Note 3: The code could be way more clean, but it's what I could do :')