Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentation:file_formats [2015/03/26 20:11] – [Drumkit xml format] devadocumentation:file_formats [2019/03/17 17:27] (current) deva
Line 2: Line 2:
 This page describes the file formats used by the DrumGizmo engine. For ease of use we have implemented everything using xml. The main files are the drum kit files, the instrument files and the midi map files. These are described in detail below. This page describes the file formats used by the DrumGizmo engine. For ease of use we have implemented everything using xml. The main files are the drum kit files, the instrument files and the midi map files. These are described in detail below.
  
-=====0.9.and later (currently unreleased)=====+=====New file format (version 0.9.17 and up)=====
 ====Drumkit xml format==== ====Drumkit xml format====
 <code xml> <code xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
-<drumkit version="2.1.0">+<drumkit samplerate="48000" version="2.1.0">
   <metadata>   <metadata>
 +    <version>1.2.3</version>
     <title>Test Kit</title>     <title>Test Kit</title>
 +    <logo src="LogoFile.png"/>
     <description>This is the description of the drumkit</description>     <description>This is the description of the drumkit</description>
 +    <license>Creative Commons</license>
     <notes>These are general notes concerning anything of relevance for this particular version of the drumkit</notes>     <notes>These are general notes concerning anything of relevance for this particular version of the drumkit</notes>
     <author>Author of the drumkit</author>     <author>Author of the drumkit</author>
     <email>author@email.org</email>     <email>author@email.org</email>
     <website>http://www.drumgizmo.org</website>     <website>http://www.drumgizmo.org</website>
-    <image filename="DrumkitImage.png"/>+    <image src="DrumkitImage.png" map="DrumkitImageClickMap.png"> 
 +      <clickmap colour="ff08a2" instrument="China"/> 
 +      <clickmap colour="a218d7" instrument="HihatClosed"/> 
 +    </image>
   </metadata>   </metadata>
-  <defaults> 
-    <humanizer enabled="true" attack="1.0" release="1000"/> 
-    <bleed enabled="true" volume="1.0"/> 
-  </defaults> 
   <channels>   <channels>
    <channel name="AmbL">    <channel name="AmbL">
      <title>Ambience left</title>      <title>Ambience left</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="AmbR">    <channel name="AmbR">
      <title>Ambience right</title>      <title>Ambience right</title>
-     <microphone>T-bone rb500</microphone> 
-   </channel> 
-   <channel name="Hihat"> 
-     <title>Hihat</title> 
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
 +   <channel name="Hihat"/>
    <channel name="KdrumL">    <channel name="KdrumL">
      <title>KickDrum left</title>      <title>KickDrum left</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="KdrumR">    <channel name="KdrumR">
      <title>KickDrum right</title>      <title>KickDrum right</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="OHL">    <channel name="OHL">
      <title>Overhead left</title>      <title>Overhead left</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="OHR">    <channel name="OHR">
      <title>Overhead right</title>      <title>Overhead right</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="RideL">    <channel name="RideL">
      <title>Ride left</title>      <title>Ride left</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="RideR">    <channel name="RideR">
      <title>Ride right</title>      <title>Ride right</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="Snare_bottom">    <channel name="Snare_bottom">
      <title>Snare bottom</title>      <title>Snare bottom</title>
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
    <channel name="Snare_top">    <channel name="Snare_top">
      <title>Snare top</title>      <title>Snare top</title>
-     <microphone>T-bone rb500</microphone> 
-   </channel> 
-   <channel name="Tom1"> 
-     <title>Rack tom 1</title> 
-     <microphone>T-bone rb500</microphone> 
-   </channel> 
-   <channel name="Tom2"> 
-     <title>Rack tom 2</title> 
-     <microphone>T-bone rb500</microphone> 
-   </channel> 
-   <channel name="Tom3"> 
-     <title>Rack tom 3</title> 
-     <microphone>T-bone rb500</microphone> 
    </channel>    </channel>
 +   <channel name="Tom1"/>
 +   <channel name="Tom2"/>
 +   <channel name="Tom3"/>
    <channel name="Tom4">    <channel name="Tom4">
