MIDI input in HighC

What is MIDI input for

The goal of introducing MIDI input in HighC is not to allow using it as a MIDI sequencer. Even though that would be possible with a lot of work, there are already some good products for this purpose, and many of them are free or close to free. One thing that will never be possible for sure, is to use MIDI input to turn HighC in a real-time synthesizer usable in live situations. That surely would be great, but the basic tenants of the sound generation algorithms imply that the algorithm has a fairly good view of the future of the piece. Definitely not possible in a live situation.

So why introducing this feature? Two reasons:

How to use it

Simply press the "record" button. The piece or the selected portion of the piece is computed, then it starts playing in loops. Wait to hear the start of the piece playing before you play your sequence. If you wanted to start playing at the beginning, simply wait for the next loop before playing. Then, you can play your MIDI keyboard: the notes are added in sequence on top of the current portion of the piece. After each loop, you see the notes you have played entered on top of the current piece. Also, each loop is tagged with a "seq" tag number. You can roll over many loops, and keep only those you're happy with: simply select the "seq" tags you don't want to keep, and delete them.

Next, you can start editing the sequences you have kept to introduce the variety of effects possible with HighC.

Note: by default the instrument you hear is the default instrument of the default synthesizer (a piano). You can change that instrument by opening the preferences dialog and editing the "preferredMIDIprogram" preference to an integer between 1 and 128. If that value if 0, then HighC won't use the internal MIDI synthesizer to provide you audio feedback. This can be useful if your computer is a bit slow and your MIDI keyboard actually integrates a synthesizer and can provide you audio feedback through other means.

Quirks

You may notice that sometimes the tempo is not very well preserved between what you played and what you hear, specially on slow machines. Imagine you're playing a very old church organ and learn to "play ahead" sometimes to be able to keep the correct tempo. If you really can't get used to the time shift, then set the "preferredMIDIprogram" preference to 0, and use a channel splitter to hear the audio feedback through some other synthesizer than the builtin java synthesizer.

When you press the record button for the first time, HighC scans for the usable MIDI devices. If it finds only one device, it will use it, otherwise, it will ask you which one you want to use. The next time you press record, it will still use this device if it finds it. If you want to select another device, go to the preferences dialog, and erase the "midiInput" preference (press the return key after editing the text field). The next time you press record, you will be prompted again. for a MIDI device to use.

MIDI support on Mac OS X and Java is broken. You will need some third party software to use it, either:

Note that HighC has not been tested on Linux nor any other "raw" Unix platform. It may work on those platforms, but there are likely many bugs.