Invert 0>1127 to 127>0 as CC values

Irma77

2020-02-01 15:18:56

Hello Bome !

I'm interesting to use a king of simple CC assignment but I don't know how to create it :

Following the attached chart I need to assign some notes to CC's values.

-The Lowest the RTIM parameter value CC destination is : the Highest the note as to be, separating each CC value from 0 to 68 to notes 24 to 92. (respectively C1 to G#6)

How can I invert the Value destination, saying from 0 > 127 to 127 >0 ?

 

Thanks in advance...

 


Attachments:

Capture d’écran 2020-02-01 à 14.58.27.png

CreepyPants

2020-02-01 16:34:50

for incoming cc value qq

qq=127-qq

 

output: qq

 

Note: This is not an official response from Bome.
I just happen to be online this morning and trying to play Wakey Wakey Brain.  :)

Irma77

2020-02-01 16:54:40

comment

Thank you a lot but one more thing because I missed something : I only want notes from C1 to G#6 active inverted CC from 68 to 0 CC values...

CreepyPants

2020-02-01 17:18:10

Okay, so pseudocoding this:

Inc: oo pp qq

// Test to make sure it\'s an event we\'re interested in
if pp<C1, then exit/skip
if pp>G#6, then exit/skip
Note: Should also probably test to ensure it\'s a Note On Event and coming from the expected Port & Channel

// So pp ranges 36 to 104

qq=pp-104

// qq now ranges -68 to 0

// so then just make the negatives positive, and zero stays zero, so

qq=qq*-1

// qq is now 68 to 0, I think

Note: Using Note#s 36 & 104 as C1 and G#6 respectively. YMMV

Again: Note an official nor educated response. I\'m not awake and this sounded like fun.  :)

Irma77

2020-02-01 17:40:50

Thank you a lot but one more thing because I missed something : I only want notes from C1 to G#6 active inverted CC from 68 to 0 CC values...

CreepyPants

2020-02-01 17:48:33

comment

Sorry. I thought that's what I answered: First bit tests to ensure it's a Note On Event and includes the notes from C1-G#6 Then it takes the Note #'s, makes the range 36-104 to become 68-0 and then you can output that as a value to a CC out message. Apologies that I don't seem to understand what you're asking, so best bet to wait for Steve to wake up. :) Good Luck!

Irma77

2020-02-01 18:29:59

 

 

As you say it\'s really fun to play this way ... It\'s basically a retrigger becoming a synth...

Pretty nice sounds coming from this and FX\'s following in the octatrack...

 

Thank you for this and really, yeah, that\'s is nice from you ...

Thank you...

 

But I seem not understanding why you said that the  \"pp range\"  36 to 104 ...

maybe I do not understand but it seem to be normally 24 to 92 ... If I refer to the bome Note/number entries :/

 

Edit = I just replaced 36 per 24 and 104 per 92 and it seems to be good :3

CreepyPants

2020-02-01 19:00:40

comment

Enjoy! I use MTPro with an OT also. Much fun! re: pp range - Because some systems start with Note 0 as C-2 and some as C-1.

Irma77

2020-02-01 19:49:50

I'm coming back to you because this is wonderful but maybe you can help me more ...

 

I think the CC is sending back the note corresponding to the CC to the original sequencer. (or the note is sending back herself) even if I choose different channels....

Midi is :

Octa midi > Bome > Octa sample track in

I tried to send note from a different channel but it still re write note, and I don't understand why... Maybe you have an idea...

Maybe not.

 

Anyway thank you fore the help you already gave me :yep:

Steve-Bome Forum Moderator

2020-02-01 21:15:48

comment

If I understand correctly you want incoming note message number 36 to 104 and output then as CC numbers 68 to 0 and use the velocity of the original incoming note as the value. Is this correct? Example Note-On MIDI CH 1 Note 36 velocity 127 in turns into CC 68 MIDI CH 1 value 127. Note-Off MIDI CH1 Note 36 velocity 0 becomes CC 68 MIDI CH1 value 0. Note 36 would be CC 67 , Note 35 would be CC 66 etc. Is this what you are looking for? Steve Caldwell Bome Forum Moderator

