imidiacy - the no-hardware MIDI recorder

An imidiacy Logo

It's becoming increasingly clear that the future of music will be electronic. The versatile MIDI file format saves the vital information of a musical performance into a compact file. Now imidiacy (IMmediate MIDI) enables users to get a flying start recording their own melodies right from the PC keyboard!

OK, seriously, this program was written because I could never get my Yamaha synthesizer keyboard to hook up properly with a sound card. After installing every driver I could find, upgrading sequencer programs, and even taking it to the repair man (!), it seemed like it would be easier just to write a program to replace its function. Naturally, there were far more technical details than I imagined.

Recent changes

The program now tries harder to set up a graphics mode in one of three resolutions and will fail politely if it cannot, instead of causing a segmenation fault. The F1 key has been added to the ncurses version as a Quit command, which should make it usable from xterm or the like, which may have trouble detecting Backspace or Escape keys. This should save users from aggravation from a program that explodes on takeoff or just won't work.

The project

The main development has been to switch dependencies to a multimedia library package. The new version uses Allegro for keyboard, timing, audio, and video and should be broadly portable. Due to the demise of the SourceForge compile farm, however Linux is the only binary distributed anytime soon.

While the core routines seem stable, the project is still classed as alpha development because there are many more features to add. No support for Midi controllers, like sustain pedal, or pitch wheel is provided. Recording drum tracks is misleading, because the different drum sounds have not been sampled and matched to the various notes. So instead, a single snaredrum sound is pitch-adjusted to the note played as if it were just another instrument. This will have to be fixed.

The musical pitches are controlled on the keyboard by row, arranged chromatically with Z as A (= MIDI note 57) and 0 representing C( = MIDI note 96). There may well be a better arrangement. The present one makes no sense for non-US keyboards.

A routine should be added to redraw the display to allow for immediate window resizes.

Sample output

The output of imidiacy is a simple melody line suitable for use as raw material in a sequencer program. Here are a few modest examples:

Join up

If you are interested in the project or just wanted some practice, collaborators would be gladly welcomed. Just send an e-mail.


Forward to the download page

Read The Fine Manual

Hosted by: Logo

Latest update: 19 May 2007