Hello,
I just pushed another update on my latest little project.
It is a MIDI looper, but a bit different from other looping systems.
Usually you have a time basis (a MIDI clock) or you manually set when your loop starts and stops. MOL works in a different way: it just "listens" to what you play, and if you play it for 3 times, it will repeat it.
There is a configurable time threshold (default is 100 milliseconds), so you have to be precise, but not too much. I'm thinking about adding a velocity threshold too.
Apart from that, you don't need to do anything else: MOL will automatically play and loop the pattern you repeated to the ports the original MIDI devices is connected to, until you stop it.
That's it, the concept is almost that.
Since simple things are usually not so simple, I've added an extensive set of configurable features and options.
By default, MOL will automatically connect to every ALSA MIDI hardware ports (system sound card, USB MIDI devices) and will play the loop pattern to every device to which that device is already connected to, but you can also set it to connect to software ports only, every available (and new) MIDI port, or a customizable port list (port names and client_id:port_id are available, also using regular expressions), even with port blacklisting.
Other features:
- loops can be triggered according to event type (by default it uses NOTEON events only)
- specific event types can be ignored at all, and will not be played
- a feedback port is provided (also with auto-connect features), which will send custom events on status change
- MOL status (enable/disable/stop) can be controlled via MIDI (again, with auto-connect)
- when a loop stops, it will try to stop *only* the notes in the loop that are still playing
- further custom MIDI events can be sent on loop stop to the ports the original source is connected to
I started this project just a week ago (after a long time of thinking about it), so it probably has some bugs here and there.
Though, I think it's an interesting concept, and I'd like you to give it a try.
MOL is written in Python 2.7, and requires PyQt4 and pyalsa.
There's not a setup script yet, but, if you meet all the requirements mentioned above you just need to run the main script as explained in the repository description.
I'll be glad to have any kind of feedback, I hope some of you will like this little program.
Cheers,
MaurizioB