-     <title>Floor tom 1</title+     <title>Floor tom</title>
-     <microphone>T-bone rb500</microphone>+
    </channel>    </channel>
    <channel name="Trigger">    <channel name="Trigger">
      <title>Kickdrum trigger</title>      <title>Kickdrum trigger</title>
-     <microphone>DDrum kickdrum trigger</microphone> 
    </channel>    </channel>
   </channels>   </channels>
   <instruments>   <instruments>
     <instrument name="China" file="China/China.xml">     <instrument name="China" file="China/China.xml">
-      <channelmap in="AmbL" out="AmbL" bleed="1.0" main="true"/> +      <channelmap in="AmbL" out="AmbL" main="true"/> 
-      <channelmap in="AmbR" out="AmbR" bleed="1.0" main="true"/> +      <channelmap in="AmbR" out="AmbR" main="true"/> 
-      <channelmap in="Hihat" out="Hihat" bleed="1.0"/> +      <channelmap in="Hihat" out="Hihat"/> 
-      <channelmap in="KdrumL" out="KdrumL" bleed="1.0"/> +      <channelmap in="KdrumL" out="KdrumL"/> 
-      <channelmap in="KdrumR" out="KdrumR" bleed="1.0"/> +      <channelmap in="KdrumR" out="KdrumR"/> 
-      <channelmap in="OHL" out="OHL" bleed="1.0" main="true"/> +      <channelmap in="OHL" out="OHL" main="true"/> 
-      <channelmap in="OHR" out="OHR" bleed="1.0" main="true"/> +      <channelmap in="OHR" out="OHR" main="true"/> 
-      <channelmap in="RideL" out="RideL" bleed="1.0"/> +      <channelmap in="RideL" out="RideL"/> 
-      <channelmap in="RideR" out="RideR" bleed="1.0"/> +      <channelmap in="RideR" out="RideR"/> 
-      <channelmap in="Snare_bottom" out="Snare_bottom" bleed="1.0"/> +      <channelmap in="Snare_bottom" out="Snare_bottom"/> 
-      <channelmap in="Snare_top" out="Snare_top" bleed="1.0"/> +      <channelmap in="Snare_top" out="Snare_top"/> 
-      <channelmap in="Tom1" out="Tom1" bleed="1.0"/> +      <channelmap in="Tom1" out="Tom1"/> 
-      <channelmap in="Tom2" out="Tom2" bleed="1.0"/> +      <channelmap in="Tom2" out="Tom2"/> 
-      <channelmap in="Tom3" out="Tom3" bleed="1.0"/> +      <channelmap in="Tom3" out="Tom3"/> 
-      <channelmap in="Tom4" out="Tom4" bleed="1.0"/> +      <channelmap in="Tom4" out="Tom4"/> 
-      <channelmap in="Trigger" out="Trigger" bleed="1.0"/>+      <channelmap in="Trigger" out="Trigger"/>
     </instrument>     </instrument>
     <instrument name="HihatClosed" group="hihat" file="HihatClosed/HihatClosed.xml">     <instrument name="HihatClosed" group="hihat" file="HihatClosed/HihatClosed.xml">
