![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: Quantized StepSequencer |
patrik Member |
![]() ![]() ![]() Hello!! I am working on a Capytalk expression i am really too lazy to type in, since it is really long, and its just on a black board at the moment. Moreover I actually wanted to ask here, if there isn't some simpler solution since i'm really stuck. What i want to do is this: I just want a quantized Pitch output of the stepsequencer, but with the possibility of switching on and off notes(and their octaves), so that 12 toggles appear on the VCS, and if eg. the "c" is switched off, everytime the active !P value *would* result in a "c", the actual output is the next activated note, "d" for example. I hope that was clear, IP: Logged |
SSC Administrator |
![]() ![]() ![]() quote: Would this do it? code:60 nn + ((1 - !C) * 2 nn) When the !C switch was on (1), then you would hear 60 nn. When the !C switch is off (0), you would hear 62 nn. Is this getting close to the result you are trying to achieve? IP: Logged |
patrik Member |
![]() ![]() ![]() thanks for the quick reply! Yes i think, this is quite what i was thinking of. But what is if !D is switched off too? And !e and so on..this is where the code is getting long and complicated, i think. If i am correct this would be used to complete the code for all notes: Assuming !P1 0. to 1. , !OctaveRange eg. -2 to 2 (((!p1*12)+(!OctaveRange*12))mod: 12) rounded of: # {(!C+1)+ ( (1-!c)* ( (!D*2)+ ( (1-!D)* ( (!e*3)+ ( (1-!e)* ( (!f*4)+ ( (1-!f)* ( (!g*5) and so forth... } You know what i mean? this incomplete sequence with loads of brackets, added semitones, times 12, within an array, times 8 for all the sliders(!p1, !p2 ...) is this the only way to do it? [This message has been edited by patrik (edited 09 May 2011).] IP: Logged |
SSC Administrator |
![]() ![]() ![]() quote: So if we split up the task, the first thing you are doing is taking an arbitrary pitch and quantizing it to a pitch from the diatonic scale, correct? You have an index of: ((!p1*12) + (!OctaveRange*12)) mod: 12) rounded Since you are extracting the pitch class using mod 12, you could remove the octave from the index calculation and use: (!p1 * 12) of: #(0 0 2 2 4 5 5 7 7 9 9 11) That would take a !p1 in the range of (0,1) and map it to intervals from a diatonic scale (white keys of a keyboard). Next we can create an Array that includes your checkboxes. As I understand it, each element of the Array has to include all possible intervals (since if any checkbox is turned off, it has to play the next pitch higher) on that stage of the sequence. Is that correct? So the first element would be: {!c true: 0 false: (!d true: 2 false: (!e true: 4 false: (!f true: 5 false: (!g true: 7 false: (!a true: 9 false: (!b true: 11 false: (0)))))))} Is this what you had in mind as the behavior? IP: Logged |
patrik Member |
![]() ![]() ![]() Yes that's exactly what i wanted, and true and false make it really much more elegant, Thanks a lot! IP: Logged |
All times are CT (US) | next newest topic | next oldest topic |
![]() ![]() |
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.