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.
You can find it here:
https://github.com/MaurizioB/mol
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