SoundHelix-Guitar.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?xml version="1.0"?>
  2. <!-- Example XML file for SoundHelix. Author: Thomas Schuerger. -->
  3. <SoundHelix version="0.5+" xmlns:xi="http://www.w3.org/2001/XInclude">
  4. <xi:include href="../includes/Standard-SongNameEngine.xml" />
  5. <structure>
  6. <bars>
  7. <random min="96" max="160" step="16" />
  8. </bars>
  9. <beatsPerBar>4</beatsPerBar>
  10. <ticksPerBeat>4</ticksPerBeat>
  11. <maxVelocity>127</maxVelocity>
  12. </structure>
  13. <xi:include href="../includes/Standard-HarmonyEngine.xml" />
  14. <harmonyEngine class="PatternHarmonyEngine">
  15. <crossoverPitch>1</crossoverPitch>
  16. <!-- direct chords -->
  17. <chordPattern minimizeChordDistance="false">Am/8,F/8,Dm/8,Em/8,Am/8,F/8,G/8,Dm/4,F/4</chordPattern>
  18. <chordPattern minimizeChordDistance="false">Am/4,F/4,G/4,Em/4,F/4,Dm/4,E/8</chordPattern>
  19. </harmonyEngine>
  20. <arrangementEngine class="SimpleArrangementEngine">
  21. <maxIterations>5000000</maxIterations>
  22. <minActivityCount>3</minActivityCount>
  23. <maxActivityCount>3</maxActivityCount>
  24. <maxActivityChangeCount>2</maxActivityChangeCount>
  25. <startActivityCounts>
  26. <random list="3" />
  27. </startActivityCounts>
  28. <stopActivityCounts>
  29. <random list="3" />
  30. </stopActivityCounts>
  31. <activityVector name="accomp">
  32. </activityVector>
  33. <activityVector name="melody">
  34. </activityVector>
  35. <activityVector name="bass">
  36. </activityVector>
  37. <track>
  38. <instrument>accomp</instrument>
  39. <transposition>-12</transposition>
  40. <velocity>100</velocity>
  41. <sequenceEngine class="MultiPatternSequenceEngine">
  42. <patternEngines>
  43. <patternEngine class="StringPatternEngine">
  44. <string>0/3,-/5</string>
  45. </patternEngine>
  46. <patternEngine class="StringPatternEngine">
  47. <string>-/2,2/3,-/3</string>
  48. </patternEngine>
  49. <patternEngine class="StringPatternEngine">
  50. <string>-/4,3/3,-/1</string>
  51. </patternEngine>
  52. </patternEngines>
  53. </sequenceEngine>
  54. <activityVector>accomp</activityVector>
  55. </track>
  56. <track>
  57. <instrument>melody</instrument>
  58. <transposition>0</transposition>
  59. <velocity>100</velocity>
  60. <sequenceEngine class="MelodySequenceEngine">
  61. <melodies>2,3,2</melodies>
  62. <minPitch>0</minPitch>
  63. <maxPitch>9</maxPitch>
  64. <pitchDistances>-2,-2,-1,-1,-1,-1,1,1,1,1,2,2</pitchDistances>
  65. <patternEngine class="RandomFragmentPatternEngine">
  66. <patternTicks>8</patternTicks>
  67. <patternString>A1,B1,A1,C1,A1,B1,A1,D2</patternString>
  68. <pattern group="A">-/6,#/2</pattern>
  69. <pattern group="B">-/6,+/2</pattern>
  70. <pattern group="C">-/4,+/2,+/2|-/6,+/2</pattern>
  71. <pattern group="D">#/2,+/2,+/2,-/2|-/2,+/2,+/2,+/2</pattern>
  72. </patternEngine>
  73. </sequenceEngine>
  74. <activityVector>melody</activityVector>
  75. </track>
  76. <track>
  77. <instrument>bass</instrument>
  78. <transposition>-24</transposition>
  79. <velocity>100</velocity>
  80. <sequenceEngine class="PatternSequenceEngine">
  81. <patternEngine class="RandomFragmentPatternEngine">
  82. <patternTicks>8</patternTicks>
  83. <patternString>A1,A1,A1,B1,A1,A1,A1,B2</patternString>
  84. <pattern group="A">0,-,-,-,-,-,-,-</pattern>
  85. <pattern group="B">0,-,-,-,-,-,2,-|0,-,-,-,-,-,3,-|0,-,-,-,-,-,-1,-</pattern>
  86. </patternEngine>
  87. </sequenceEngine>
  88. <activityVector>bass</activityVector>
  89. </track>
  90. </arrangementEngine>
  91. <player class="MidiPlayer">
  92. <bpm>
  93. <random min="120" max="134" type="normal" variance="7" />
  94. </bpm>
  95. <transposition>
  96. <random min="65" max="69" />
  97. </transposition>
  98. <beforePlayWaitTicks>16</beforePlayWaitTicks>
  99. <afterPlayWaitTicks>16</afterPlayWaitTicks>
  100. <groove>
  101. <random list="100|110,90|120,80|115,85" />
  102. </groove>
  103. <!-- uncomment the following line if you want to write all generated songs as MIDI files -->
  104. <!-- <midiFilename>midifiles/${safeSongName}-${safeDeviceName}.mid</midiFilename> -->
  105. <device name="device1" clockSynchronization="true">Gervill,Microsoft GS Wavetable Synth,Microsoft GS Wavetable SW Synth,Java Sound Synthesizer</device>
  106. <map instrument="accomp" device="device1" channel="2" program="25" />
  107. <map instrument="melody" device="device1" channel="3" program="25" />
  108. <map instrument="bass" device="device1" channel="4" program="33" />
  109. <controllerValue device="device1" channel="2" controller="72">80</controllerValue>
  110. <controllerValue device="device1" channel="3" controller="72">80</controllerValue>
  111. <controllerValue device="device1" channel="4" controller="72">80</controllerValue>
  112. <!-- <controllerValue device="device1" channel="3" controller="76">50</controllerValue>
  113. <controllerValue device="device1" channel="3" controller="77">66</controllerValue>
  114. <controllerValue device="device1" channel="3" controller="78">0</controllerValue> -->
  115. </player>
  116. </SoundHelix>