This program is a software based synthesis engine. It generates WAVE files from the information contained in MIDI files. As there is no sound information in a MIDI file, the program uses Sound Font files (also known as Sound Banks) to provide that information. If you own an AWE or SBLive soundcard, you have probably several of these files in your computer. Otherwise, there are several sites on the Internet where they are freely available.

 


Operation

This program is very easy to operate. Basically you select a Sound Font, select an output file, select the MIDI file, hit the convert button and you are done. If you use the default Sound Font and output files, it is even simpler: Select the MIDI file, hit Convert, and after a while you have your WAVE file ready. You can also set the program to process a batch of MIDI files without you having to intervene at each conversion.

Let us take a closer look at the main window fields and buttons:

¨       Sound Bank. This field shows the currently selected Sound Font file. To change it, hit the Change button and a File Select dialog box will show up. Please be aware that when you load a really big Sound Font file (some of them have several dozen Mb in length) the system will seem to freeze for a few seconds while the file is being loaded.

¨       Output File. This field shows the name of the WAVE file that will be created during the conversion process. To change it, hit the Change button and a File Select dialog box will be activated. You can also select an existing WAVE file for listening purposes; MidiSyn will work then as a WAVE player.

¨       MIDI File. This field shows the name of the MIDI file that you want to convert to WAVE. To select a MIDI file hit the Load button and a File Select dialog box will allow you to select the MIDI file.

¨       Progress. This is a progress indicator that shows the completion status during both the conversion and the listening processes. During batch processing this will show the amount of MIDI files already processed.

¨       Batch. This button activates the batch-processing mode. When you hit this button, a File Select dialog box pops up, allowing you to choose the batch file to process. After the batch processing is initiated, this button changes to Abort, allowing you to interrupt the process at any moment. The format of the batch file is described bellow.

¨       Convert. This button initiates the conversion process. As soon as the conversion process is initiated this button changes to Abort. This allows you to interrupt the process at any time, saving the part of the output file already done. As soon as the conversion process terminates, the button changes again to Convert.

¨       Listen. This button initiates the listening of the WAVE file selected (that may or may not have been created by the program), using whatever sound producing hardware is available on your PC. As soon as the listening process is initiated this button changes to Abort. This allows you to interrupt the process at any time and start again from the beginning. As soon as the listening process terminates, the button changes again to Listen.

¨       Mixer. This button will open a dialog box where you can adjust the volume for each instrument in a MIDI file (see bellow for details).

¨       Options. This button will open a dialog box where you can set some operation parameters (see bellow for details).

¨       About. This button will open an About dialog box.

¨       Help. This button just shows this help file using your default html browser.

 


Midi Mixer

On this window you can adjust the volume for each instrument in a MIDI file. There are 16 sub-windows, one for each channel in a MIDI file. Let’s take a look at each element of a sub-window:

¨       At the top there is a text box where appears the name of the instrument assigned to that channel. Usually there is just one instrument per channel but sometimes can be two or more. When there is more than one, their names will be separated by slashes.

¨       The slider lets you adjust the volume of the instrument assigned to the channel. You can either increase the volume or decrease it. The excursion is from –25dB to 25dB in steps of 5dB

¨       The MUTE check box allows you to completely remove the instrument assigned to the channel from the output mix.

¨       The SOLO button lets you mute all the channels except the current one. This will cause the output file to include just the instrument assigned to that channel.

 

The RESET button lets you set all parameters to their default settings: All the sliders are set to 0dB and all the MUTE check boxes will be reset.

 

 


Options

The following paragraphs describe the parameters that you can set in the Options dialog box and the way they affect program operation.

¨       MIDI debug. If the output file does not correspond to what you were expecting, there is probably something going wrong with the Sound Font or the MIDI file or both. Suppose that you are trying to convert a MIDI with a piano piece and are using a Sound Bank that doesn’t have the piano preset. The output file will have no sound at all. By toggling this option the program will generate warning messages that provide some insight into what is going on. By default this option is disabled.