Steve-Bome Forum Moderator

2020-02-01 21:39:55

Here is the way I did it.  I like to use less translators so I could do it with one translator using either note-on or note off.  Raw incoming MIDI.

Incoming: Raw oo pp qq

Rules:

// Look for Note - If it is a note any 0x9n or 0x8n will resolve to 0x80 here

rr=oo&0xe0

// Abort if not note-on or note off

if rr!=0x80 then exit rules, skip outgoing action

// Look for MIDI Channel - Mask Status byte and only look at channel byte

rr=oo&0x0f

// 0= MIDI Channel 1 - Change the below to 1 for MIDI Channel 2  etc.

if rr!=0 then exit rules, skip outgoing action

// Check incoming range

if pp<36 then exit rules, skip outgoing action

if pp>104 then exit rules, skip outgoing action

//Convert incoming note number to proper CC number

pp=pp-36

pp=68-pp

 

Outgoing: Control change MIDI channel rr CC pp and value qq

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

 

Irma77

2020-02-01 21:41:53

comment

Allright ! Thank you... :prey: Haha I imagine you are doing nice things with OT+Bome... They are many many possibilities... I will try to keep in mind the objectif of producing tracks, but everyday I'm thinking to have different process to make music... Not easy ^^

Irma77

2020-02-01 22:05:15

comment

Hey Steve ! > If I understand correctly you want incoming note message number 36 to 104 and output then as CC numbers 68 to 0 and use the velocity of the original incoming note as the value. Is this correct? Example Note-On MIDI CH 1 Note 36 velocity 127 in turns into CC 68 MIDI CH 1 value 127. -Nop : I want incoming note message number 24 to 92 and output then as CC numbers 68 to 0 Simple as that. Example Note-On MIDI CH 1 Note 24 turns into CC 21 MIDI CH 1 value 68. (& note 92 turns into midi CC21 value 0). Also I want the notes to only do that and so to be not sent as normal notes...) Also I dont want other notes of those midi channel to play note or either #CC... -I receive feedback notes, is it possible to stop them ? It is weird because those are not the notes I entered... They are written as +30 semi tones or -20 semitones... I think I need to filter the other notes and CC message distributed by notes...

Steve-Bome Forum Moderator

2020-02-01 22:19:33

comment

Post your project file and I will have a look. You might want to more tightly define the input and output ports you want to process. Also if you have any MIDI thru paths drawn, anything that doesn't have a translator will go through those paths untouched.

Irma77

2020-02-03 13:26:30

Post your project file and I will have a look. You might want to more tightly define the input and output ports you want to process. Also if you have any MIDI thru paths drawn, anything that doesn\'t have a translator will go through those paths untouched.

 

Re: Hello, good morning Steve :)

Here is the attached project.

I have a lot of lines but I named the concerned \"Steve Bome\" :3

The concerned is the last preset on the left...

Only one Line is currently doing what I want : playing correctly note to CC translation (in reverse mode)

I still have a problem : I don\'t want the original notes to ben sent, only midi CC #21 from note C1 (92) to A#6 (24), all notes must be \"shut\"... I don\"t want also CC 21 be sent over or under note C1 (92) or over A6 (24)

I writted inverted note because the CC value sent is inverted, 0 to 68.

Maybe you cannot filter more than it is ...

Don\'t know, the problem is that the octatrack receive note value as midi start stp messages...

You are very welcome.

 

Matthias

Steve-Bome Forum Moderator

2020-02-03 13:33:45

comment

Hmm, I can't see the project file. You may need to post it as an answer as comments don't accept attachments. Or you can email it to me. Steve Caldwell Bome Q and A Moderator and Independent Bome Consultant/Specialist bome@sniz.biz

Irma77

2020-02-03 15:20:37

debug :3

Irma77

2020-02-03 15:30:12

Re Steve, 

I don't know where my head is but here is the file (...)

 


Attachments:

ThankYouGuys.bmtp

Steve-Bome Forum Moderator

