Author |
Topic: Extended Midimap (Read 1786 times) |
|
Olivier Guillion
Administrator
    

WWW | Email
Gender: 
Posts: 5781
|
 |
Extended Midimap
« on: Nov 9th, 2005, 9:53am » |
Quote | Modify
|
Description: Extended Midimap, that enables to define the list of sound names available in an external MIDI synthesizer, and use this list instead of the regular sound list in Harmony Assistant. Problem: how to keep the relation between these sounds and the original list, in order to let the tune be played on another synthesizer or on digital output ? Difficulty:     Product(s):
|
|
offline |
Olivier Guillion Myriad Software
|
|
|
zapgadget
Board Newbie


Posts: 1
|
 |
Re: Extended Midimap
« Reply #1 on: Oct 14th, 2006, 12:47pm » |
Quote | Modify
|
A way to keep the list related to the original (GM) list is to have them classed as related sounds so that the default is used as alternative if the same voice isn't available. Give a warning as you load the file "Non-standard sounds used - mapped to closest available GM sound."
|
|
offline |
|
|
|
COMALite J
Beta-tester Board Full Member
  
 Barbershop Harmony is the BEST!!
Email
Gender: 
Posts: 792
|
 |
Re: Extended Midimap
« Reply #2 on: Oct 19th, 2006, 11:10pm » |
Quote | Modify
|
The "problem" is simply not a problem at all. A person wanting to use this isn't concerned about portability, but of using the non-GM MIDI gear to its maximum capabilities. GM is a convenient standard for mapping common instrument sounds to the 128 available Program Change values in a standardized way, plus a standard note-to-drum drumkit sound mapping for Channel 10, plus several other additions to the basic MIDI standard such as the GM System On message to indicate that a particular MIDI stream or file is GM compliant, and to force any GM-capable device to switch to GM mode (assuming it has both GM and non-GM modes). GM is not necessary for MIDI. A device can be fully MIDI compatible without being at all GM compatible. Imagine, for instance, a hardware MIDI tone module that has 128 different Piano samples. It simply assigns the Program Change values of 0-127 to the various Pianos that it has. It cannot do any other sounds besides pianos, but it does very good pianos with lots of variations. The pianos may include, say, Grand Pianos #1-32, Upright Pianos #1-32, Electro-Mechanical Pianos #1-32, and Electronic/Synthetic Pianos #1-32, in that order. That accounts for all 128 sounds. I think what the Request is asking for is a way to set up a MIDI Map to name these sounds accordingly, without any attempt to worry about mapping them to GM. The Map would be assigned at the MIDI port and channel level, so that, say, any Staff set to External MIDI #1 Channels #4 and #5 (to allow for Keyboard Split) would use that Map, while the others would use the GM maps or other custom maps as needed. Each MIDI Map sound entry would need, of course, a Bank Select value (preferrably enterable as both a single number in the 0-16383 range, and as MSB + LSB each in the 0-127 range, with the two related: entering one will change the other accordingly on-the-fly), plus a Program Change value, and a checkbox that would determine whether it was necessary to send the Bank Select (in the case of our piano module, it would not require nor even recognize Bank Select, and would just ignore it if present, so no need to bother sending it). A real-world example is my $15 sound card with on-board VL synth in its Yamaha YMF-724 chipset. The VL synth uses MIDI Channel 1 if the sound card has been initialized to XG mode (using XG System On SysEx), and recognizes if the sound is to be a VL sound by the Bank Selects. One set of Bank Selects puts it in VL Native mode, which is not GM compliant, but makes the full complement of about 380 built-in sounds plus user-customizable and even user-built-from-scratch sounds available. These particular bank selects are in a high range that fully GM-compatible devices should ignore entirely (as in not play any sound for, rather than playing just the GM sound for that Program Change value). Another Bank Select group is the Sondius-XG set, which makes a subset of the presets available mapped to the nearest XG / GM sounds, with fallback to GM. So, to fully implement this Request, you also need the ability to specify a SysEx (with checksum calculated) to be sent to initialize the port and channel into the proper mode if need be, as well as Bank Select and Program Select for each voice.
|
| « Last Edit: Oct 19th, 2006, 11:12pm by COMALite J » |
offline |
|
|
|
Reuel
Board Junior Member
 

Gender: 
Posts: 127
|
 |
Re: Extended Midimap
« Reply #3 on: Apr 20th, 2012, 10:07pm » |
Quote | Modify
|
Perhaps just provide the user with another midimap in addition to GM1 and GM2. e.g. The different "pipes" of the organs in GOLDBASE are all currently converted to GM1 Program 19 bank 128. If we have non-gm midimap called "Goldbasemap" "Swell-Nazard 1 1/3" could map to user Program 19 bank XXX; "Swell-Gambe 8" could tranlate to user Program 19 bank YYY where XXX or YYY are banks NOT already currently defined in GM2. User can then derive a user midimap to turn on correct organ stops or pistons in Virtual Pipe Organs like Hauptwerk/Grandorgue/myorgan/miditzer/jorgan. Hauptwerk or Miditzer or Jorgan can then through a HA score be used to even drive physically REAL organ pipes.
|
| « Last Edit: Apr 20th, 2012, 10:34pm by Reuel » |
offline |
Reuel
HA 9.6.2m, VS, Gold Sound base 2 on Windows 7 x64
|
|
|
|