InternalMIDI creates a MIDI node for the internal General MIDI synthesizer of the BeOS/Haiku.
You can connect it to every BeOS/Haiku MIDI program that supports the Midi2 Kit. With a nice panel you can change all the settings that the internal BeOS/Haiku synthesizer accepts: Sound quality, different patches, pause, volume, reverb, and transposition.
InternalMIDI is freeware. You may share InternalMIDI with as many people as you like, as long as the program is distributed with all parts, especially this documentation, intact. InternalMIDI may not be sold. You may freely distribute InternalMIDI together with your own software WITHOUT the authors permisson.
All graphics, especially the icon or brands are copyrighted by the author and may not be used in any form without the author's consent.
Great care was taken to make sure InternalMIDI functions flawlessly and without fault. Nevertheless there is still a slim chance that errors may still occur.
The author will not be held liable for any potential damage caused by this software nor will he guarantee any unique (or special) functions.
After starting InternalMIDI a small icon appears in the Deskbar. Now you can use your MIDI software or a utility like PatchBay (by Be Inc.) to connect a MIDI input device to InternalMIDI. InternalMIDI will play every MIDI code it receives through the builtin software synthesizer.
When you right click on the Deskbar icon, a popup menu appears with the items: Settings, About and Quit. When you either select Settings from the popup menu or double-click onto the icon or click your middle mouse button, the settings window will be opened.
The settings should be self-describing.
But nevertheless I've got some hints for you:
- The sliders are acting real-time as far as possible which means that you can modify the sound while dragging the knob.
- When you click the right mouse button over the sliders they are set to predefined values.
If you want to use InternalMIDI from your own program, here are some informations for you, how you can remote control it.
Just write in your program:
#include <Roster.h>
#define INTERNALMIDI_SIGNATURE "application/x-vnd.pecora-internal_midi"
...
if ( !be_roster->IsRunning( INTERNALMIDI_SIGNATURE ) ) {
if ( be_roster->Launch( INTERNALMIDI_SIGNATURE ) != B_OK ) {
/* some error handling */
}
}
Hint: If you want to connect to InternalMIDI immediately after starting it, you must have a little bit patience: It can take some seconds before it is running!
The following code opens the Settings Window:
BMessage msg('Sett');
BMessenger( INTERNALMIDI_SIGNATURE ).SendMessage( &msg );
There is currently no possibility to close the Settings Window remotely.
Hiding and showing the Deskbar replicant is almost as easy:
BMessage msg('Repl');
msg.AddInt32( "be:value", 1 );
BMessenger( INTERNALMIDI_SIGNATURE ).SendMessage( &msg );
The text above shows the Deskbar replicant. If you want to hide it, set the value from 1 to 0:
...
msg.AddInt32( "be:value", 0 );
...
You can also leave the whole line away, but this is not guaranteed to work in the future!
- July 26rd, 2001: V 2.5.3: Added another view which shows the incoming "Note On" signals
- May 21th, 2001: V 2.5.2: We are getting better everyday... :-) IM shouldn't crash anymore when changing patches while working heavy...
- May 19th, 2001: V 2.5.1: Now we are font-sensitive. Also added minor improvements.
- May 13th, 2001: V 2.5: Added a lot of new features:
- You can now hide the Deskbar replicant
- The settings are (automatically) saved and restored when starting InternalMIDI again
- Added a pretty scope view (click on it to change it's look!)
- May 9th, 2001: V 2.02: removed another bug which crashed IM under BeOS 5.01 - not under 5.03 where I tested it... This one almost made me crazy! Thanks to Martijn Sipkema for his hint!
- May 5th, 2001: V 2.01: removed a small bug
- May 5th, 2001: V 2.0 released: Added the settings window
- April 28th, 2001: Initial release
InternalMIDI was originally written by Werner Freytag for the BeOS.