Notation for marching percussion music (drumlines) and a compiler to PDF, MIDI and MusicXML files
Python Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This project allows tech-savvy marching percussion composers to input music FAST and generate audio, PDF and MusicXML versions of their compositions. It uses the Python 3 programming language, midicomp and lilypond to get the job done. For playback and generating audio files I use this soundfont and the Timidity++ MIDI player.

My marching percussion language is designed to be concise, facilitating swift input. You do not have to specify note durations; whether a note is a 16th note or an 8th note can be deduced by how many notes are present within a given beat. Beats (as in "4 beats per measure in 4/4 time") are separated by spaces.

This project is getting much better! We're no longer depending on lilypond for MIDI output: we have more control; can make flams play back properly (lilypond is screwy). We are also better-situated to swap out lilypond for something that creates PDFs better in the future.


For notation examples see this wiki page

This will change, but for now:

Print internal data structure for input:

python < MUSICFILE

Output to lilypond format:

python --lilypond < MUSICFILE >

Midi doesn't work natively. I make use of the midicomp project and text-based MIDI files, so you'll need to use that project for the time being:

python --midi < MUSICFILE > MUSICFILE.miditext


I have this little venture I've dubbed Flam Swiss, wherein I'm rekindling some of my high school creativity. During those years I wrote music for (and played in) our marching band's drumline. In early 2009 I decided to start seriously composing marching percussion music again, and planned to do it with the help of a computer. This project is the main tool that enables me to do that.

The main goal of Flam Swiss is to provied high school drumlines with new music to play.