Jump to content

CC to Midi note, how to?


trafficarte

Recommended Posts

I've done the "search" procedure, but never found a thread about, soI feel really dumb regard it, but here's my problem and questions:

 

I got a eowave device and I'm trying to control some synth using it. I've connected a "light sensor", set it to send CC 119 to Logic.

I want to "trigger" it using some candles: the more I add in front of the light sensor, the higher value is sent by it, as CC value.

I've insert a Transformer to restrict the range of the signal, so only the right range reaches the "trigger" module.

I've set it as: Apply operation and filter non-matching events, Status : control; Channel: 1; Data Byte 1 : 119; Data Byte 2 : inside 20>40.

Below it I've put a Transform Op1, to use as "trigger module", set this way:

Style: numerical

Output: Note On

Channel: 1

-1-: G3

Input: control

Channel: 1

-1-: 119

Range 0 127

Value as: Number

Filter: Off

I've discovered that more often than not I need a "note off" signal to avoid stuck notes.

So I've putted another Transformer with "data Byte 2" set as <= 20 Fix to 0.

If I've understood this Transformer put all the notes with a velocity below 20 to a value of 0, right?

But sometimes it works, more often it never sends the waited note off equivalent...

 

My dream is to make an Environment so that I can easily control a set of chord ( with chord memorizer) using a fading light: with a single candle I can play a chord, with more candles I play others chords.

If the CC value ( i.e.: the intensity of the candle light) is more OR less a set value, that specific chord DOESN'T plays, and a Note Off message is sent to the Instrument.

 

I've experienced another crash trying to find a way to set these #*§% transformer, and I need to find a quick solution to it, 'cause I have a live set two weeks from now.

 

Any help??

 

Tanx in advance :roll:

Link to comment
Share on other sites

OK first of all it sounds like an amazing idea! I'm intrigued!

 

Now... the sensor sends MIDI CC#119, the more light there is, the higher the data byte 2 value, correct? And you want more light=higher pitch, correct? But that sounds like a theremin of sort: only one pitch. And when that pitch falls too low, the sound cuts off.

 

Now how do you generate a chord?

Link to comment
Share on other sites

OK I re-read your post - maybe for now we should just restrict this discussion to a single note. Now anything above 20 should trigger a note, and when it falls back below 20 it should generate a note off. But how many Note On events are you generating if your sensor generates, let's say, a value of 30, then 35, then 38... etc?
Link to comment
Share on other sites

Hi David,

tanx for your answer. I'll try to be more clear and specific.

What I want to obtain is a way to send specific Midi note when I have a specific range of different messages in input.

I.e: I receive ( from my CV>Usb>Midi interface) a stream of CC data.

I want to redirect those data to obtain predeterminated Midi notes.

I want to select the pitch of those notes using "sections" of the CC data.

If incoming CC data are inside a range ( say: 20 to 30 value), I obtain THAT Note On message ( say: G3).

If incoming data are outside that range, upper o lower, I obtain a Note Off for that range, in this example a G3 Note Off.

I suppose it is possible to have this task done using a bunch of transformer ( wich ones?) and some monitor to see what happens meanwhile...

What I eventually get is a system capable of playing certain notes according to the intensity of light.

Hope this is clearer, and tanx again

Link to comment
Share on other sites

Still me,

now I'm trying using a chain of Transformer: A changes CC to Midi Note, B restricts the range of action into the 20>40 area, C is a delay line, D drops the signal coming from C ( the delayed one) down to 0, simulating a Note Off.

It's not the effect I'm looking for, but it's a starting place.

That's the theory, but in the real world it's not the same...

The A and the B's work well, looking at them with Monitors, the C is just a delay, don't know if I can monitor its signal, but is the D, the Note Off Transformer, that doesn't work at all!

No matter how I tweak it, at its best it outputs a value of 1, not of 0...

I feel I'm near the solution, but can't see the light... :roll:

 

