Midi-transform

Change pitch, reverse and invert Midi files.

View project on GitHub

Midi-Transform

Ever wondered how some musical piece would sound if played backwards? What would happen if you would play that piece with your sheet upside down? Midi-Transform lets you make this transformations to MIDI files.

The transformations available are: Revert, Invert and Change pitch.

Download

These are builds with graphical user interface. To use it by command line clone the repository.

Screenshots

Windows Linux

Android

Transformations

Revert

Revert note order. This transform the MIDI to play backwards.

Revert example

Invert

Invert the notes like in a mirror. In MIDI every note has a numerical value. For example, C5, G4, B4 and E5 have numeric values of 72, 67, 71 and 76 respectively. MIDI files can have note values ranging from 0 to 127, so the inversion is done by changing the values to: note_value = 127 - note_value. The new values will be 55, 60, 56 and 51 which correspond to G3, C4, G#3 and D#3. This transformation has the proporty that alters the chord structure from major to minor and viceversa.

Invert example

Pitch change

Change pitch of every note. Works by adding or sustracting the pitch change to the note values.

Pitch change example

Showcase

Examples of the files produced by the script.

Instructions

To use it by command line.

Usage: python2 miditransform.py [input file] [output file]
Options:
  -l      , --log                      Write log to files.
  -i      , --invert                   Invert notes on pentagram.
  -r      , --revert                   Revert midi file (play backward).
  -c <arg>, --change_pitch=<arg>       Change pitch of midi file. The argument is the pitch change. E.g: -c 2.
  -t      , --test                     Test similarity of files after transformations.
  -h        --help                     Print usage and exit.

A Qt GUI is provided in "miditransform-gui.pyw". It can also be compiled for Android using Kivy and Buildozer.

Requires

License

Midi-Transform is released into the public domain by the copyright holders.