2020-02-03 16:35:09

Hi,

Your project file only looks at incoming note-on note 60 with velocity 127. If you want to process multiple notes, it should be set to any note and then the rules will filter out anything you don't need. 

 

Please see my attached example. As with your project, I set the rules so that it will filter out any notes out of range and is only looking for note in on MIDI CH 5.

 

 

 

 


Attachments:

Note-to-CC-Reverse-Calculate-2020-02-03.bmtp

Irma77

2020-02-03 18:09:37

Re Steve And thank you for your help but it didn't worked...

I modified the file... 

Here is a good file...

I changed channel and some stuf...


Attachments:

Re- Midi>CC.bmtp

Steve-Bome Forum Moderator

2020-02-03 18:14:38

comment

OK, as long as you have it solved. Steve

Irma77

2020-02-03 23:56:37

comment

Can you give it a look/mod to filter other notes ? :/

Steve-Bome Forum Moderator

2020-02-04 00:57:23

Sure you just need to add the following to the beginning of the rules:

if pp < 24 then exit rules, skip outgoing action
if pp> 92 then exit rules, skip outgoing action

 

 

 

 


Attachments:

Re-MidiCC.bmtp

Irma77

2020-02-04 01:54:13

comment

Thank you ! Is the placement of those two line important ? If I write it in the top or in the bottom of the rules ?

Irma77

2020-02-04 22:40:58

Hello Steve,

I'm coming back to you because I want to try something new...

 

Using the same idea that note are transformed to an inverted CC value : note 24 >92 = 0>68,

I would like to:

-the not duplicated note dont send note ON at all.

 

Is it possible for you to do this ?...

Is it possible to make me a file easily to change the frequency of duplication + CC transposition (I asked you 1/8 but maybe I would like to try other combinations).

Thank you a lot (...) ... (...)

Matthias

 


Attachments:

Note CC21 + duplication -12.bmtp

Steve-Bome Forum Moderator

2020-02-04 23:21:50

Hi Matthias,

Regarding duplicate note function, what you are asking is beyond what is offered for free support but I will summarize a strategy for you and if you want me to implement it, you can reach out to me via email to create a solution for you. It is possible but would take a bit of time. Also, I would need clarification on the requirements (I think I captured them below).

If I understand correctly, when you hit a note on MIDI Channel 5, you want a duplicate note sent one octave lower on MIDI Channel 6. However you only want to do this on every 8 notes. I assume when you have a note off on MIDI Channel 5 you also want a note off one octave lower on MIDI Channel 6.  If any notes come in between the initial count up to 7 notes later, only the original note sounds)

In order to do this you will need to track all notes played across a count of 8. This would be done with global variables. If a note is played a second time within the count of 8 on MIDI channel 1, it would still play (both note-on and note-off) but would not send the lower octave note on (or off) MIDI channel 6.

The logic for every note played would be to lookup the last 8 notes played (tracked in global variables) with rules, and the suppressing the lower note if the given note has already been played. the notes played would be maintained in 8 global variables in a rotating basis.

In rules (for the lower note translator), the incoming note would look for each note played and if there is a match, would abort the output of the lower note.

The rules for the original note translator would just load the original note variable in the order received.

 

Make sense?

Again, this would take a bit of time to implement so you you want me to write a script for you, send me email and I can give you and estimate.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

Irma77

2020-02-05 01:15:31

comment

Yeah it make sense ^^’ But it’s a bit too much complicated for me ^^’ I know I asked you something abused… Maybe I’ve an other idea, more easy (…): -Is it possible you code me just a rotation of four notes -first note > Channel 6, – the three other >channel 5 Using the same idea that note are transformed to an inverted CC#21 value : note 24 >92 = 0>68, No note on, no note off… I think I became a bit addict :/ 🙂

Steve-Bome Forum Moderator

2020-02-05 01:26:25

comment

The complexity is similar whether every 4 notes, every 8 notes.

Steve-Bome Forum Moderator

2020-02-05 04:31:46

Here you go.