-      <channelmap in="AmbL" out="AmbL" bleed="1.0" main="true"/> +      <chokes> 
-      <channelmap in="AmbR" out="AmbR" bleed="1.0" main="true"/> +        <choke instrument="HihatFullyOpen" choketime="100"/> 
-      <channelmap in="Hihat" out="Hihat" bleed="1.0" main="true"/> +        <choke instrument="HihatHalfOpen"/> 
-      <channelmap in="KdrumL" out="KdrumL" bleed="1.0"/> +      </chokes> 
-      <channelmap in="KdrumR" out="KdrumR" bleed="1.0"/> +      <channelmap in="AmbL" out="AmbL" main="true"/> 
-      <channelmap in="OHL" out="OHL" bleed="1.0" main="true"/> +      <channelmap in="AmbR" out="AmbR" main="true"/> 
-      <channelmap in="OHR" out="OHR" bleed="1.0" main="true"/> +      <channelmap in="Hihat" out="Hihat" main="true"/> 
-      <channelmap in="RideL" out="RideL" bleed="1.0"/> +      <channelmap in="KdrumL" out="KdrumL"/> 
-      <channelmap in="RideR" out="RideR" bleed="1.0"/> +      <channelmap in="KdrumR" out="KdrumR"/> 
-      <channelmap in="Snare_bottom" out="Snare_bottom" bleed="1.0"/> +      <channelmap in="OHL" out="OHL" main="true"/> 
-      <channelmap in="Snare_top" out="Snare_top" bleed="1.0"/> +      <channelmap in="OHR" out="OHR" main="true"/> 
-      <channelmap in="Tom1" out="Tom1" bleed="1.0"/> +      <channelmap in="RideL" out="RideL"/> 
-      <channelmap in="Tom2" out="Tom2" bleed="1.0"/> +      <channelmap in="RideR" out="RideR"/> 
-      <channelmap in="Tom3" out="Tom3" bleed="1.0"/> +      <channelmap in="Snare_bottom" out="Snare_bottom"/> 
-      <channelmap in="Tom4" out="Tom4" bleed="1.0"/> +      <channelmap in="Snare_top" out="Snare_top"/> 
-      <channelmap in="Trigger" out="Trigger" bleed="1.0"/>+      <channelmap in="Tom1" out="Tom1"/> 
 +      <channelmap in="Tom2" out="Tom2"/> 
 +      <channelmap in="Tom3" out="Tom3"/> 
 +      <channelmap in="Tom4" out="Tom4"/> 
 +      <channelmap in="Trigger" out="Trigger"/>
     </instrument>     </instrument>
   </instruments>   </instruments>
Line 136: Line 118:
 ===metadata node=== ===metadata node===
 Explained in the code above. It's self-explanatory. Explained in the code above. It's self-explanatory.
- 
-//Bent: Metadata section is missing a license tag.// 
  
 ===defaults node=== ===defaults node===
 Tells DG what the default settings of the DG knobs are. In future releases there will be "reset to default" buttons in the gui which will use these default values. This node is currently not finalized and can be ignored until it's implemented. Tells DG what the default settings of the DG knobs are. In future releases there will be "reset to default" buttons in the gui which will use these default values. This node is currently not finalized and can be ignored until it's implemented.
 +
 +//Muldjord: I'm not sure this makes sense. Knobs will change over time, which will quickly outdate the format. We should probably deal with this using presets inside the gui instead.//
  
 ===channels node=== ===channels node===
Line 146: Line 128:
  
 //Bent: We should think of a better name for the 'microphone' tag since not all audio sources are microphones (eg. trigger or other line signals). But maybe this information doesn't even make sense to store in the drumkit, if for example a cowbell recording is used from another recording setup, but mixed into the OH channels...// //Bent: We should think of a better name for the 'microphone' tag since not all audio sources are microphones (eg. trigger or other line signals). But maybe this information doesn't even make sense to store in the drumkit, if for example a cowbell recording is used from another recording setup, but mixed into the OH channels...//
 +
 +//Muldjord: We'll change this to "source"//
  
 ===instruments node=== ===instruments node===
 This node defines what instruments are used by the drumkit. "name" is a semantic name used by the midimap xml file. "file" defines what xml file to load for this particular instrument. "group" tells DG that this instrument is part of a group of instruments, for instance "hihat". Whenever a hit is detected on other instrument with a similar group name, DG will fade the other hit and begin playing the new one. This is very useful for close, open and pedal hihat hits. This node defines what instruments are used by the drumkit. "name" is a semantic name used by the midimap xml file. "file" defines what xml file to load for this particular instrument. "group" tells DG that this instrument is part of a group of instruments, for instance "hihat". Whenever a hit is detected on other instrument with a similar group name, DG will fade the other hit and begin playing the new one. This is very useful for close, open and pedal hihat hits.
  
-The channelmap node connects the instrument channels to the DAW output channels. The "in" and "out" names DOES NOT have to be the same. The "in" channel is defined withing the instrument.xml file itself. "bleed" tells what the default bleed for this instrument on this particular channel is supposed to be as default. A "reset to default" button in the DG ui will be introduced at some point, that resets all bleed to use these values". The "main" attribute tells DG that his channel is a main channel for this particular instrument. This is connected to the main bleed fader in DG which then can be set to never influence channels marked as main.+The channelmap node connects the instrument channels to the DAW output channels. The "in" and "out" names DO NOT have to be the same. The "in" channel is defined withing the instrument.xml file itself. "bleed" tells what the default bleed for this instrument on this particular channel is supposed to be as default. A "reset to default" button in the DG ui will be introduced at some point, that resets all bleed to use these values". The "main" attribute tells DG that his channel is a main channel for this particular instrument. This is connected to the main bleed fader in DG which then can be set to never influence channels marked as main.
  
 ====Midimap xml format==== ====Midimap xml format====
