Notation for marching percussion music (drumlines) and a compiler to PDF, MIDI and MusicXML files
Python Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
journal
testing
LICENSE.txt
convertor.py
grammar.txt
lexer.py
midi.sh
musicxml.sh
parser.py
pdf.sh
play.sh
readme.markdown
tests.sh
todo.txt
wav.sh

readme.markdown

INTRODUCTION

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.

USAGE

For notation examples see this wiki page

This will change, but for now:

Print internal data structure for input:

python parser.py < MUSICFILE

Output to lilypond format:

python parser.py --lilypond < MUSICFILE > MUSICFILE.ly

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 parser.py --midi < MUSICFILE > MUSICFILE.miditext

HISTORY

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.