Push Programming Oct13 04

From Cycling '74 Wiki
Revision as of 08:36, 6 November 2013 by Darwin Grosse (Talk | contribs)

Jump to: navigation, search



YouTube viewer "You & We" asked if there was a way to use this as a frequency crossfader. This was a great way to think about the device, and something that I wanted to try. The way we are going to approach is is to make the 8BandMix device into a "Master", and then create a "Slave" device that will receive changes from the Master and either match or invert the results to create either a second mixer or a crossfader.

Altering the 8BandMix Device

The first thing we have to do is change the 8BandMix device. This is going to be pretty easy - all we have to do is to take the necessary data (the slider and crossover values) and send them globally to any receiving device:


We use the send object with a name "global8BandMixControl" - without the leading "---" - in order to have this named the same for every device in the system. This gives us access to the values that we will use in our slave device.

Creating the Slave Device

Now, we can create a second device that contains much of the "guts" of the 8BandMix device, but doesn't interface with the Push - and doesn't provide access to controls that will be managed by the master device.


You will notice that we receive the data from the master, then propagate it to the places it needs to go. From there, we have to allow this device to either mirror the master (Normal mode) or flip/crossfade the master (Inverted mode). To accomplish this, we use a ggate object to determine if a calculation occurs, then that result is sent to the slider system.

Other than that, we should be good to go...

Limitations of This Approach

There are a few limitations to using send objects in this way:

  • There is an undefined delay time between a send and a receive of a message. So you won't have sample-accurate crossfading.
  • If you insert a Slave after the Master, but have already changed the crossover points or volumes in the Master, this change won't be propagated until they are changed again.
  • There can be some performance problems with sending large streams of data over a send line; this may not be a problem in this case unless you are very active on the Push.
  • Since this uses a named send object, it means that you can only have one Master device in each Live set.

Hopefully this device is still useful, or maybe you'd like to eliminate some of the problems (using speedlim and metro to resolve some of these issues); in any case, I hope this has been an interesting experiment.

Here are the devices: (Updated Nov 6, 2013 with proper receive name and slider scaling!)