om-synth
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Om-synth] midi split


From: Atte André Jensen
Subject: [Om-synth] midi split
Date: Wed, 07 Dec 2005 10:40:37 +0100
User-agent: Debian Thunderbird 1.0.7 (X11/20051017)

Hi

I desperately need to set up midi splits:

1) What's the status of the splitting functionality in (the New Midi Stuff in) om?

2) In the mean time, I tried starting the attached pythonscript (needs pyseq). Unfortunately connecting something to its ports screws up lash; things get loaded with completely wrong connections... What did I miss here?

--
peace, love & harmony
Atte

http://www.atte.dk
#!/usr/bin/env python
# -*- coding: latin-1 -*-
from pyseq import *

class MidiSplit(PySeq):
    def init(self, sp=None):
        if sp:
            self.splitPoints=sp[:]
        else:
            self.splitPoints=[60]
        self.inport=self.createInPort()
        self.outports=[]
        for i in range(len(self.splitPoints)+1):
            self.outports.append(self.createOutPort())
    def callback(self, ev):
        if ev.type==SND_SEQ_EVENT_NOTEON or ev.type==SND_SEQ_EVENT_NOTEOFF:
            note=ev.getData().note
            index=len([x for x in self.splitPoints if note>=x])
            ev.sendNow(self, self.outports[index])
        else:
            ev.sendNow(self, self.outports[0])
        return 1

if __name__=='__main__':
   # keyboard is 36 - 84
    import sys
    seq1=MidiSplit('MidiSplit_2way_1', [60])   
    seq2=MidiSplit('MidiSplit_2way_2', [60])   
    seq3=MidiSplit('MidiSplit_2way_3', [60])   
    seq4=MidiSplit('MidiSplit_4way_1', [48,60,72])   
    seq5=MidiSplit('MidiSplit_4way_2', [48,60,72])   
    seq6=MidiSplit('MidiSplit_4way_3', [48,60,72])   
    seq7=MidiSplit('MidiSplit_chro_1', 
[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,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83])
   
    seq8=MidiSplit('MidiSplit_chro_2', 
[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,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83])
   
    seq9=MidiSplit('MidiSplit_chro_3', 
[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,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83])
   
#    seq3=MidiSplit('MidiSplit3', [int(s) for s in sys.argv[1:]])   
    MidiThread(seq1).start()
    MidiThread(seq2).start()
    MidiThread(seq3).start()
    MidiThread(seq4).start()
    MidiThread(seq5).start()
    MidiThread(seq6).start()
    MidiThread(seq7).start()
    MidiThread(seq8).start()
    MidiThread(seq9).start()
#    while 1==1:
    time.sleep(10000000)
#       dummy = 1
#    raw_input('press return to finish')

reply via email to

[Prev in Thread] Current Thread [Next in Thread]