The project stores the last 8 outgoing calculated CC's in variables h1-h8.

We use a counter to determine where to store it and cycle through all variables in translator 13.2

We compare the translated outgoing CC value to all of the last 8 values  translator 13.1

If it does not compare with the last 8 outgoing value, it sends a low CC value

The other translator just tracks the notes coming in and stores the translated values as well as does the original calculations .

So as long as the note you press is different than the last 8 notes, the low CC is suppressed. As long as it doesn't match the last 8, it sends the low cc.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz


Attachments:

Note-CC21-duplication-sjc-12.bmtp

Irma77

2020-02-05 15:09:08

comment

https://image.noelshack.com/fichiers/2017/13/1490998281-coeur.png Thank you a lot ! I will try it the soonest I can ! Can I easily change the number of rotation note ? If I want to change 8 for 4 notes for example. An other thing, is it easy to integrate respective Note On Note Off to the two midi channels ? Thank you

Steve-Bome Forum Moderator

2020-02-05 16:16:32

comment

Hi to change the number of notes, modify the counter in the rules of the first translator. In the second translator, remove or comment out the conditions on the higher notes. If you want to do something with note-off, you would have to write similar translators as note-on, however with less rules. The original example I posted showed a case where you could use the same translator for both note-on and note off. Steve Caldwell Bome Q and A Moderator and Independent Bome Consultant/Specialist bome@sniz.biz

Irma77

2020-02-05 22:42:20

comment

Amazing ! Amazing ! Amazing ! You are the best Steve Thank you so much for your help. What a beautiful preset ^^

Irma77

2020-02-05 23:43:05

comment

This is powerful, Super convenient, easy to work with, thank you for all your explications... Here the electronic music-computer rytm taking place... It was a long time I was thinking to this kind of use... Arpeggiator sending note to different channels... Thank you a lot for having helping me to realize a part of my dream...

Steve-Bome Forum Moderator

2020-02-06 01:49:23

comment

Probably better at the top as the rules below it should not apply or be executed. No need executing anything you don't have to.

Steve-Bome Forum Moderator

2020-02-06 01:51:41

comment

Glad to help, Matthias! Steve Caldwell Bome Q and A Moderator and Independent Bome Consultant/Specialist bome@sniz.biz

Irma77

2020-02-06 03:29:49

comment

You Really do Steve :)

Irma77

2020-02-10 19:39:46

debug

Steve-Bome Forum Moderator

2020-02-10 21:10:44

Hi, in translator 13.2 of what I sent you look at rules:

Say you want only 4 notes

On the note counter area

Where it says:

if  h0==9 then h0=1

Change it to say

if h0==5 then h0=1

Then it will only look at the first 4 notes h1-h4

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

Irma77

2020-02-10 22:30:48

comment

Good Evening Steve ! Need to ask : What is the 13.3 ? Is it the counter ? Can I here add or delete lines of rules to modify the rotation ?

Steve-Bome Forum Moderator

2020-02-10 22:32:43

comment

Preset 13, translator 3. Look in the rules section.

Irma77

2020-02-11 01:03:46

Really Sorry but I do not understand how to change the rotation

If I only play the same note it wont send no notes to the other track :/

I modified a bit the file...

Even if this preset is already really really good I dont know


Attachments:

10:02 Octatrack.bmtp

Irma77

2020-02-11 02:44:27

comment

Re Steve… Yes I tried this but it doesn’t do this :/ … I just want to copy one note to the other channel each X notes/trig … It seem to don’t be the same :/

Steve-Bome Forum Moderator

2020-02-11 03:00:27

comment

This is different than what you originally asked. Before you wanted to send 1 note to other channel only if not the same note within the last 8 notes. Now it will send 1 note to other channel if it is a different note then the last 4 notes. It won't send a note every 4 notes. If you want that, you have a simple note counter that you increment on each incoming note and when it hits 4, you send it out and reset the counter to 0. I can show you but please open another thread as this is a different request.

Irma77

2020-02-11 03:08:26

comment

Yes this is a different request I'm sorry :/ I will open a new thread... Thank you...