Now I test some other solutions, trying to see if I need to shrink the incoming data ( the 20>40 range of data) to a single value ( say: 30) so to have a single Note On coming in.

 

Stay tuned, and let all your brains storming togheter!

 

:D

Link to comment
Share on other sites

To output a note off you need to choose the line as on the picture below (the hidden menu above the open menu is set to "Fix").

 

Otherwise sounds like you are on your way - let me know if you have other questions. One question though: why a delay object? You can generate events with the Transformer: set its mode to "Copy Matching Events...".

10-001.png.a3f66d23c93ba9046e4a25640cf11335.png

Link to comment
Share on other sites

OK I re-read your post - maybe for now we should just restrict this discussion to a single note. Now anything above 20 should trigger a note, and when it falls back below 20 it should generate a note off. But how many Note On events are you generating if your sensor generates, let's say, a value of 30, then 35, then 38... etc?

 

Sorry if I haven't answered to this, but maybe this is the point, or one of them...

 

How can I translate a finite stream of data ( CC 119, range from 20 to 40) into a single shot Midi Note On, and after this how can I generate a single Midi Note Off *only* when my stream of data is *outside* that restricted range ( below or above the 20>40 range)?

 

good morning to all of you! :)

 

(Edit: sorry, I've just noticed you are awake and kicking for me... :shock: )

I'll try it immediately!

Link to comment
Share on other sites

How can I translate a finite stream of data ( CC 119, range from 20 to 40) into a single shot Midi Note On, and after this how can I generate a single Midi Note Off *only* when my stream of data is *outside* that restricted range ( below or above the 20>40 range)?

 

That could be a bit challenging. I suppose this would be doable by banging faders... makes my head hurt at this late hour. Maybe tomorrow! :lol:

Link to comment
Share on other sites

To output a note off you need to choose the line as on the picture below (the hidden menu above the open menu is set to "Fix").

 

Otherwise sounds like you are on your way - let me know if you have other questions. One question though: why a delay object? You can generate events with the Transformer: set its mode to "Copy Matching Events...".

 

The delay is there to send the Note Off *after* the Note On generated by the first Transformer, as suggested to me by an italian Logic user.

It's not what I'm looking for, because I need to send the Note Off varying the light intensity.

And also: I want to send this Note Off everytime the light intensity is above OR below a certain value, where other Note Ons are waiting to be triggered...

 

(That's why I'll use the Chord Memorizer: I'll have a chord progression just moving around Ikea candles in front of the Light sensor, hidden in a sculpture or something else...)

Link to comment
Share on other sites

Not having the complete Environment in my head yet, but here's some conceptual points:

 

You want to trigger notes by way of entering and leaving a defined band of cc values, where entering starts and leaving stops the note, right ?

 

You don't want to trigger a new note for every actual cc value, so it's just the movement across the border that's relevant. Therefore you have to filter all irrelevant cc values. This leaves, for instance, ccval 69/70 and 99/100 for a specific note.

 

Only if you can assure that these cc values are actually hit everytime, and reliably so, even with fast movements (which I personally would assume highly unlikely) can you think of a mechanism to process them.

 

Now you have to build a module that creates a Note On when there is either the ccval sequence 69>70 coming in or ccval 100>99.

So ccval 69 or 100 activate a Cable Switcher which then passes a following ccval 70 or 99 only for further conversion into an actual Note On. All other ccvals reset the Cable Switcher.

 

Likewise, ccval 70 or 99 activate another Cable Switcher which then passes a following ccval 69 or 100 only for further conversion into an actual Note Off. All other ccvals reset that Cable Switcher.

 

While there's the added issue of Hysteresis (check the manual's section about the Audio Noise Gate, it's explained there), all of this is essentially doable.

 

But what if you just have a cluster of loooong notes already sounding across as many separate VIs and mix each in and out according to the relevant ccval band ? While already using the Transformer's Map for that, you can even create smooth transitions between bands which you otherwise would have to fake with long attack and release times. You also avoid the missing-ccval-problem.

 

Wouldn't this be infinitely easier to implement ?

 

Christian

Link to comment
Share on other sites

I've found a way to implement what I need, don't know if is the best way however.

Only now I've read your idea, Christian, and want to try it.

I've had some trouble in the past using Switcher: never understood how exactly they work...

But here's my half-solution:

this is the Environment set for the Light sensor signal "demix"

 

http://farm3.static.flickr.com/2473/3947491204_284fbf8744.jpg

 

As you can see I've splitted the incoming signal thru a series of Transformer, each one dedicated to "fix" a CC range to an unique value, as in the nex picture:

 

http://farm3.static.flickr.com/2537/3946704031_4fd3acb064.jpg

 

 

In the next stage I've used ( following David's input...) a Bang fader, without understanding exactly how it works and what changes compared to other faders... :)

 

