Midi player/ sequencer / looper program?


Is there a midi sequencer that can:

  • load a midi file,
  • loop a (predefined) section (range of measures) of the song
  • switch to a different section in the song at the end of a measure, triggered by a midi event (foot pedal)

I like to use this as as stand-alone, portable (battery powered) acompaniment box for my piano lessons.

The midi file will have several variants of tracks for e.g. bass, drums, solo or voice, second instrument.
Preferrably each of the tracks could be looped independantly: e.g. just a 4 bar drum line can be repreated over any range.
Usage would be: start the intro, loop over section A, until the pedal was hit, switch to a bridge, then loop section B, until pedal press …
When defining shorter section, it’s great to practice difficult parts, or learn to play faster.


Sorry, currently Zynthian hasn’t a MIDI sequencer with the functionality you want.



There are a few midi sequencers for linux/raspberry… For the “zynthian purpose”, I would like a friendly step sequencer in combination with a good controller surface. But, with a low cost Arturia beatstep, we get the same features without coding anything.

With the features you mentioned @FransK , it seems to me that you are looking for something like an arranger software, just like the Yamaha PSR line.

Look this:


I have plans for adding sequencer features to Zynthian:

  1. MIDI looper/sequencer. Similar to SooperLooper but MIDI :wink: It will be intended for jamming and quick prototyping/creation. Of course, it should import/export from MID files. Perhaps “midish” is the best suited software for that, but it doesn’t support Jack and looping features should be added.

  2. Step Sequencer: A simple step-sequencer, easily interfaced from grid-control-surfaces like Novation LaunchPads and others. We have some interesting candidates here. For instance

    • LV2 stepseq from Robin Gareus is already installed in Zynthian (usable with MOD-UI).
    • QMidiArp
    • ???

All comments and collaboration are welcome :wink:

Kind Regards,



Sorry, no privative software in “core” parts. Pianoteq could be added because nothing depends on it. In the other hand, Zynthian’s sequencer engine is going to be a core part, so only free software can be used here :wink:



Good news!

I contacted Alexandre Ratchov, the developer of midish. Here is the conversation:

Hi Alex!

I’m Fernando from Zynthian Project:


I just learned about Zynthian, sounds very interesting. This is
exactly what I needed, back in 2015, to run a microtonal flute synth.

We’re really interested in using your wonderful midish software as the
main sequencer engine for Zynthian project.

Zynthian is a small but powerful sound module (multi-engine,
multi-layer, multi-timbric, etc. based in Free Software and “Open” Hardware.

We really love your software but we would like to have some extra
features like:

  • Jack Audio MIDI support
  • Looping features

I’m interested in both features. I’ve very limited free time right
now, but I’ll try to help as much as possible with this.

FWIW, people seem to use alsaseq-to-jack gateways to workaround the
lack of jack support, hopefully this could work for you in the

I just synched the github repo to the project one. Now I’ve to find a
mean to automate the process :confused:

P.D.: “Sonate aux insomniaques” is a magnific piece!! Congrats!!

thanks, glad you liked it


So we have the github midish repo udpated and ready to use and add the features we need.



I had a quick look at midish (not the source), It does most things I want, except for looping and beat-synched switching of tracks/ranges. Other features not requiring realtime/very fast response (midi controller input) could be added in a front-end program.

Recently I looked at pyxdotool, a python interface module to the commandline tool xdotool (tool to inquire and control applications, keyboard and mouse in xWindows). the module starts the xdotool executable as subprocess and allows a python script to send commands and retrieve information via stdin/stdout in a pythonic way.
This approach could be used to add features on the outside of midish (set up alsa midi port, convert midi controller messages to midish, read a config file with some specialised (loop/range) information that might or might not be part of the input midi file).
(a direct interface to the functions of midish would be preferrable for reasons of speed and response time, but I have no idea of the performance of a RPi-3, just the RPi1 a few year go. )

I hope to get my Rpi-3 with 7" touch screen and audio card running this weekend.