All graphics and text on this page and the product "MIDI Locator" © 2000 - 2010 by Frank Rittberger.

Windows®, Windows XP®, Windows Vista® and Windows 7® are registered products of the Microsoft® Cooperation.

The General MIDI System Level 1 and Level 2 specifications (GM, also GM-1 and GM-2) are owned by the MIDI Manufacturers Association (MMA).

XG™ is a registered trademark of Yamaha Corporation.

GS™ is a trademark of Roland Corporation.

 

 

 

 

 


   


Manual

   

 

 

 

 

MIDI output device strips
MIDI output device parameter
Track controls
Karaoke
Settings
List editor
ML's Internal Sound Generator
Audio record
Wave editor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

MIDI Locator's Internal Sound Generator


This device is only visible and audible inside MIDI Locator. It is the device which is opened if you start MIDI Locator the first time. It is a simple sample player, which understands base elements of the GM-, GS- and GM2-MIDI standards.

Base elements means that you can send a GS- or GM2-reset to it, and even switch MIDI channels to rythm by the GM2- or GS-mechanism, but many GS/GM2-controllers are not supported and have no result.

The sample player only knows 128 different MIDI programs, it doesn't understand bank selections by Bank MSB/LSB, even in GS mode.

But it understands a rythm selection by "Bank Select MSB" 120 in GM2.

Supported MIDI events / controllers:

  • Note On/Off
  • Program change
  • GS and XG sysex messages "Use for rythm part" and "MIDI mode reset"
  • GM2 mechanism for switching a MIDI channel to rythm (by BankSelect MSB 120)
  • GM2 sysex message "Keybased instr. controller" for controller "pan" if MIDI channel is a rythm channel
  • GS Drum NRPN "Panorama"
  • Main Volume controller
  • Expression controller
  • Balance controller
  • Panorama controller
  • All sounds of controller
  • All notes of controller
  • GS NRPN Release time (TVF&TVA env.rel.time)
  • GM2 Control Change "Release time" (Release time)
  • Pitchbend
  • RPN pitchmax

The sampler player can only play 44.1 kHz mono or stereo samples.

Because this device is an invention of MIDI Locator's author, nearly all device parameters are defined for you and are disabled for editing.

The only thing you could change is the wave device / MIDI channel map (see MIDI output device parameter).

The most important thing you should know about MIDI Locator's Internal Sound Generator is that it takes it's .wav / MIDI program and note key mapping information from a simple text file: the .igr file. The .wav files themselves have to be located in the same directory. Thats all.

You can create an own .igr file and assign your personal .wav files to program and key-combinations, or you can use the pre-defined demo.igr which is delivered with MIDI Locator.

There is a simple editor for creating or watching .igr files: The "Internal sound generator .igr-file editor". You find it in the main menu, entry "Extras".

The sample player can play oneshot and loop samples, edited in MIDI Locator's or a foreign wave editor. But if you want to assign a .wav file to an instrument program, it has to carry the "dwMIDIUnityNote" (original key) information. The key of the .wav file can not be named in the .igr file, it has to be named in the .wav-file's smpl-chunk.

Not all wave editors allow to define this "dwMIDIUnityNote" field in the .wav file, use MIDI Locator's wave editor, then.

The sample player can play MIDI notes in realtime, and can also silently render a MIDI song into a new wave file preserving the best audible qualitiy (filewriter, only full version!).

The sample player can NOT produce effects like reverb or chorus.

How does "MIDI Locator's Internal Sound Generator" realize playing the samples ?

It keeps all sample-beginnings in RAM which could be started by appearing "Note on" events. If you only set MIDI channel 1 to program Brass (MIDI channel 10 is rythm by default) it will load the brass samples, piano samples (channel 2-9 and 11-16) and all drum samples (channel 10), named in the .igr file. It doesn't load all samples of the .igr file.

That means the first thing the sampler does when it is turned on is to determine the current MIDI programs on each MIDI channel. Then it loads the samples. As soon as a new program change event appears old program's samples are released and new ones are loaded from your harddrive. Please note that the process of loading all samples of a MIDI program to memory can consume much system performance for a short time.