¨       MIDI tempo. With this you can set the tempo or the pace at which the MIDI file is being played. It can be set to go faster or slower, as a percentage of the original tempo. If you want the MIDI file to play at double the original speed, set this option to 100% faster. The thumbwheels only go to 100% but you can edit the numeric field to set any value you desire. This parameter is only effective before the conversion process; it does not affect the WAVE file.

¨       MIDI Transposition. This facility allows you to shift the pitch of the notes in a MIDI file. This applies to all the channels except channel 10, used for percussion. The transposition can be up- or downward and can consist of any number of semitones.

¨       File names. In this field you can change the default file/path names for the SoundBank and the output files. This information is stored as a .INI file in the same folder as the executable.

¨       Chorus. In this field you can change the amount of chorus applied to a MIDI file during the conversion process. This edit box with the caption Wet adjust allows you to specify a value to be added to the amount of chorus specified by a CC93 MIDI command and to the value specified in the SoundFont for the samples you are using. The value can be negative, so that you can actually subtract from the value specified by the CC93 command or SoundFont. The drawback is that the value you specify in this field affects all the channels. The total amount of chorus (the value you specify in this field plus the value in the CC93 MIDI command plus the value specified in the SoundFont) must remain in the 0-100% range. If the result is outside this range the sum is limited automatically by the program. For instance to completely remove any chorus effect that is set in your MIDI or SoundFont files, you put a value of –100 in this field.

¨       Reverberator. This group of fields allows you to set some of the reverberator’s parameters:

1)    Room size. This controls the simulation of the room ambience. It can range from 0 for a small room to 100 for a cathedral. The program automatically truncates values outside this range.

2)    Damping factor. This value determines how fast a given sound will die away. A value of 0 corresponds to the maximum time the sound will last.

3)    Wet adjust. This works in the same way as the Wet adjust parameter for the Chorus effect, described above. Here we are talking about the amount of sound that passes through the reverberation effects processor. The MIDI controller for reverberation is CC91.

¨       Master Volume. In this field you can control the overall amplification applied to the output file. It can have positive or negative values. If you feel that the output file sounds too quiet, set this field to a positive value. For instance 20 will provide a tenfold increase in the value of the output samples. On the other hand, if there is distortion in the output or the effect of the Limiter is noticeable (you hear sudden changes between to quiet and too loud in the sound) you should put a negative value in this field. For instance -20 will provide one tenth of the value in the output samples.

¨       Compressor gain. This field controls the Compressor part of the output unit. It provides a “soft” clipping of the output peaks, so that the overall volume can be cranked up. You apply this feature when you feel that the output sound seems to be all right but otherwise dull, it lacks that “punch” quality that you can hear on commercial records. This works best in files with lots of percussion. Be careful though if you set too high a value in this field you will get noticeable distortion on the output sound.

 


Batch files

From version 1.5 on there is a batch facility, whereby you can convert a set of MIDI files without having to manually set the parameters for each conversion. The instructions for the batch go into a text file that you can edit with a text editor like Notepad.

Each line in the batch file describes a job in the batch. Each line has three fields corresponding to:

1)     The SoundFont to be used.

2)     The output file (WAVE) where to put the result of the conversion.

3)     The MIDI file to convert.

The fields, which besides the file name can include the partial or full path, are separated by one or more spaces. If the file name or path used in a field have embedded spaces, enclose the file name/path between “”. You can use TABs instead of spaces to separate fields. Any line that starts with a semicolon is considered as a comment and is not parsed for conversion purposes.

At the beginning of the batch process the program will check for errors in the batch file, for instance if a specified SoundFont really exists. If it finds an error, it shows a Message Box indicating the line where the error was found and a message explaining what caused the error and then terminates the batch process. You can then correct the error and resubmit the file.

 


Modulators

In this section we will take a look at some of the MIDI commands and parameters that are processed by the synthesis engine and how the sound generated will be affected by them. The next section will deal exclusively with Continuous Controllers.

To fully understand the concepts described in this section it is helpful to have an idea of the synthesis engine architecture, as described in the MidiSyn technical page.

