Genos (12 Boards) > Genos Voices & Revo Drums

Experimenters: Java code to display UVF voice info

<< < (2/3) > >>

valimaties:

--- Quote from: pjd on March 18, 2018, 03:33:38 AM ---Hello experimenters --

Attached is the first draft of a "dictionary" for UVF format. I'm sure there are some errors and omissions, but it's a start.

I recommend reading about the Yamaha AWM2 voice architecture before starting with UVF. One resource is the chapter of the Montage, Motif XF and MOX reference manuals concerning voice architecture and synthesis blocks. Another resource is the Yamaha Synthesizer Parameter Manual, which is published for the Montage and Motif keyboard range. UVF has similar parameters, perhaps with different names.  ::) This background reading will help you see "the Yamaha way."

Once you grok all that, please browse through one or two UVF voice files. Hopefully, the dictionary will make more sense after background reading and browsing.

Good luck!

-- pj

--- End quote ---

Hi pj.
Very good job. 
Thanks ;)

Regards,
Vali

valimaties:
This dictionary is only for preset voices, as for custom voices are additional elements and modified ones.

Voice Information Element is inserted after VoiceCommon element.
Voice Information Element is changed as:

--- Quote ---<information>
  <modelName>Tyros 4*</modelName>
  <voiceID>0</voiceID>
  <voiceName>Nai*</voiceName>
  <voiceMsb>63*</voiceMsb>
  <voiceLsb>2*</voiceLsb>
  <voicePcNum>16*</voicePcNum>
  <status></status>
  <midiFormat></midiFormat>
  <voiceCategory></voiceCategory>
  <creator></creator>
  <createdDate></createdDate>
  <lastEditor></lastEditor>
  <lastEditedDate></lastEditedDate>
  <voiceInformationText>
   <en></en>
   <fr></fr>
   <es></es>
   <it></it>
   <de></de>
   <jp></jp>
  </voiceInformationText>
  <icon>S252*</icon>
  <voiceDemo>**</voiceDemo>
  <voicePrefixID>0</voicePrefixID>
  <displayOrder>0</displayOrder>
  <createdOnYt>ON</createdOnYt>
  <originalFormat></originalFormat>
 </information>

--- End quote ---

* These are examples for one of a custom voice
** Here is the coded name of the demo midi file

Additionally, it will appear The Elements from YEM (1-8) (Oscillators).



--- Quote --- <waveform number="13*">
  <name></name>
  <maxSampleCount>2</maxSampleCount>
  <useStereoCh>ON</useStereoCh>
  <keybank number="0"></keybank>
  <keybank number="1">
    .
    .
    .
  <keybank number="x">
  </waveform>
 <waveform number="14*">
  <name></name>
  <maxSampleCount>2</maxSampleCount>
  <useStereoCh>ON</useStereoCh>
  <keybank number="0"></keybank>
  <keybank number="1">
    .
    .
    .
  <keybank number="x">
  </waveform>
--- End quote ---

Each "waveform" element tag is bond by "voiceElement" element tag from "voiceCommon" element. 
"<voiceElement number="0" "and "<voiceElement number="2" " will tell YEM that we will have Element 1 and Element 3 (the oscillators) occupied by the waveforms.
Inside "voiceElement number 0" we will find <blockComposition> element tag which will have the "<oscillatorBlock" element inside, with <waveformNum>13</waveformNum> inside. (This is an example from my voice, which have these 2 oscillators, element 1 and element 3 from YEM occupied)

This is a beauty xml file :) and I love decode it :D
I will start making the screen, showing all these parameters.... :D

Regards,
Vali

pjd:
Thanks, Vali! It shows that there is still a lot to discover, learn and document.

I'd like to take a look at your UVF file, if you're willing to attach it here. (PM, otherwise.) I'm rapidly closing in on a key deadline and might not to be able to make much progress for a week or two.

Thanks, I appreciate your sharing and coding -- pj

valimaties:

--- Quote from: pjd on March 19, 2018, 03:59:41 AM ---Thanks, Vali! It shows that there is still a lot to discover, learn and document.

I'd like to take a look at your UVF file, if you're willing to attach it here. (PM, otherwise.) I'm rapidly closing in on a key deadline and might not to be able to make much progress for a week or two.

Thanks, I appreciate your sharing and coding -- pj

--- End quote ---

Hi pj.

I have sent you a PM with 2 files, a voice and a drumkit, both custom.
You can also test YEM's creation procedure, by creating a custom voice and a custom drumkit, and after that check the parameters for custom elements in uvf files created. :)

Regards,
Vali

valimaties:
Hmmm ...
A great thing that I have discovered on Universal Type voices :D :


--- Quote ---<uvf:voiceData xmlns:uvf="http://www.yamaha.com/uvf" version="1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <voiceType>UNIVERSAL</voiceType>
 <voiceCommon xsi:type="uvf:VOICE_COMMON_UNIVERSAL">
  <volume>0.000000</volume>
  <velocityConvertTable number="0">
   <name></name>
   <presetTable>-1</presetTable>
   <idNumber>0</idNumber>
  </velocityConvertTable>
  <chipCompatibility>NO_RESTRICTION</chipCompatibility>
  <voiceElement number="0" xsi:type="uvf:VOICE_ELEMENT_UNIVERSAL">
   <noteShift>0</noteShift>
   <noteLimitHi>G8</noteLimitHi>
   <noteLimitLo>C-2</noteLimitLo>
   <velocityLimitHi>127</velocityLimitHi>
   <velocityLimitLo>1</velocityLimitLo>
   <blockComposition>
    <oscillatorBlock xsi:type="uvf:OSCILLATOR_BLOCK_UNIVERSAL">
     <waveformFile></waveformFile>
     <waveformNum>0</waveformNum>
     <releaseOnlyAEG>ON</releaseOnlyAEG>
    </oscillatorBlock>
    <triggerBlock xsi:type="uvf:TRIGGER_BLOCK_UNIVERSAL">
     <keyOnDelayTime>0</keyOnDelayTime>
     <keyOffSound>OFF</keyOffSound>
     <legato>OFF</legato>
     <waveCycle>OFF</waveCycle>
     <waveRandom>OFF</waveRandom>
     <controller1On>OFF</controller1On>
     <controller2On>OFF</controller2On>
    </triggerBlock>

--- End quote ---

What do you say about these two, pj :D ?!

PS:
On DrumKit voices, the <voiceElement> tag will store each waveform, so it is not a tag for oscillators. (Definitely a negligence in coding, in my opinion). It will appear for each key assigned.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version