Project Description

MidiMix is an app designed to help choir members learn their parts, given a midi file that has all the parts in it for a given piece.

Depending on the level of ability to read music and personal preferences, people have different needs for efficient learning, and a MIDI playing all the parts isn't necessarily the most helpful thing. Some folks will want:
  • Solo: just their part
  • Highlight: their part prominent (louder) with the other parts quieter
  • Challenge: just the other parts

So either people just make do and struggle along with the MIDI file, or some helpful person processes it and creates individual midi files (or MP3s) for each part in some or all of the above configurations. So take a single piece with 8 choral parts, and that poor person has to create 24 separate midis to distribute. :(

So... MidiMix aims to provide a way for each choir member to load up the single MIDI with all parts, and play it back in ways that are customized to their needs. Thus there is no need for some helpful person to manually process the MIDI files for each part.

  • a mixer that lets the sound level of each track to be set separately, as well as allowing each track to be muted or solo'd
  • presets built in that allow any of the aforementioned three configurations for any of the parts in the file, to be selected with a single click.
  • ability to show each track played on a piano keyboard and the user can select which tracks are shown on the piano.
  • control over the speed of playback (from 1/3 to 3x normal tempo), allowing parts to be played slowly at first to help learning.
  • ability to set in and out markers and loop between them to repeatedly play a given section of the file
  • midi inspector to allow the midi file contents to be browsed (including tempo changes and any embedded lyrics)
  • save a copy of the Midi with the mixer settings applied - enabling a customized version of the file to be played on other devices that don't have MidiMix installed (e.g. mobile devices)

Current Release Known Limitations:
  • In the current version ( the input MIDI file needs to be structured such that each part is on its own MIDI "track". Many MIDI files are structured this way. Some are not and have all parts in a single MIDI track. In this case, they may (or may not) have each part going to a separate MIDI "channel", in which case it would be possible to extract tracks by MIDI channel. In a later version it is planned to add the ability to extract tracks from a single track MIDI file based on MIDI Channel. At the moment though the pre-req is a properly structured MIDI file.

Last edited Feb 2, 2012 at 12:54 PM by stephenjtyler, version 2