> One potential advantage to doing it in csound is that it is also very > easy to adjust for different latencies between various synths. What we > did was store different delay latencies in a table, then the midi parser > instrument looks up the appropriate delay, and delays ouput accordingly. > As far as I know, doing real time timing in python is not very accurate. That's a problem I contemplated before I started working on the ALSA bindings, and I work around it by not doing any actual timing in Python. The little MIDI splitter I posted yesterday will spend most of its time in a C subroutine that waits for incoming events, and when an event arrives, it calls a very short Python method that handles the event right away. I doubt you'll hear any timing inaccuracies from this method. For the purpose of scheduling events at a later time (e.g., when playing MIDI files), the bindings give access to ALSA sequencer queues. In other words, Python only posts events to queues and leaves the actual timing to ALSA, so that once again any potential timing inaccuracies of Python don't matter. I'm not, however, accomodating for different latencies between different synths. If that's desired, then csound may indeed be the way to go. Peter