Almost immediately after finishing Part 3 of this series, I ran into a technical problem that compromised the methods I had worked out so far.
The BCR2000 is a very flexible MIDI Controller, but its not perfect.Its biggest feature is that it can receive Parameter Feedback fromAbleton Live. My plan was to have 16 MIDI Channels of controllers,spread over 16 BCR presets. This heavily relies on the ParameterFeedback feature.
Ay, There's The Rub
Here's the snag: The BCR will only update the parameters of thecurrently chosen preset. So I got 15 useless presets / channels. Mysolution? Max/Msp! Or Jitter to be more specific.
When you load a Live Set (or when you turn MIDI Learn on/off), AbletonLive sends out all the current values of all MIDI assigned parameters.I simply collect all that data in a matrix that can store 16 times 128messages.
The BCR itself only sends out its data on MIDI Channel 1 to the Maxapplication. With the top-right knob on my BCR, I can select which MIDIchannel will be transmitted to Live from the application. Song 1 iscontrolled from channel 1, song 2 is controlled from channel 2, etc..
If I select song 2, the BCR will be updated from the matrix so thatI can see the correct values for the different parameters. And everyknob and button thats is touched sends out its values on channel 2 fromthe Max application to Live.
In a sense, this seems like some reasonable future proofing to me.Because I wont need 128 parameters per song. And I could add othercontrollers that function in the same way.
Anyway, enough talk. I hope the video makes sense and is somewhatenjoyable to watch. Keep in mind that the songs featured in this videoare tracks that I whipped up in less than 5 minutes, just to try outthe new controller software I wrote.
The BCR application itself will be available once I've worked out all the kinks, added some features and written the manual.
In the next part of The Live Set, I'll get technical again and focus on getting some of my old songs into the set.
nice! this is giving me lots of ideas for making my padkontrol/o2 setup work for me. what are you using for the 303 sound? i'd love to have a bass soft synth that has so many parameters to tweak...
one last thing, are your sets all that minimal (one scene per song)? or is that just to test the functionality of the new set?
I am using ABL2 for the 303 sound. (www.audiorealism.se)
I'm done with test projects for now. I'm currently working on an intro and a few songs. I'll post the details about that somewhere this week.
My songs will be more complex then they currently are being featured. These minimal bits are things I put together in 5 minutes for testing purposes.
I'm happy with my setup for now and will continue to build until i got about a 30 minute set before I allow myself to question myself and rebuild everything again.
Obviously I am always going to find flaws and bugs. So its a matter of self restraint to NOT let this be another dead end.
I'm happy this blogging experiment is giving people some ideas and it has even sparked some discussion. But in reality, its one more reason for me to not give up and restart the process like I already did so many times before.
I just got a BCR2000 myself and immediately ran into the same problem you encountered: the BCR only updates controller values on active channels. The strange thing is that there must be memory for the values of all controllers on all channels, since when you switch presets, the old values show up. This seems to me like a bug in the BCR firmware (or maybe a hardware limitation?).
I tried writing my own klduge in puredata (a free max/msp alternative), but gave up when I couldn't figure out how to traverse arrays to send the buffered controller values to the bcr upon song/preset change. Is there any chance you could release your patch?
I'm considering trying to write the kludge using the java midi api, but I'd rather not have to do that. For now, I'm using the ^M^M kludge in ableton to refresh the controller values after switching presets.
Many thanks for your tutorials. Your BCR/song setup was really effective in our last jam session.
I will share the (max 5) patch soon, once I stabilized it. Though I have to say that I haven't really encountered any bugs. It just requires a specific routine to be executed for it to work.
I only have one excuse for the delay on part 5. It has been a freaking heat wave here the past few days and my working room is a turkish steam bath on those days. I'm praying for some good old fashion crap weather. I'm enjoying this current setup and I want to get my hands dirty.
Bjorn -- wow, thanks for this series. Though I'm looking forward to your plans to release the Max 5 patch, I'm assuming this means I need to own Max 5 to use it, yes? (Which I don't...yet.)
I'm not that familiar with Reaktor but I imagine it is possible. In the end, its just a patch that collects 16 channels of data and lets you control one of 16.
i own a BCR2000, and the way you have Jitter set up to act as an interface between the BCR and Live so you have a continually updating set of visual parameters is genious - i've been trying to figure out a good way to use the multiplicitous functionality of the BCR and this seems to be the way to go, there's no point in being able to store all that data on the BCR but have to swap out paper templates or look through a book of templates or whateve.
I've been making music for a long time using arrangement view and have been producing music with "old school" equipment for a long time. I'm getting into the exciting world of generating music with Ableton using loops and clips. I have read your "setting up a live set" article several times. I am awaiting the arrival of my BCR2000 but I just can't wrap my brain around the concept that led to your creating this interface - I'm going to try to explain my confusion.
What I think you're saying is that if I set up 16 songs (as 16 scenes) using the BCR to control different parameters of different scenes (songs), using the knob to select song 1-16, then if I'm on song 1 and I tweak some of the parameters, then I go to song 2 to tweak, if I were to go back to song 1, all the parameters would be back to their default setting, without saving any of the changes.
Like I said I may be way off, a lot of this is new to me and I'm trying to understand these concepts.
I'm working on a video that should clarify most of your questions.
As for your confusion with how my 16 song system works with the controller and how everything is stored: Thats pretty much the point of the application. Being able to see the knobs and labels was just an afterthought. The main purpose of the application is to store and recall the values from Live for the BCR.
The BCR has a limitation which prevents you from doing the same thing with 16 presets on the BCR. So I made an application that has 16 presets for 1 BCR preset.