Michael B's StyleDump program is the greatest thing since sliced bread. :D It dumps MIDI and VCE files as well as styles, because heck, they're all SMF!
Here is an old dump of the JazzyArtist VCE to show the kind of information which is stored there. StyleDump's format is kind of wonky, so one needs to know what NRPN MSB/LSB values are. But, they all map to Voice Set parameters. (And UVF parameters, too.)
I can't thank Michael enough for this program -- pj
Voice dump: JazzyArtist
ID Delay Measure Ch Type
000022 5 1:01:000 Metadata Time Signature: 4/ 4
000030 5 1:01:010 Metadata Tempo: 120
000037 5 1:01:015 1 Midi CC Bank Select MSB Value: 8
000041 5 1:01:020 1 Midi CC Bank Select LSB Value: 39
000045 5 1:01:025 1 Midi Program Change: 6
000048 5 1:01:030 1 Midi CC Release Value: 104
000052 5 1:01:035 1 Midi CC NRPN MSB Value: 1
000056 5 1:01:040 1 Midi CC NRPN LSB Value: 102
000060 5 1:01:045 1 Midi CC MSB Data Entry Value: 64
000064 5 1:01:050 1 Midi CC LSB Data Entry Value: 0
000068 5 1:01:055 1 Midi CC Attack Value: 64
000072 5 1:01:060 1 Midi CC NRPN MSB Value: 1
000076 5 1:01:065 1 Midi CC NRPN LSB Value: 100
000080 5 1:01:070 1 Midi CC MSB Data Entry Value: 64
000084 5 1:01:075 1 Midi CC LSB Data Entry Value: 0
000088 5 1:01:080 1 Midi CC NRPN MSB Value: 1
000092 5 1:01:085 1 Midi CC NRPN LSB Value: 8
000096 5 1:01:090 1 Midi CC MSB Data Entry Value: 61
000100 5 1:01:095 1 Midi CC LSB Data Entry Value: 0
000104 5 1:02:004 1 Midi CC NRPN MSB Value: 1
000108 5 1:02:009 1 Midi CC NRPN LSB Value: 9
000112 5 1:02:014 1 Midi CC MSB Data Entry Value: 64
000116 5 1:02:019 1 Midi CC LSB Data Entry Value: 0
000120 5 1:02:024 1 Midi CC NRPN MSB Value: 1
000124 5 1:02:029 1 Midi CC NRPN LSB Value: 10
000128 5 1:02:034 1 Midi CC MSB Data Entry Value: 64
000132 5 1:02:039 1 Midi CC LSB Data Entry Value: 0
000136 5 1:02:044 Sysex XG Part#= 0 , MW Filter Control= 64
000147 5 1:02:049 Sysex XG Part 00 MW offset Level= 64
000158 5 1:02:054 Sysex XG Part#= 0 , MW LFO PMod Depth= 6
000169 5 1:02:059 Sysex XG Part#= 0 , MW LFO FMod Depth= 0
000180 5 1:02:064 Sysex XG Part#= 0 , MW MW LFO FMod Depth= 25
000191 5 1:02:069 Sysex XG Part#= 0 , Mono(0)/Poly mode= 1
000202 5 1:02:074 Sysex F0 43 73 01 50 08 00 04 5A F7
000214 5 1:02:079 1 Midi CC Harmonic Content(timbre) Value: 64
000218 5 1:02:084 1 Midi CC Brightness Value: 64
000222 5 1:02:089 1 Midi CC Portamento Time Value: 0
000226 5 1:02:094 Sysex XG Part#= 0 , Velocity Sense Depth= 64
000237 5 1:03:003 Sysex XG Part#= 0 , Velocity Sense Offset= 64
000248 5 1:03:008 Sysex F0 43 73 01 50 08 00 05 3F F7
000260 5 1:03:013 Sysex F0 43 73 01 50 08 03 06 41 F7
000272 5 1:03:018 Sysex XG Part#= 0 , EQ Bass Frequency= 24
000283 5 1:03:023 Sysex XG Part#= 0 , EQ Bass Gain= 48
000294 5 1:03:028 Sysex XG Part#= 0 , EQ Treble Frequency= 37
000305 5 1:03:033 Sysex XG Part#= 0 , EQ Treble Gain= 80
000316 5 1:03:038 Sysex F0 43 73 01 51 04 00 00 02 07 00 F7
000330 5 1:03:043 Sysex F0 43 73 01 50 04 00 05 23 F7
000342 5 1:03:048 Sysex F0 43 73 01 50 04 00 02 10 F7
000354 5 1:03:053 Sysex F0 43 73 01 50 04 00 03 00 F7
000366 5 1:03:058 Sysex F0 43 73 01 50 04 00 04 00 F7
000378 5 1:03:063 1 Midi CC Reverb Send Level Value: 26
000382 5 1:03:068 1 Midi CC Chorus Send Level Value: 0
000386 5 1:03:073 Sysex F0 43 73 01 50 08 00 08 7F F7
000398 5 1:03:078 Sysex DSP Variation Off
000410 5 1:03:083 Sysex XG Effect2 DSP 2 Insertion Effect
000422 5 1:03:088 Sysex XG Effect2 DSP 2 Insertion Parameter 10= 0
000433 5 1:03:093 Sysex F0 43 73 01 51 08 00 11 02 00 50 F7
Hi --
Here are the MIDI events to be found in a VCE file. Use of "Clavinova" SysEx seems to be a legacy thing as well as the use of NRPN vs. CC. Similar information is found in OTS files.
The purpose of several Clavinova SysEx events is unknown.
Hope someone finds this table useful. They could use the info to program a MIDI controller.
Take care -- pj
VCE file MIDI events (all events channel 1)
Type Event# Purpose Detail
---- ------ --------------------------- -----------------------------
CC 0 Bank select MSB
CC 32 Bank select LSB
PC Program change
CC 72 Release Time (GM2)
NRPN 1,102 EG Release All NPRN need Data Entry events
CC 73 Attack Time (GM2)
NRPN 1,100 EG Decay Time
NRPN 1,8 Vibrato Rate
NRPN 1,9 Vibrato Depth
NRPN 1,10 Vibrato Delay
SysEx Part:0, MW Filter Control F0 43 10 4C 08 00 1E 40 F7
SysEx Part:0, MW Offset Level F0 43 10 4C 0A 00 40 40 F7
SysEx Part:0, MW LFO PMod Depth F0 43 10 4C 08 00 20 06 F7
SysEx Part:0, MW LFO FMod Depth F0 43 10 4C 08 00 21 00 F7
SysEx Part:0, MW F0 43 10 4C 08 00 22 19 F7
SysEx Part:0, Mono/Poly F0 43 10 4C 08 00 05 01 F7
SysEx Part:0, MW Filter Control F0 43 73 01 50 08 00 04 5A F7
CC 71 Harmonic Content (GM2)
CC 74 Brightness (GM2)
CC 5 Portamento Time (GM2)
SysEx Part:0 Velocity Sense Depth F0 43 10 4C 08 00 0C xx F7
SysEx Part:0 Velocity Sense Offset F0 43 10 4C 08 00 0D xx F7
SysEx Unknown F0 43 73 01 50 08 00 05 3F F7
SysEx Unknown F0 43 73 01 50 08 03 06 41 F7
SysEx Part:0, EQ Bass Frequency F0 43 10 4C 08 00 76 xx F7
SysEx Part:0, EQ Bass Gain F0 43 10 4C 08 00 72 xx F7
SysEx Part:0, EQ Treble Frequency F0 43 10 4C 08 00 77 xx F7
SysEx Part:0, EQ Treble Gain F0 43 10 4C 08 00 73 xx F7
SysEx Harmony/echo type F0 43 73 01 51 04 00 00 yy yy yy F7
SysEx Harmony/echo volume F0 43 73 01 50 04 00 05 yy F7
SysEx Harmony/echo assign auto F0 43 73 01 50 04 00 02 yy F7
SysEx Harmony/echo chord off F0 43 73 01 50 04 00 03 yy F7
SysEx Harmony/echo touch limit F0 43 73 01 50 04 00 04 yy F7
CC 91 Reverb Send Level
CC 92 Chorus Send Level
SysEx DSP effect ON/OFF F0 43 73 01 50 08 00 08 xx F7
SysEx DSP Variation F0 43 73 01 50 08 00 01 xx F7
SysEx EFFECT2 DSP 2 Ins Effect F0 43 10 4C 03 00 00 xx yy F7
SysEx EFFECTs DSP 2 Ins Param 1 F0 43 10 4C 03 00 02 xx F7
SysEx EFFECTs DSP 2 Ins Param 2 F0 43 10 4C 03 00 03 xx F7
... ... ...
SysEx EFFECTs DSP 2 Ins Param 9 F0 43 10 4C 03 00 0A xx F7
SysEx EFFECTs DSP 2 Ins Param 10 F0 43 10 4C 03 00 20 xx F7
SysEx EFFECTs DSP 2 Ins Param 11 F0 43 10 4C 03 00 25 xx F7
... ... ...
SysEx EFFECTs DSP 2 Ins Param 16 F0 43 10 4C 03 00 25 xx F7
SysEx DSP effect variation value? F0 43 73 01 51 08 00 11 yy yy yy F7
SysEx Part:0, CAT Filter Control F0 43 10 4C 08 00 4E xx F7
SysEx Part:0, MW Offset Level Cont F0 43 10 4C 0A 00 42 xx F7
SysEx Part:0, CAT LFO PMod Depth F0 43 10 4C 08 00 50 xx F7
SysEx Part:0, CAT LFO FMod Depth F0 43 10 4C 08 00 51 xx F7
SysEx Part:0, CAT LFO AMod Depth F0 43 10 4C 08 00 52 xx F7
SysEx Part:0, AC1 Low Pass Filter F0 43 10 4C 08 00 5B xx F7
SysEx Part:0, AC1 Offset Level F0 43 10 4C 0A 00 44 xx F7
SysEx Part:0, AC1 LFO Pmod Depth F0 43 10 4C 08 00 5D xx F7
SysEx Part:0, AC1 LFO Fmod Depth F0 43 10 4C 08 00 5E xx F7
SysEx Part:0, AC1 LFO Amod Depth F0 43 10 4C 08 00 5F xx F7
SysEx Unknown F0 43 73 01 51 08 00 12 03 0D 00 02 F7
SysEx Unknown F0 43 73 01 51 08 00 12 03 0E 00 44 F7
SysEx Unknown F0 43 73 01 51 08 00 12 03 0F 00 08 F7
Hi --
Next up is a snippet from the UVF file AlohaGuitar.uvf. It shows the voiceSet, effectSet and information XML elements.
To make a mapping from VCE to UVF, one just needs to match up the VCE MIDI events in my last post with the UVF parameters shown below. Two of the mystery Clavinova SysEx events probably match up with the partOctaveLeft and partOctaveRight parameters. (See http://dromeusik.blogspot.com/p/blog-page_17.html).
The voiceCommon XML element holds the actual voice programming, including the element definitions. I'm wondering if it's possible to sneak a UVF without voiceCommon into YEM's database? If that's possible, then we have a way to import VCE data into YEM. This would be a nice addition to Vali's YEM content explorer.
If YEM doesn't like an empty voiceCommon, then maybe a default (boilerplate) voiceCommon could be incorporated into the UVF as a placeholder?
I remember another forum member asking for a way to import VCE or VCE-like info into a YEM expansion pack. Probably other folks need this, too.
Have fun -- pj
<?xml version="1.0" ?>
<uvf:voiceData version="1.2" xmlns:uvf="http://www.yamaha.com/uvf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<voiceType>EKB_LEGACY</voiceType>
<voiceCommon editable="ON" xsi:type="uvf:VOICE_COMMON_EKB_LEGACY">
...
</voiceCommon>
<voiceSet>
<volume>98</volume>
<touchSenseDepth>64</touchSenseDepth>
<touchSenseOffset>67</touchSenseOffset>
<partOctaveLeft>1</partOctaveLeft>
<partOctaveRight>-1</partOctaveRight>
<monoPoly>1</monoPoly>
<portamentoTime>40</portamentoTime>
<mwLpfControl>64</mwLpfControl>
<mwAmpControl>64</mwAmpControl>
<mwPmodDepth>11</mwPmodDepth>
<mwFmodDepth>0</mwFmodDepth>
<mwAmodDepth>0</mwAmodDepth>
<catLpfControl>64</catLpfControl>
<catAmpControl>64</catAmpControl>
<catPmodDepth>6</catPmodDepth>
<catFmodDepth>0</catFmodDepth>
<catAmodDepth>0</catAmodDepth>
<panelSustain>100</panelSustain>
<eqLowFreq>16</eqLowFreq>
<eqLowGain>60</eqLowGain>
<eqHiFreq>42</eqHiFreq>
<eqHiGain>64</eqHiGain>
<brightness>64</brightness>
<resonance>64</resonance>
<egAttack>64</egAttack>
<egDecay>64</egDecay>
<egRelease>64</egRelease>
<vibratoDepth>67</vibratoDepth>
<vibratoSpeed>64</vibratoSpeed>
<vibratoDelay>66</vibratoDelay>
<harmonyType>0</harmonyType>
<harmonyVolume>100</harmonyVolume>
<harmonyAssignPart>0</harmonyAssignPart>
<harmonyCodeNote>0</harmonyCodeNote>
<harmonyTouchLimit>0</harmonyTouchLimit>
</voiceSet>
<effectSet>
<reverbSend>32</reverbSend>
<chorusSend>0</chorusSend>
<dspOnOff>ON</dspOnOff>
<dspDepth>30</dspDepth>
<dspVariationOnOff>OFF</dspVariationOnOff>
<dspVariationParameter>9</dspVariationParameter>
<specList>needsInsertionEffect</specList>
<insertionEffect>
<typeMsb>21</typeMsb>
<typeLsb>0</typeLsb>
<prm1>10</prm1>
<prm2>80</prm2>
<prm3>10</prm3>
<prm4>78</prm4>
<prm5>64</prm5>
<prm6>0</prm6>
<prm7>0</prm7>
<prm8>0</prm8>
<prm9>0</prm9>
<prm10>30</prm10>
<prm11>0</prm11>
<prm12>0</prm12>
<prm13>28</prm13>
<prm14>64</prm14>
<prm15>46</prm15>
<prm16>64</prm16>
</insertionEffect>
</effectSet>
<information>
<modelName>Genos</modelName>
<voiceName>AlohaGuitar</voiceName>
<voiceMsb>0</voiceMsb>
<voiceLsb>118</voiceLsb>
<voicePcNum>26</voicePcNum>
<icon>T329</icon>
<originalFormat>Genos:000:118:026</originalFormat>
</information>
</uvf:voiceData>