PDA

View Full Version : Changing output in a timeline



kodamapixel
09-14-2009, 11:21 PM
This may not be a question for the OSCulator forums, but I thought someone here may have some experience doing something similar, so it's worth a shot!...


I'm using OSCulator to route Wii remote data to Processing (as OSC, then output as DMX lighting control) and Live (as MIDI). This is for a performance piece I am working on with dancers and I want to be able to change triggers, depending on *when* they perform a particular move.


For instance, if one raises their arm at the beginning of the piece, I may want it to make a light flash, but if they raise their arm later, I may want it to trigger a sound effect instead. With regard to OSC, I imagine it's not efficient to try and change the data coming from the Wii remotes, so it may be something I need to work on at the other end of the chain, ie DMX and MIDI.


Has anyone done any work with OSC and timelines?

ugo
09-14-2009, 11:44 PM
Know nothing about Processing, but maybe you in a software with a timeline or something similar you can set some "trigger" to change the output of OSCulator.

Your work seems similar at something I'm working now, and I'm really fascinated to know more...;-)

I'm using Logic, a sequencer, and into it there is the Environment, a powerful way to manipulate input data. Here I can switch data from a source to a different target using the main Midi arrangement window. It's a weird type of explanation, I know, but hope to render the right sense...

kodamapixel
09-15-2009, 02:16 AM
Thanks ugo. I've heard Logic's Environment is pretty cool, but I don't really have the time/money to get into another DAW right now.


You could be onto something with MIDI arrangement though - perhaps I can do something with automation in the sequencer of Live, so that MIDI will only trigger certain events and automated times.


I've also found this fantastic looking library/tool for Processing that adds timeline functionality: http://www.drifkin.net/timeline/

ugo
09-15-2009, 08:43 AM
I know nothing about Live, it's a fantastic software but I've never ever used it. I think it has many features to make what you need, but you have to ask to someone else...

I hope to find the time and the mental resources to begin to dive into Processing, someday...


P.S.: I gave a look at your link and seems to be exactly what you're looking for.

camille
09-15-2009, 11:51 AM
Hey K,


I have an idea here : What about sending MIDI CC from Live to OSCulator and trigger that control message from your timeline in Live?


Say you are sending MIDI CC 1 on channel 16, oscltr will register a message like /midi/cc1/16.

You could then use that event with a Latched or Toggle Enable event to enable / disable events based on the timeline position.


A picture's worth a thousand word, here an example of how it could work:


http://i69.photobucket.com/albums/i70/tuscland/th_kodamapixelstimeline.png (http://s69.photobucket.com/albums/i70/tuscland/?action=view&current=kodamapixelstimeline.png)


If you need more details, feel free to ask.


Cam

kodamapixel
09-15-2009, 12:53 PM
@ugo - Processing is actually a lot easier to come to grips than it first seems. Check out Daniel Shiffman's book for a really great primer: http://www.learningprocessing.com/


@Cam - Thanks so much for the tip. I think I'm getting this: so the Live timeline would control when OSCulator starts/stops passing messages for different parts of the Wii (like the roll, or button A) by sending MIDI back to OSCulator?


Or would it be changing the routing (of the roll/button A), so that it could send out different MIDI notes (for example) depending on what messages Live was sending?


The latter is kind of what I'm guessing from the image, but I haven't played much with the routing structure in OSCulator yet, so I'm not really sure.


I guess you'd end up with a workflow kind of like this...?


Processing <-- OSCulator <--> Live

kodamapixel
09-15-2009, 01:46 PM
Actually, I answered my own question above by copying your setup in the image - you're right: a picture is worth a thousand words!


My next question is more specifically how that setup works. The signal coming from Live is duplicated, so it can be routed, but how do you set the value of those duplicates? Eg, how is one triggered by 127 and the other by 10?

camille
09-15-2009, 10:32 PM
Actually, both of those duplicates perform the same action: they enable or disable their targets (in this case, the Wiimote's button message is either disabled or enabled).


The Wiimote's button message is also duplicated to be able to perform two different actions. To make them mutually exclusive, just check or uncheck the "enable" checkbox of one of the two target messages. Then, when fired, the "Latched Enable" events will just reverse the state of their targets.

kodamapixel
10-03-2009, 03:05 AM
Hi Cam. I've run into some problems with the 'Latched Enabled' method. I'm not exactly sure what's going on, because it doesn't seem to be a consistent error, so I'll just try to explain it as best I can...


If I run OSCulator and the corresponding Live project 'fresh' from launch of both, I have no problems, but if I move around Scenes in Live I get unreliable results when sending CC14 messages (strangely, it seems to be only CC14). Sometimes OSCulator won't pick up CC14 at all (even though Live appears to be sending a MIDI out message) and if I stop Live and relaunch a Scene, sometimes OSCulator will suddenly receive a phantom CC14 message, as if it was 'stuck' somewhere between the two programs and relaunching a Scene in Live pushes it through.


I'm using OSCulator 2.8.8 and Live 8.0.5 on OS X 10.5.8. Here is a screenshot of my OSCulator setup...


http://i680.photobucket.com/albums/vv169/kodamapixel/OSCulatorLatchedIssue.png

camille
10-03-2009, 10:39 AM
I think it has something to do with you Live configuration.

In Live preferences, I would suggest you uncheck "Remote" for OSCulator's input MIDI interface.

This is only useful when you want bi-directional MIDI with the user interface.

In your case, you are just sending MIDI CC, so "Track" should be enough.

kodamapixel
10-04-2009, 09:38 AM
Hi Cam, thanks for your response. I unchecked "Remote" for "Input: OSCulator Out", but Live stopped receiving messages from OSCulator. I instead tried unchecking "Remote" for "Output: OSCulator In (8000)", which allowed messages to be sent from OSCulator to Live, but hasn't fixed the problem.


It seems to be a specific issue with CC14 Latching the four parent rows (/wii/1/accel/pry etc). The two controls Latched by CC16 (pitch of both nunchucks) haven't failed to be triggered at all.

kodamapixel
10-05-2009, 09:38 AM
I have just discovered a workaround of sorts (it may really be a previous 'oversight' on my behalf): instead of having CC14 at zero (no message) for the clips that don't include a Latched event, I set them to either 1 or 127, depending on whether I want the Latch on or off. This constant message seems to keep both programs a lot happier.

camille
10-05-2009, 09:00 PM
Hmmm, glad you found a workaround!

But I still don't figure out the "root of the evil".

kodamapixel
10-05-2009, 10:55 PM
My guess is that it's because Live is treating midi values of zero as no message. Maybe because Live isn't sending this information to OSCulator, the Latched state isn't changing and there is some kind of confusion between the two programs.


If it helps, I can email you a copy of the Live set and OSCulator file?

camille
10-06-2009, 09:06 AM
Yes, please that would be interesting.

Please note that triggers in oscltr happen when the values crosses 0,5.

For a MIDI message that would mean the value crosses 63.

camille
10-18-2009, 11:15 PM
Hi Scott,


Sorry for taking so long to respond.

I have tried your session in Live 8.0.14 and OSCulator 2.8.8.

Everything seems fine, CC14 got triggered ok, and the /wii/1/accel/pry message got enabled/disabled as it should. It seems you used a low value of 1, which worked. I tried with 0 and it works as well.


Cam

kodamapixel
10-19-2009, 02:43 AM
HI Cam, that's fine - the problem seemed to sort itself out for me too. Just one of those temporary ghosts in the machine perhaps?