Unlike external RAM based sample players (MIDI expanders) MIDI Locator's sample player will load needed samples from your harddisk in the moment when a program change event appears. So you should think about positions of too many program change events in your MIDI sequence which appear at the same MIDI time. Set them some MIDI ticks appart from each other to spread their performance consumption over a larger time period.

Also try to avoid a short drop out by program change events in the middle of your MIDI file. MIDI Locator's Internal Sound Generator is usually not influenced by the resource consumption appearing by a single program change, but many program changes together can be too hard. Put them in the beginning of the sequence and give MIDI Locator some MIDI ticks time to load the samples before the first "Note on" event appears.

Starting a fresh loaded MIDI file in the middle...

The auto-"dirty controller adjustment" function sends necessary program change events if you start a fresh loaded MIDI file in the middle (to update all MIDI channel's programs to their actual instruments).

This can lead to an overdose of program changes.

The result could be a stuttered beginning of the middle of the sequence, because MIDI Locator can't load all the needed samples to memory fast enough.

Releasing samples

If you change a MIDI channel's current program to a program number which has no assigned samples, the old samples are released, but no new ones are loaded. At this moment you can see the text "Releasing samples" on "MIDI Locoator's Internal Sound Generator's" display.

Internal Sound Generator .igr-file editor

The .igr-file editor can be used to create a sample (.wav file)/program-map usable (loadable) by MIDI Locator's Internal Sound Generator. The sample/program-map is saved in a simple text file with the extension .igr, where your .wav files for each MIDI program number are listed. The samples have to be placed in the same directory where you save the .igr file. If you load the .igr file with the "load .igr file" button on the device strip, MIDI Locator will search for the mapped .wav files in the same directory.

MIDI Locator's Internal Sound Generator doesn't know "program banks", it only knows one set of 128 MIDI programs and a set of 128 drum instruments, like an old GM sound device.

So you have 2 areas: the upper 128 melody-instrument-area for non-drum MIDI channels and the lower 128 drum-instrument area for MIDI channels which were switched to "drum channels".

In the upper area you can assign one or multiple .wav files to every of the 128 instrument-programs, in the lower area you can assign one .wav file to every of the 128 drum-instruments.



The instrument .wav files in the upper area must have the "dwMIDIUnityNote" (original key) information in the smpl-chunk. Use MIDI Locator's wave editor, if you don't prefer another wave editor able to edit the original-key information.

"MIDI Locator's Internal Sound Generator" uses automatic key zones. If you trigger a MIDI note and you have two instrument samples which are placed in front and behind this triggered key, the nearest of them will be selected and pitched to the frequency needed to play the triggered note. You can not directly set key zones.

Because the drum samples have to be assigned to a drum-key in the .igr file editor, the original-key information is not needed in a drum .wav file.

Also pre-defined "LowVelocity" and "HighVelocity" in the inst-chunk of the .wav file will be red. So it is even possible to assign more than one sample with one original-key. "MIDI Locator's Internal Sound Generator" will compare the velocity area in your .wav file with the velocity of the triggering "Note on" MIDI event. And will play the .wav file which fits.

If you haven't assigned "Velocity" fields or even no inst-chunk in your .wav file, MIDI Locator supposes full velocity range (1-127).

Also the "Velocity" fields are editable in MIDI Locator's wave editor.

In addition to those fields in should be mentioned that also loop-points in a .wav file are red by "MIDI Locator's Internal Sound Generator".

Release Times

"MIDI Locator Internal Sound Generator" derives the release time of a sound from the MIDI program. If you have assigned a .wav file to a bass instrument, your sample will get a very short release time. If you assigned it to slow strings, it will get a very long release time.

Drum's release times are always eternal and end at the wave file's end. Only "Open Hi Hats" are cutted by a "Note on" of "Closed Hi Hat" or another "Open Hi Hat".

So the volume envelope control of a sample is done by MIDI Locator and could not be pre-defined inside the .igr file editor.

Anyhow you can cut or expand MIDI Locator's calculated release times with a NRPN "TVF&TVA env.rel.time".

Filewriter

You can write the output of all tracks which are assigned to "MIDI Locator's Internal Sound Generator" into a stereo 16 bit, 44.1 kHz or 24 bit, 96 kHz wave file.

You start the file write by clicking on the button "MIDI to .wav".

Muted tracks are not written in the output file

The writing begins with the vertical position of the cursor in the arranger window (measure offset).