¨       Key Velocity. MIDI key velocity affects both the attenuation of the sound and the filter cut-off frequency. As far as attenuation is concerned, key velocity will affect the initial attenuation (before other modulators, namely the envelope, are applied) in an inverse way. The key velocity values of 0®127 will map to an attenuation of 96dB®0. As far as filter cut-off frequency is concerned, key velocity will affect the initial value (before other modulators are applied). The key velocity affects filter cut-off frequency in an inverse way – As the velocity increases the filter cut-off frequency decreases. The key velocity values of 0®127 will map to a frequency change of 0®-2400 Cents.

¨       Channel Pressure. Both Polyphonic Key Pressure and Channel Aftertouch will affect Vibrato LFO pitch depth. This is a modulator that affects the digital oscillators included in the Sound Generator blocks. The Channel Pressure values of 0®127 will cause a frequency change of 0®50 Cents relative to the maximum excursion of the vibrato modulator.

¨       MIDI CC1. Like Channel Pressure, MIDI continuous controller 1 (Modulation) will affect Vibrato LFO pitch depth. The maximum amount of modulation will also be 50 Cents.

¨       MIDI CC7. MIDI continuous controller 7 (Main Volume) affects initial attenuation of the signal in an inverse way. MIDI CC7 values of 0®127 will map to attenuation values of 96dB®0.

¨       MIDI CC10. MIDI continuous controller 10 (Panorama) will affect the position of the sound generated in the stereo field. Value 0 corresponds to the extreme left, 64 to centre and 127 to the extreme right.

¨       MIDI CC11. Like MIDI CC7, MIDI continuous controller 11 (Expression) affects the initial attenuation, by the same amount. MIDI CC7 should be used at the beginning of a track to set overall volume, and CC11 should be used locally to highlight small passages of the music.

¨       MIDI CC91. MIDI continuous controller 91 (Reverberation) controls the percentage of signal that is routed through the reverberation unit. CC91 values of 0®127 will map to values of 0®100%.

¨       MIDI CC93. MIDI continuous controller 93 (Chorus) controls the percentage of signal that is routed through the chorus unit. CC91 values of 0®127 will map to values of 0®100%.

¨       MIDI Pitch Wheel. Pitch Wheel values are bipolar and range from 0® +/-8192. The pitch value sent to the oscillators depends on the value set for the Pitch Wheel Sensitivity parameter. By default the pitch wheel excursion is set to 2 semitones (200 cents).

 


Controllers

In this section we will take a look at some of the MIDI Continuous Controllers which are processed by the synthesis engine. The difference between these controllers and the modulators referred to in the preceding section consists mainly in the fact that the controllers herein described do not directly affect the sound generated, being more of an housekeeping nature.

 

¨       MIDI CC0 – Bank Select. Selects one of the banks of the Sound Font file.

¨       MIDI CC32 – Bank Select LSB. This controller is ignored.

¨       MIDI CC64 – Sustain. Active when the value associated is greater than or equal to 64. When active, all notes in the key-on state remain in this state regardless of whether a key-off command for the note arrives. The key-off commands are stored and when sustain becomes inactive all stored key-off commands are executed.

¨       MIDI CC66 – Sostenuto. Active when the value associated is greater than or equal to 64. Unlike the Sustain command, the Sostenuto function prolongs only the notes that are played after the function becomes active.

¨       MIDI CC67 – Soft. Active when the value associated is greater than or equal to 64. This causes the notes to be played at half strength.

¨       MIDI CC120 – All sound off. When received with any data value, all notes playing in the key-on state immediately enter release phase, regardless of their Sustain or Sostenuto status.

¨       MIDI CC121 – Reset All Controllers. Resets all continuous controllers to their default values.

¨       MIDI CC123 – All notes off. When received with any data value, all notes playing in the key-on state immediately enter release phase, pending their Sustain or Sostenuto status.

 


Feedback

Comments, suggestions and bug reports are welcome and should be sent to acesteves@clix.pt

 

 


This page last modified 2002-03-03 - Copyright © 2002 ACE