MidiCfg edits your midi configuration...
Windows knows VERY little about your MIDI devices.
Just a usually laaame description set by the midi device driver.
MidiCfg is just an editor for the {MidiPath}\Dev\* files.
You could do that yourself with a text editor...
But if you really wanna do that, go get linux... KIDDING! :)
MidiCfg edits...
Midi input,output device list
global controller list
each deviceType's
input controller list (for input devices)
mappings from controller in->out (for input devices)
output controller list (for output devices)
sound list (for output devices)
________________________________________________________________________________
MIDI Input,Output Device List:
Hover over the buttons for tooltip help.
Ditty programs need to know:
- a short descriptive NAME for each midi in and out device.
- the TYPE of each midi device.
I have "tweaker", an EdiRol PCR-800 and "rockin88", a Yamaha CP-33.
My Creative Audigy has 2 output devices.
both are type "SFont", but seperate devices with distinct names.
Note that rk88 is both a midi input AND an output.
Twkr is input only (a midi controller).
- the order to use them in (which output device to use first)
- whether to use some of the devices at all (see the "off" stuff?)
So your main jobs in this screen are to
- reorder the lines so that the first lines will be
the devices to use by DEFAULT
- turn off the lame devices
(Microsoft GS Wavetable SW Synth is lame - unless it's all ya got)
- give your devices decent (SHORT!) names. (My GUIs only show 8 chars max:)
- set the Type field to a SHORT name describing the synth model.
It'll automatically be set to "SFont" for
Creative Soundblaster Live and Audigy devices.
Use "GenMidi" if you don't want to treat it special and
just want to mess with controls LATER.
- tweak the EditKey field (in the top right) to the top note for
live keyboard editing in ditty. (8 note keys to tweak stuff with)
We're talking about the FIRST MidiIn device in your list.
The default (not shown) is for a full 88 key keyboard.
Set to 8g for 76 keys; 8c for 60 keys.
EditKeys are described in the Ditty reference docs.
________________________________________________________________________________
Global Controller List:
Hit the toolbar button with the red square to get to this screen:
- Name standard name Ditty/Tinker will use
- Type tells Tinker how to display it...
s - signed -64..0..63
u - unsigned 0..127
o - on/off
. - no value
- DefaultValue value at the beginning of a track with no events
- Init means it's sent out to initialize a device's channel
- Description is well, you can figure THAT one out...
Don't worry - you don't have to type all that in. I already did it for ya :)
This screen describes the "nailed down" outbound controls stored in a track.
General Midi has SOME controls defined pretty well. They're these.
But General Midi doesn't give STANDARD names for these controls.
Only "sort of standard" names.
This screen gives all the standard outbound controller numbers
standard NAMES.
You won't have to remember that Pan is controller #10, (not #8 !)
because THIS screen nails that down. You just say "Pan"
When a midi file comes into Ditty/Tinker,
this table is consulted for the controller#. cc10 becomes "Pan".
(Recording live midi is a little different - we'll get to that shortly.)
Any ID#s leftover stay as cryptic strings in this format:
cc# regular control
rp# and rp#L RPN control (high and low byte)
np# and np#L NRPN control
us# universal sysex control
Although these don't have nice names, at least they're STRINGS.
(and won't be just tossed out)
You can give the ones you actually USE names in this list.
That's it's job.
________________________________________________________________________________
DeviceType's Input Controller List:
From MidiCfg's main screen, click a MidiIn: device and
hit the toolbar button with the HUGE description
(to the right of the red square one)
to see...
This screen is pretty cool.
As you play notes and tweak controllers on the keyboard,
(or drumkit or whatever midi input device)
You'll see the events show up in the "Inbound Events" list on the right.
If a control comes in that's not already in the list on the left,
it'll be added.
Then, YOU give it a nice (short) NAME.
For example...
- tweak the first slider on your keyboard.
- does anything show up in the Inbound Events?
It could be that slider doesn't go out midi - RATS! Check the manual :(
- If you get a new RawCtrl in the list (SWEEEET!),
look on the panel of your keyboard and give it THAT Name.
(for me, it's S1 - first slider of 9:)
If there's no panel label,
come up with something short and descriptive.
If you're lucky, you may not even have to crack the device's manual !!
You've now got JUST the controls THIS devicetype can do all NAMED
according to what it says RIGHT there in front of you on the panel.
So if you've got 2 PCR-800s (YOU SCUM!), they're both all done now.
You're ready to start making MAPS!
________________________________________________________________________________
DeviceType's Control Mappings List:
From MidiCfg's main screen,
pick a MidiIn: device's CCMap: (defaulting to .) and
hit the toolbar button with the arrow.
to see...
This screen sets up a set of mappings saying
which panel controls record which output controls into the track.
MENU
Note that my program change control on Tweaker sends the "MENU" control.
Ditty considers "MENU" special and
changes the "live editing" category droplist.
TRAK
There's also TRAK which will choose the default track in ditty.
(that little > that picks the current track to mess with)
The rest of the controls are recorded into the track.
Note that anything not mapped is filtered.
When you first create a map,
JUST the controls a devicetype HAS are listed off (by panel NAME).
You can create several maps and reuse your panel controls to record other
whole sets of outbound controls into the track.
ModifyCommand is still "in work"...
The idea being that you can
- modify the channel of an inbound control, maybe device too
- scale or otherwise alter the control's value
Currently, the only thing you can put in there that actually DOES
something is:
FLIP
This will take the usual 0..127 values of the controller and flip
them into 127..0
This is handy since not all controls have TOP=0 and BOTTOM=127.
For example:
slider_vert 0..127 => bot..top
slider_horiz 0..127 => top..bot
modwheel, 0..127 => bot..top
modwheel_spring, 0..127 => bot..top ret to bot??
prss 0..127 => top..bot
breath, 0..127 => top..bot ?? ret to top?
knob, 0..127 => top..bot
pedal, 0..127/64 => top..bot ret to top
progch, 0..15/99/127/etc => top..bot
pbnd, -64..0..63 => bot..mid..top ret to mid
pbnd_sideways, -64..0..63 => top..mid..bot ?? "
So for the ones with 0..127 => bot..top, try putting
FLIP into the ModifyCommand column
Since I did that screenshot, I've changed MENU and TRAK to
Mod | MENU | FLIP (on my cp33)
s1 | TRAK | FLIP (on my pcr800)
Ok, your midi input config is complete !!
Time for the midi output stuff...
________________________________________________________________________________
DeviceType's Output Controller List:
From MidiCfg's main screen, click a MidiOut: device and
hit the toolbar button with the HUGE description
(to the right of the red square one)
to see...
This screen maps the names of output controls this device is capable of
back to ID#s for midi.
Yep, you're going to have to read that dang manual after all.
Add in lines for each of the output controls this device is capable of
responding to.
And put in the ID# for each one:
cc# regular control
rp# and rp#L RPN control (high and low byte)
np# and np#L NRPN control
us# universal sysex control
Note: the way I set up RPN and NRPNs #s is in the range
0..8191
with an L tacked on if it's the low byte.
________________________________________________________________________________
DeviceType's Sound List:
From MidiCfg's main screen,
pick a MidiOut: device and hit the toolbar button with the note.
to see...
I'm kind of hoping you won't need to use this screen.
But, should you need to, it's here.
(Like for my cp-33 with it's whoppin' =32= sounds)
This screen gives each sound on your sound module a name and maps it
to the ProgramChange, BankSelect, and BankSelectLowbyte combination
that midi needs to pick it.
If you're using a Creative Soundblaster Live or Audigy,
sounds are handled completely by NAME.
All the program changes, etc are handled transparently by Ditty and
SF2SFont/PSetEdit/SFontBank.
If you already have this mapping in SOME sort of file, I can turn it into
the type of file this screen is editing FOR you. (With a bit of perl.)
Just email it to
ME.
If I get enough of these, I'll put em on my website so others won't have to
experience your pain...:/
|