Line 186: Line 170:
     <title>The instrument title</title>     <title>The instrument title</title>
     <description>The instrument brand and further description</description>     <description>The instrument brand and further description</description>
 +    <license>GPL</license>
 +    <notes>These are general notes concerning anything of relevance for this particular version of the instrument</notes>
 +    <author>Author of the instrument</author>
 +    <email>author@email.org</email>
 +    <website>http://www.drumgizmo.org</website>
 +    <image filename="InstrumentImage.png"/>
   </metadata>   </metadata>
   <samples>   <samples>
Line 223: Line 213:
 ===audiofile node=== ===audiofile node===
 "channel" is the name used in the drumkit xml file to connect the instrument channel to the DG output channel. "file" tells what wav file to use. "filechannel" tells what channel inside that wav to use. "channel" is the name used in the drumkit xml file to connect the instrument channel to the DG output channel. "file" tells what wav file to use. "filechannel" tells what channel inside that wav to use.
-=====0.9.8 and older===== + 
-====Drumkit xml format====+=====Drumkit xml format (versions before 0.9.17)=====
 <code xml> <code xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Line 248: Line 238:
   <instruments>   <instruments>
     <instrument name="Hihat" group="hihat" file="Hihat/Hihat.xml">     <instrument name="Hihat" group="hihat" file="Hihat/Hihat.xml">
-      <channelmap in="AmbL" out="AmbL"/> +      <channelmap in="AmbL-hihat" out="AmbL"/> 
-      <channelmap in="AmbR" out="AmbR"/>+      <channelmap in="AmbR-hihat" out="AmbR"/>
       <channelmap in="Hihat" out="Hihat"/>       <channelmap in="Hihat" out="Hihat"/>
       <channelmap in="KdrumL" out="KdrumL"/>       <channelmap in="KdrumL" out="KdrumL"/>
Line 271: Line 261:
 The name and description attributes are not currently in use, but are useful for people editing the files. The name and description attributes are not currently in use, but are useful for people editing the files.
 The "group" attribute in the instrument node is used to bind several instruments into a group. For instance you can have "open hihat" and "closed hihat" being part of the group "hihat". The only effect this has is that whenever a closed hihat hit is played just after an open hihat hit, it will quickly fade the open hihat hit while play the closed hihat hit. The "group" attribute in the instrument node is used to bind several instruments into a group. For instance you can have "open hihat" and "closed hihat" being part of the group "hihat". The only effect this has is that whenever a closed hihat hit is played just after an open hihat hit, it will quickly fade the open hihat hit while play the closed hihat hit.
 +
 ====Instrument xml format==== ====Instrument xml format====
 <code xml> <code xml>
Line 277: Line 268:
   <samples>   <samples>
     <sample name="HihatClosed-1" power="0.0150941">     <sample name="HihatClosed-1" power="0.0150941">
-      <audiofile channel="AmbL" file="samples/1-HihatClosed.wav" filechannel="1"/> +      <audiofile channel="AmbL-hihat" file="samples/1-HihatClosed.wav" filechannel="1"/> 
-      <audiofile channel="AmbR" file="samples/1-HihatClosed.wav" filechannel="2"/>+      <audiofile channel="AmbR-hihat" file="samples/1-HihatClosed.wav" filechannel="2"/>
       <audiofile channel="Hihat" file="samples/1-HihatClosed.wav" filechannel="3"/>       <audiofile channel="Hihat" file="samples/1-HihatClosed.wav" filechannel="3"/>
       <audiofile channel="KdrumL" file="samples/1-HihatClosed.wav" filechannel="4"/>       <audiofile channel="KdrumL" file="samples/1-HihatClosed.wav" filechannel="4"/>
documentation/file_formats.1427397071.txt.gz · Last modified: 2015/03/26 20:11 by deva
Trace:
GNU Free Documentation License 1.3
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0