Is this possible?

remotecontrol

2009-02-04 22:11:58

I have seen posts on cc to note already but Im not sure if the "twist" I want to add would change the entire sequence of things.

I want to have a potentiometer slide up and down specific Notes that make up a scale. The effect would be much like dragging your hand up all the black keys on a piano making a pentatonic scale.

Now...here is the twist: I want a separate note to trigger the actual hitting of the keys. So say my left hand uses the potentiometer to line up the notes and my right hand hit a button that hits the keys. "NOT" like a Gate function but the actual note on/off.

Now that I am thinking about it, the behavior would be similar to guitar hero. I guess the only difference from what I can tell is that on guitar hero it seems to be a simple rule that says "if left hand is on said key and right hand strokes pick at the same time then a preselected note is "gated" open" in my scenario any note could be chosen at any time by the potentiometer and the pick/key/button plays the note on/off

So what do ya think?

remotecontrol

2009-02-05 07:26:40

BTW like I said I havent purchased the pro version yet so its not eminent that I see the rules. I just want verbal proof of concept :P

remotecontrol

2009-02-05 17:33:03

so its not possible:(

remotecontrol

2009-02-06 21:31:57

So do you have any take on this? Id really appreciate it.

S4racen

2009-02-08 15:18:31

I think it's possible if you use global variables, like a shift function, trouble is i believe the notes would only play when you change to a new one after the shift is pressed?

Thinking about it though it sounds like a cool idea.... Let me have some time...

Oh by the way i'm up to 16 quantized Jump points on BLU, still can't get them to react seperately to speed and length though even though i've seperated all the controls for them, did you have any luck??

Cheers
D

remotecontrol

2009-02-08 20:03:20

Hey Man! Nah didnt get them to work independently. I kinda gave up on it because I didnt really feel like it would give me much more useful effects. I mean if i knew how I would do it but Im content with the 2. I plan on mapping a button or knob that i can change different speed scenarios on the fly. 16! damn do you really need that many? I guess I would know that answer if I tried but sometimes I feel like 8 is overkill.

Yeas like a shift function! Only reversed! So instead of hitting (shift),(a) = A. You would hit (a),(shift) = A

Maybe I should repost with this type of description because nobody seems up to the challenge.

So yeah let me know what you come up with (about bomes that is) its kinda crucial for this grand scheme I have!

S4racen

2009-02-09 10:44:33

Yeah i thought 16 would be too much but then i can set loops at 2 bars and use my padkontrol or microKontrol pads to trigger on every beat or half beat, great when you have a two bar vocal or breakbeat running.....

Didn't get a chance at the weekend to have a play so might get a night this week....

Cheers
D

remotecontrol

2009-02-10 03:44:02

S4racen wrote:Yeah i thought 16 would be too much but then i can set loops at 2 bars and use my padkontrol or microKontrol pads to trigger on every beat or half beat, great when you have a two bar vocal or breakbeat running.....D
Ahh yes 2 bar vocals, I see now how that could work great.
S4racen wrote: Didn't get a chance at the weekend to have a play so might get a night this week....

Cheers
D
Thanks

remotecontrol

2009-02-10 03:47:41

So on the off chance anyone is willing to help me on this I have posted a link to a different thread that talks about a technique that seems like it may be a solution to what I am trying to achieve.

http://www.bome.com/forums/viewtopic.php?t=1412

Maybe I am way off on this but I am trying :?

florian

2009-02-12 19:04:53

hi remotecontrol,

this can be done with MT. I'm not sure if you want notes to be retriggered if you turn the encoder while it is playing. But let me start with the easiest solution -- a chromatic player:

Code: Select all

Translator 1: Note ON
Options: stop=true
Incoming: MIDI 90 pp qq
Rules:
 pp=ga
 if qq>0 then gb=ga
 if qq=0 then pp=gb
Outgoing: MIDI 90 pp qq

Translator 2: Note OFF
Options: stop=true
Incoming: MIDI 80 pp qq
Outgoing: MIDI 80 gb qq

Translator 3: Use CC 1 to select note
Options: stop=true
Incoming: MIDI B0 01 qq
Rules:
  ga=qq
Outgoing: (none)
We use the global variable ga to store the current value of the controller (in this case, CC1 -> mod wheel). Then when you hit any note (90 with velocity>0), the note value is patched to the value of ga. We also remember the currently sounding note in the global variable gb.
Now when you release the note (NOTE ON with velocity 0, or NOTE OFF), we use the stored value gb as note to turn off.

Haven't tried myself, but should work.

Florian

PS: next step is to implement the pentatonic scale...

remotecontrol

2009-02-12 22:12:59

Wow it works like a charm! Thankyou so much! Right the pentatonic scale. Im gonna have a look around the forums to see what i can come up with for this. If you have some time to help me with that I again would be very grateful.

remotecontrol

2009-02-12 23:22:59

Havent found any threads that i can use to help me with quantization of the pitch...

florian

2009-02-13 00:07:32

well, I don't know so much about the pentatonic scale, but if it's just the black keys, then the scale should have 5 notes (makes sense, given the name...). Now you could just have a series of IF statements for every controller value and assign the correct note, e.g.
let qq be the controller value, then:

Code: Select all

if qq=0 then ga=0
if qq=1 then ga=2
if qq=2 then ga=4
if qq=3 then ga=7
if qq=4 then ga=9
if qq=5 then ga=12
if qq=6 then ga=14
...
You'd need to do that for all 127 values of qq. Fortunately, there is a smarter way: since the scale repeats itself every 5 controller values, we can just calculate it. Use these extended rules of the last translator:

Code: Select all

Translator 3: Use CC 1 to select note
Options: stop=true
Incoming: MIDI B0 01 qq
Rules:
 Label "scale qq (optional)"
 qq = qq / 3
 Label "the octave shift"
 oo = 3
 Label "calculate qq modulo 5 in tt"
 rr=qq/5
 tt=qq*5
 tt=qq-tt
 Label "make qq a pentatonic scale from tt"
 if tt=0 then qq=0
 if tt=1 then qq=2
 if tt=2 then qq=4
 if tt=3 then qq=7
 if tt=4 then qq=9
 Label "add input octave"
 rr = rr * 12
 qq=qq + rr
 Label "add octave shift"
 oo = oo * 12
 qq=qq + oo
 Label "set ga to new pentatonic note"
 ga=qq
Outgoing: (none)
I've documented the rules using Labels. You need to play around with scale and octave shift. The lower the scale value, the finer grained will your slider be. The higher the octave shift, the higher the output notes.

Florian

remotecontrol

2009-02-13 05:20:59

So thankyou again Florian.

I was not able to get the script you wrote in last to work. However I did write in 127 rules one by one and it works fine. (to bad there is no copy/past for the rules) Anyhow I was wondering if having 127 rules rather than a few is a bad thing? Will this be a cause for crashing or bugs? Can one have too many rules?

I found that script to be very difficult to understand. I dont know how easy it is to alter but eventually I will want multiple translators that make different scales to play for separate songs. For me writing in all 127 rules seems a lot easier.

Something else I should mention is right now I have 15 notes (making 2 octaves of a minor scale) spread across the entire potentiometer. This means that my rules look like this:
if qq==0 then ga=24
if qq==1 then ga=24
if qq==2 then ga=24
if qq==3 then ga=24
if qq==4 then ga=24
if qq==5 then ga=24
if qq==6 then ga=24
if qq==7 then ga=24
if qq==8 then ga=26
if qq==9 then ga=26
if qq==10 then ga=26
if qq==11 then ga=26
if qq==12 then ga=26
if qq==13 then ga=26
if qq==14 then ga=26
if qq==15 then ga=26

etc...
as you can see the function doesnt change for every value of qq.
Is there a way to write (if qq>=0 & <=7 then ga=24)?

remotecontrol

2009-02-18 20:42:39

*bump*

remotecontrol

2009-02-19 22:39:19

should I post this in a separate thread?

florian

2009-02-23 12:06:01

Hi,

sorry for the late reply. It's fine to do it your way. There is no risk of exposing crashes or bugs with many rules. The only thing is that it increases processing time slightly. But that's usually no problem at all.

Regards,
Florian

remotecontrol

2009-03-10 00:40:48

Hey Also sorry about my late response but I still would like to know if there is a way to shorten the script by using some kind of way to define a range : (if qq>=0 & <=7 then ga=24)?

florian

2009-03-10 01:36:34

there is no convenient "&" operator. You need to work with Goto's then:

Code: Select all

if qq>7 Goto "Over7"
ga=24
Goto "End"
Label "Over7"
if qq>15 Goto "Over15"
ga=26
Goto "End"
Label "Over15"
...
Label "End"
That's probably a little more convenient than the long list.

Regards,
Florian