;;CDown8.CAL ;; (Guitar Rhythm Cutting for under 8 notes) ;; Written By 蛞蝓なめちゃん, 1997/09/10 ;; odasan@ma.catv.ne.jp ;; 機 能 : ・同じ time の音(和音)を note pitch の順に ;; 並べ替え、少しずつ発音 time を後ろにずらします。 ;; ・実際には、処理前の音を削除して、新たな位置に挿入します。 ;; 使用法 : ・対象範囲を選択したあと、本 program を実行。 ;; 各 note をずらす時間は、表示される入力パネルで ;; tick 単位に指定します。(初期値は 2) ;; ・down stroke (音の低い順に発音)でおます。 ;; ・負の値を指示すると ERROR になります。 ;; 制 限 : ・和音は 8 つまでしか対応していません。 ;; 9 つ以上の音を含む和音の場合、 ;; 処理されなかった音がそのまま残ります。 ;; ・いち度に複数の track あるいは 複数の channel を指定すると、 ;; 不思議なことに、音が別の track に移動してしまうことがあります。 ;; 応 用 : ずらす時間を長くすると、アルペジオになります。 ;; UNDO : 編集メニューの「元に戻す」で、 ;; 最後に処理した和音の音の数だけ「イベント挿入」を取消し、 ;; 「CAL(forEachEvent)」を取消せば、元に戻ります。 (do ;; --- 比較用作業エリア (long time0 -1) ;; --- 和音の音数 (int num 0) ;; --- 並べ替え作業用 (int note0) (int vel0) (int dur0) (int cha0) ;; --- 各音の読み込み場所 (int note1 999) (int vel1) (int dur1) (int cha1) (int note2 999) (int vel2) (int dur2) (int cha2) (int note3 999) (int vel3) (int dur3) (int cha3) (int note4 999) (int vel4) (int dur4) (int cha4) (int note5 999) (int vel5) (int dur5) (int cha5) (int note6 999) (int vel6) (int dur6) (int cha6) (int note7 999) (int vel7) (int dur7) (int cha7) (int note8 999) (int vel8) (int dur8) (int cha8) ;; --- 書き込み用 mesure / beat / tick (int time1) ;; --- 各音をずらす時間 (tick 値) の設定 (int timeshift 2) (getInt timeshift "How Long Shift (Tick) ?" 0 32757) ;; --- main (forEachEvent (if (== Event.Kind NOTE) (if (== Event.Time time0) (switch num 1 (do (= note2 Note.Key) (= vel2 Note.Vel) (= dur2 Note.Dur) (= cha2 Event.Chan) (= num 2) (delete) ) 2 (do (= note3 Note.Key) (= vel3 Note.Vel) (= dur3 Note.Dur) (= cha3 Event.Chan) (= num 3) (delete) ) 3 (do (= note4 Note.Key) (= vel4 Note.Vel) (= dur4 Note.Dur) (= cha4 Event.Chan) (= num 4) (delete) ) 4 (do (= note5 Note.Key) (= vel5 Note.Vel) (= dur5 Note.Dur) (= cha5 Event.Chan) (= num 5) (delete) ) 5 (do (= note6 Note.Key) (= vel6 Note.Vel) (= dur6 Note.Dur) (= cha6 Event.Chan) (= num 6) (delete) ) 6 (do (= note7 Note.Key) (= vel7 Note.Vel) (= dur7 Note.Dur) (= cha7 Event.Chan) (= num 7) (delete) ) 7 (do (= note8 Note.Key) (= vel8 Note.Vel) (= dur8 Note.Dur) (= cha8 Event.Chan) (= num 8) (delete) ) ) ;; In case : Time Changed (do (if (>= time0 0) ;; Loop 1 of Sorting --- (do (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 2 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 3 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 4 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 5 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 6 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 7 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 8 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Insert --- (if (!= note1 999) (insert time0 cha1 NOTE note1 vel1 dur1) ) (if (!= note2 999) (do (+= time0 timeshift) (insert time0 cha2 NOTE note2 vel2 dur2) ) ) (if (!= note3 999) (do (+= time0 timeshift) (insert time0 cha3 NOTE note3 vel3 dur3) ) ) (if (!= note4 999) (do (+= time0 timeshift) (insert time0 cha4 NOTE note4 vel4 dur4) ) ) (if (!= note5 999) (do (+= time0 timeshift) (insert time0 cha5 NOTE note5 vel5 dur5) ) ) (if (!= note6 999) (do (+= time0 timeshift) (insert time0 cha6 NOTE note6 vel6 dur6) ) ) (if (!= note7 999) (do (+= time0 timeshift) (insert time0 cha7 NOTE note7 vel7 dur7) ) ) (if (!= note8 999) (do (+= time0 timeshift) (insert time0 cha8 NOTE note8 vel8 dur8) ) ) ) ) ;; --- Read ---> Buffer (= time0 Event.Time) (= num 1) (= cha1 Event.Chan) (= note1 Note.Key) (= vel1 Note.Vel) (= dur1 Note.Dur) (delete) (= note2 999) (= note3 999) (= note4 999) (= note5 999) (= note6 999) (= note7 999) (= note8 999) ) ) ) ) ;; Finish : for Remain Data in Buffer ;; Loop 1 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 2 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 3 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 4 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 5 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 6 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 7 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Loop 8 --- (if (> note1 note2) (do (= note0 note1) (= vel0 vel1) (= dur0 dur1) (= cha0 cha1) (= note1 note2) (= vel1 vel2) (= dur1 dur2) (= cha1 cha2) (= note2 note0) (= vel2 vel0) (= dur2 dur0) (= cha2 cha0) ) ) (if (> note2 note3) (do (= note0 note2) (= vel0 vel2) (= dur0 dur2) (= cha0 cha2) (= note2 note3) (= vel2 vel3) (= dur2 dur3) (= cha2 cha3) (= note3 note0) (= vel3 vel0) (= dur3 dur0) (= cha3 cha0) ) ) (if (> note3 note4) (do (= note0 note3) (= vel0 vel3) (= dur0 dur3) (= cha0 cha3) (= note3 note4) (= vel3 vel4) (= dur3 dur4) (= cha3 cha4) (= note4 note0) (= vel4 vel0) (= dur4 dur0) (= cha4 cha0) ) ) (if (> note4 note5) (do (= note0 note4) (= vel0 vel4) (= dur0 dur4) (= cha0 cha4) (= note4 note5) (= vel4 vel5) (= dur4 dur5) (= cha4 cha5) (= note5 note0) (= vel5 vel0) (= dur5 dur0) (= cha5 cha0) ) ) (if (> note5 note6) (do (= note0 note5) (= vel0 vel5) (= dur0 dur5) (= cha0 cha5) (= note5 note6) (= vel5 vel6) (= dur5 dur6) (= cha5 cha6) (= note6 note0) (= vel6 vel0) (= dur6 dur0) (= cha6 cha0) ) ) (if (> note6 note7) (do (= note0 note6) (= vel0 vel6) (= dur0 dur6) (= cha0 cha6) (= note6 note7) (= vel6 vel7) (= dur6 dur7) (= cha6 cha7) (= note7 note0) (= vel7 vel0) (= dur7 dur0) (= cha7 cha0) ) ) (if (> note7 note8) (do (= note0 note7) (= vel0 vel7) (= dur0 dur7) (= cha0 cha7) (= note7 note8) (= vel7 vel8) (= dur7 dur8) (= cha7 cha8) (= note8 note0) (= vel8 vel0) (= dur8 dur0) (= cha8 cha0) ) ) ;; Insert --- (if (!= note1 999) (insert time0 cha1 NOTE note1 vel1 dur1) ) (if (!= note2 999) (do (+= time0 timeshift) (insert time0 cha2 NOTE note2 vel2 dur2) ) ) (if (!= note3 999) (do (+= time0 timeshift) (insert time0 cha3 NOTE note3 vel3 dur3) ) ) (if (!= note4 999) (do (+= time0 timeshift) (insert time0 cha4 NOTE note4 vel4 dur4) ) ) (if (!= note5 999) (do (+= time0 timeshift) (insert time0 cha5 NOTE note5 vel5 dur5) ) ) (if (!= note6 999) (do (+= time0 timeshift) (insert time0 cha6 NOTE note6 vel6 dur6) ) ) (if (!= note7 999) (do (+= time0 timeshift) (insert time0 cha7 NOTE note7 vel7 dur7) ) ) (if (!= note8 999) (do (+= time0 timeshift) (insert time0 cha8 NOTE note8 vel8 dur8) ) ) )