Search the Community
Showing results for tags 'odd'.
-
hey! i have to program a Sequencer Variante of the MB-SEQ, by using the SEQ_BPM... but before i have to be clear what i want... so i think loud a bit... DRUMSEQUENCERs & ODD TACT (UNGERADE SCHLÄGE) since i work with a guitarist, (which play with a Guitar2MidiConverter) he want that i can program 5er, 6er, 7er since i come from electronic sequencer music, I worked so far with drum-step-sequencers which program that 4/4Tact on a 16x1 LED-Button Hardware, OK lets take a look on something I/we know.: if we talk about LOOP LENGTH, and the Change of it, we have to decide which VALUES are INTERESTING.... so 16 are the maximum amount of visible STEPS on the UI(@once), i call that a PAGE >1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 < 3 PAGES: 4 1PageLoop Length Sel Steps Steps Page 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 0 16 1 1 17 2 18 3 19 4 20 5 21 6 22 7 23 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31 0 32 2 1 33 2 34 3 35 4 36 5 37 6 38 7 39 8 40 9 41 10 42 11 43 12 44 13 45 14 46 15 47 on a DRUMSEQUENCER with 4/4 Tact we always double the Steps, to keep in TACT with MelodySequencers (why? wait, later!): 2 x 2 = 4 (@ME: what is the multiplicator when using 5 6 or 7 TACT???) 4 x 2 = 8 8 x 2 = 16 >>> the maximal visible amount of STEPs on a single PAGE >>> so this is our minimal LENGTH 16 x 2 = 32 32 x 2 = 64 >>> the maximal Length of a Korg Electribe Rythm 64 x 2 = 128 >>> a very handy Length when using whole PAGE-Copy-Paste?, and AUTO-Completion (copy Page 1 to All the Rest...) 128x2 = 256 >>> very long for Drums if using all the Steps in one whole Loop >>> what brings us to another Point: CHAINING PAGES or SETTING LOOP LENGTH lets say a PAGE has 16Steps (@ME 3x5=15, 2x6=12, 2x7=14) Chain PAGE 1+2+3+4 = 4 PAGES * 16 STEPS = 64 STEPS Chain PAGE 1+2+3 = 3 PAGES * 16 STEPS = 48 STEPS... maybe problem: when playing with other Sequencers, e.g.we play a Bass 64 STEPs long... DRUMS: 48*2=96 while BASS: 64*2=128, so the Baseline will differ on its way off fitting with the drums... >>>if i think right? there is no point that they ever will meets on the same point???<<< or in a musical period of time (for me) This is a problem when we separate DRUM and MELODY DEVICES... and change the Length while playing... such SETUP will maybe ONLY work with DOUBLEs OF PAGES ... I dont say its forbidden ... specially in my case ... CASE NORMAL: DRUM SEQUENCE has a rythmic, the Melody has a rythmic >>> if they drift by (not equal @ all)... the listener will not find the COMMON RYTHMIC (especially on long Melody’s) CASE TRIGGERMATRIX: DRUM SEQUENCE is the only rythmic, the Melodys rythmic is ignored >>> the drift that you hear is pitch based, that the played notes ON THE RYTHM are NEVER The same, @ least U find the rhythm... ... since I work on my case, i will not forbidd anything, but i will INFORM me the possible/right next PAGE to CHAIN > ...but before we get to that I have to to inform you how how to handle this CHAINING via a UI (UserInterface): SETTING LOOP LENGTH via 16 Buttons in a ROW: We have 16 BUTTONS that are Representing 16 PAGES (a' 16 Steps) >Loop a single Page > short double Click a button. >Loop from Page eg. 4 too 8 > Click&Hold Button"4" & Click Button"8" (which in First Place visualize Page4, and then Set a 4x16=64Loop to Page 8) So to avoid that 48/64 dilemma, we have to get sure that we only select DOUBLED PAGES, and here i come to the point to INFORM me about possible FITTING PAGES: INFORM: I press the First PAGE (4), now following Pages get enlighten 6 8 12 START DOUBLE END 4 0 4 4 2 6 4 4 8 4 8 12 4 16 20 I decide to press "8", and i now have a 64Step Loop, but I don’t want to set the Loop length immediately, I want it to make it in Sync, I want it to switch by the next DOUBLE... Lets make a shorter example: 64 Steps Maximum is set for this TRACK... this has to be set before pressing the Play button, in order to get a MAIN-Timeline, to that we can return if we want back to the whole loop. A maximum-length-counter will ever cycles from 0-63-0-63 …. it counts the midiclock-ticks, this is our MAIN-TIMELINE 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 0 BAR 1 BAR 2 BAR 3 BAR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 The Loop LENGTH 0 BAR 1 BAR 2 BAR 3 BAR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 for me, it is enough, to switch @then end of the current selected Loop New Loop Length: if (step is > 31) {step = 48;} ….. In this case it is STEP 31, where the Next Step should be 48 in a loop to 63. step+1; if(step>maxLoop){step=minLoop)…. NEW Loop LENGTH 0 BAR 1 BAR 2 BAR 3 BAR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 if i want a more stable play in interaction with melodylines, we just watch out for the Main Time Line, the switching between loop points then will take longer until it is set: in example above, we have a loop from 0-31, while this loop is playing, i decidet to make a new Loop from 48-63... the machine now loops its rounds until the MAIN-TIMELINE comes to Step 48, form now the New Loop take effect... This is no problem with a 4 Bar Track, where the maximum what you have to wait is 3 Bars... but what when you set the Track to a maximum off 16 Bars? ...of course it will take time until it switches... so i would say we make a hardware button, that switch between 1BAR SYNC and MAIN-TIMELINE, where MAIN-TIMELINE would kick you back in sync with extern Melody Sequencers... MIDICLOCK and TACT while 4/4Tact is clear, like shown in the Tutorial 17 (sequencer), its a bit more Brain Acitivity to find out how to work with 5 6 7 9 Tacts Tutorial on 4/4 static s32 SEQ_Tick(u32 bpm_tick){ // performs a single bpm tick // whenever we reach a new 16th note (96 ticks @384 ppqn): if( (bpm_tick % (SEQ_BPM_PPQN_Get()/4)) == 0 ) { // ensure that step number will be reseted on first bpm_tick if( bpm_tick == 0 ) seq_step_pos = 0; else { // increment step number until it reaches 16 if( ++seq_step_pos >= 16 ) seq_step_pos = 0; } SEQ_Handler(); if(seqMATRIX[0][seq_step_pos] > 0){ APP_NOTEPROCESS(0, 36, seqMATRIX[0][seq_step_pos]);}//(u8 port, u8 note, u16 velocity) Notes Back to APP.c } The next thing is to translate that all to 5 6 7 & 9 TACTs on 16*16+X Matrices.... but that is something to sleep over it... good night