http://farm3.static.flickr.com/2643/3947484864_df4afc9b9b.jpg

 

At the end of the chain I've put another Transformer, to switch Off "other" notes:

 

http://farm3.static.flickr.com/2481/3946704179_089b25b1c0.jpg

 

I had a "stuck" note, the first of the crew, that because ( I suppose) it's below the first triggering level. So I've put another chain ( the upper one in the first picture) where I kill every G3 note if I receive a value below 30.

It seems to work, still experimenting.

But the idea of Christian, once undertood, seems better... :shock:

 

Have to try it!...

 

Tanx a lot to every one

Link to comment
Share on other sites

I'll explain the second approach, as it seems loads quicker to implement.

 

- create a Transformer, like this:

http://home.arcor.de/fuzzfilth/Other/T.png

- duplicate this Transformer for each band and set their Maps so they 1. smoothly fade in and out on the edges and 2. overlap nicely with the adjacent bands Maps. The plateau should be at 90

- create as many VIs and drag their volumes all the way down

- patch each Transformer into its own VI

- create an Ornament object and make its Icon visible so it will show up in the Track Instrument menu later

- cable this Ornament into each Transformer

- create an Arrangement Track for each VI and put one unique single long note on each track, like 5 mins or so

- create an Arrangement Track for the Ornament and have it selected so it processes the incoming MIDI

- hit Play and move them candles

 

Christian

Link to comment
Share on other sites

I've done some experiment, it works well.

I've found a little tricky to match the right ramp shape of the Transformer Map, but your idea is absolutely excellent!

Tomorrow I'll try with audio channels, and with rhythmic pattern instead of single notes...

 

tanx again

 

( It's amazing to play synths sitting in the dark, in front of a strange mechanical bird, manipulating candles...)

Link to comment
Share on other sites

Now I'm trying with roller coaster shaped ramp... :-)

And I've connected a transformer to the pan of the audio track, with a field recording I've done month ago at the Rome train station on it.

Really intrigued!

I've a bunch of other controller: pressure, movement, infra-red. And my set of wii-mote waiting to play... :o

 

At the moment the greatest difficulty is to avoid to burn my hands with all those candles... :D

Link to comment
Share on other sites

I'll explain the second approach, as it seems loads quicker to implement.

 

- create a Transformer, like this:

 

- duplicate this Transformer for each band and set their Maps so they 1. smoothly fade in and out on the edges and 2. overlap nicely with the adjacent bands Maps. The plateau should be at 90

- create as many VIs and drag their volumes all the way down

- patch each Transformer into its own VI

- create an Ornament object and make its Icon visible so it will show up in the Track Instrument menu later

- cable this Ornament into each Transformer

- create an Arrangement Track for each VI and put one unique single long note on each track, like 5 mins or so

- create an Arrangement Track for the Ornament and have it selected so it processes the incoming MIDI

- hit Play and move them candles

 

Christian

 

So you're actually controlling the volume of the instruments instead of triggering a Note On? SMART! I think if that works for what you want, trafficarte, then it's a great way of implementing it.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...