home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / mpu_feb_to_nov_2002.exe / Tools / Buzzync / BUZZync.txt < prev   
Encoding:
Text File  |  2001-09-19  |  10.2 KB  |  200 lines

  1. P. DooM's BUZZync 1.0 beta
  2.  
  3. a present for the BUZZ community. Also available as a commercial product :)
  4.  
  5. 2001 by Peter "P. DooM" Kaufmann
  6. kaufmann@pop.agri.ch
  7. http://combi.agri.ch/kaufmann/
  8.  
  9.  
  10. What the hell is BUZZync?
  11.  
  12. BUZZync is a MIDI program that synchronizes two instances of the windows tracker BUZZ by Oskari 
  13. Tammelin. It might be useful for people who want to use two BUZZes at the same time (for whatever  
  14. reason) or for live performances
  15.  
  16.  
  17. In a few words, how does BUZZync work?
  18.  
  19. BUZZync uses the MIDI capabilities of BUZZ. One BUZZ instance plays the role of the master. It 
  20. sends a MIDI controller-value to BUZZync every beat. The slave-instance of BUZZ also sends a MIDI-
  21. controller value to BUZZync in the same interval, but it also receives a MIDI-controller value from 
  22. BUZZync. With this controller, BUZZync changes the tempo of the slave BUZZ to get in sync with the 
  23. master, to achieve a 'match', as I call it here.
  24.  
  25.  
  26. So... how do I set up BUZZ to use BUZZync?
  27.  
  28. You must be able to make a physical (or logical) MIDI connection between BUZZync and the two 
  29. BUZZes. The master BUZZ instance must be able to send MIDI data to BUZZync, the slave needs a 
  30. two-way connection (send and receive). The set-up of the MIDI connections is not discussed here.
  31.  
  32. Master-BUZZ:
  33.  
  34. In the Master-BUZZ (the instance of BUZZ that runs on its own tempo), do the following:
  35. ?    Insert a MIDI-out machine (e.g. vMidiOut)
  36. ?    Set the appropriate MIDI-out port in vMidiOut (options). Also make sure that the same port 
  37. is enabled in the BUZZ preferences under 'Midi Output'. This port will then connect to 
  38. 'Master in' in BUZZync.
  39. ?    Create a new pattern that sends a value greater than 64 to controller number 1 every beat. In 
  40. vMidiOut, this should look something like this:
  41.  
  42.  
  43.  
  44. ?    this pattern must be played during the whole song. So just insert it in every row in the 
  45. sequence editor.
  46.  
  47.  
  48. Slave-BUZZ:
  49.  
  50. IN the Slave-BUZZ (the instance of BUZZ that gets synced to the Master-BUZZ), do the following:
  51. ?    Insert a MIDI-out machine (vMidiOut) and do exactly the same as for the Master-BUZZ (see 
  52. above), with a different MIDI-port. This port will connect to 'Slave in' in BUZZync.
  53. ?    If you haven't set up the MIDI-in port of BUZZ before: Go to preferences û 'Midi Input', select 
  54. the MIDI input device which comes from BUZZync (called 'Slave out' in BUZZync) and create 
  55. a new controller: 1.
  56. ?    Open the Master-machine and bind controller 1 to BPM (right-click on BPM, 'Bind to Midi 
  57. Controller')
  58.  
  59.  
  60. And what do I set up in BUZZync??
  61.  
  62. The easier part. Just two things to do:
  63.  
  64. First, select all 3 MIDI-ports:
  65. ?    Master in: corresponds to output from the MIDI-out machine of Master-BUZZ.
  66. ?    Slave out: corresponds to Slave-BUZZ MIID input.
  67. ?    Slave in: corresponds to output from MIDI-out machine of Slave-BUZZ
  68.  
  69. If all MIDI-ports are at a reasonable setting, 'Overall MIDI-status' should say 'OK' (in BUZZync, this is).
  70.  
  71. Second, set the song tempo. This must be the same as the tempo (BPM) of master-BUZZ. Perhaps 
  72. you wonder why you have to set the tempo manually. The reason is: MIDI is not accurate enough to 
  73. keep the tempo perfectly, so it helps BUZZync a lot if it knows what the tempo of the song should be!
  74.  
  75.  
  76. Everything set up. How to start jamming?
  77.  
  78. The best way to start a synced play is to follow these steps, in that exact order:
  79.  
  80. ?    Set both BUZZes to the same BPM (tempo). 
  81. ?    Make sure everything is set up (MIDI machines, MIDI ports, MIDI ports in BUZZync, tempo in 
  82. BUZZync).
  83. ?    Start one BUZZ, then start the other one and try to get them synced by ear! For example 
  84. you start Master-BUZZ first, then go to Slave-BUZZ, set the cursor to tick 64 and start playing 
  85. when Master-BUZZ arrives at tick 64. (You can also do this just by looking at the moving 
  86. cursor of Master-BUZZ). Note: this doesn't have to be perfect! It's just a help for BUZZync, so 
  87. it knows which beats should go together.
  88. ?    If everything went ok so far, the Master in and the Slave in û LED should be lit!
  89. ?    Press the Start-button in BUZZync. 
  90.  
  91.  
  92. All controls of BUZZync
  93.  
  94. MIDI engine:
  95. ?    Master in, Slave out, Slave in: the MIDI ports. See above.
  96. ?    Overall MIDI-status: If all MIDI ports are opened successfully, this should say 'OK'
  97. ?    Start/Stop: start and stop syncing. 
  98. ?    Master in-LED: indicates an incoming sync controller (1) from Master-BUZZ
  99. ?    Slave out-LED: a tempo change is sent to Slave-BUZZ. This LED doesn't have to be lit all the 
  100. time, only when tempo changes are necessary.
  101. ?    Slave in-LED: indicates an incoming sync controller (1) from Slave-BUZZ
  102.  
  103.  
  104. match indicator:
  105. Shows how good the two beats are synced. In the middle position (0 ms) sync is perfect, if the slider 
  106. moves to the right, Slave-BUZZ is ahead of Master-BUZZ and the tempo will be changed accordingly
  107.  
  108. tempo:
  109. ?    Song tempo: Enter the song tempo (BPM) here. This is an important setting! If this doesn't 
  110. match the BPM of the Master-BUZZ, BUZZync will have a very hard job! Note: Actually, this 
  111. doesn't have to match the BPM of Master-BUZZ. It is the tempo of the incoming sync-
  112. controllers (e.g. created with vMidiOut). And this also depends on the TPB setting in BUZZ. 
  113. Example: if you set BPM to 140 and TPB to 4 and made the same pattern for vMidiOut as 
  114. shown above, you can set the song tempo to 140, too. See below for more information about 
  115. special tempo settings.
  116. ?    Playing at: the tempo currently sent to Slave-BUZZ. Fractional tempos will be translated to 
  117. short, jerkish tempo changes, according to some math formula.
  118.  
  119. match parameters:
  120. Here you can change the behavior of the synchronization. 
  121. ?    React on mismatch: When Slave-BUZZ is ahead of Master-BUZZ (too early), the tempo must 
  122. be set to a lower value. This slider sets the amount of changes made to the tempo if there is 
  123. no match. If the slider is set to 'lazy', it will only change the song tempo little, so it may take 
  124. some time until the sync is re-established. If it is set to 'overreact', much bigger adjustments 
  125. will be made to the tempo. This may cause an overreaction: The tempo is changed so much 
  126. that it overshoots the perfect match. (e.g. Slave was too early before, it gets much too late 
  127. after the automatic adjustment).
  128. ?    Force to song tempo: To prevent that overshooting mentioned above, this setting will gradually 
  129. 'suck' the tempo to the desired song tempo (see 'tempo' above). Like a magnet. 
  130. ?    Default: Set 'react on mismatch' and 'force to song tempo' to default values.
  131. ?    HELP!!: show this documentation
  132.  
  133. Note: the effects of these two settings depend on each other! If 'react on mismatch' is set to a high 
  134. value, you may get good results with a high 'force to tempo'-setting, but a low 'react on mismatch' 
  135. setting and a high 'force to tempo' setting will make the tempo almost bound to the song tempo.
  136. You will have to play around with these settings a bit to achieve the best results. Some general hints:
  137. ?    A low 'react on mismatch' setting works good if you know that the two BUZZes work stable, 
  138. without dropouts. They might, however, drift a little after a certain time without the use of 
  139. BUZZync. Such slow, non-jerky sync problems can be best controlled with a low 'react on 
  140. mismatch' setting, and some 'force to song tempo'. Don't set 'force to song tempo' too high in 
  141. this case, because this will make it hard for the matcher to get away from the song tempo and 
  142. make the necessary adjustments.
  143. ?    A high 'react on mismatch' and a high 'force to song tempo' setting are good if you know that 
  144. one (or both) of the BUZZes will make glitches, dropouts, clicks/pops etc.. from time to time, 
  145. which would destroy the sync totally without BUZZync. The high 'react on mismatch' setting 
  146. will assure that the mismatch gets fixed as quick as possible (it will, however, take some 
  147. seconds to get in sync again if it was a big dropout). The high 'force to song tempo' setting will 
  148. re-establish the song tempo as soon as possible.
  149.  
  150.  
  151. Special tempos / TPB other than 4
  152.  
  153. Everything described above was meant for a TPB setting of 4 (in BUZZ). If you want to use other TPB 
  154. settings, you'll have to change the vMidiOut-pattern (see pic above) a bit. E.g. for TPB=8, you must 
  155. send the controller every 8 ticks only. The song tempo in BUZZync will be the same as TPB in BUZZ. 
  156. You can also sync one BUZZ with TPB=4 to another with TPB=8, of course. Just make the appropriate 
  157. vMidiOut-patterns.
  158. If you use this program, you should be smart enough and know BUZZ by heart anyway, so you should 
  159. be able to figure out how to set the song tempo in BUZZync and how to make the vMidiOut pattern 
  160. yourself :). 
  161.  
  162.  
  163.  
  164. Hint
  165.  
  166. If you've read this manual attentively so far, you'll perhaps have noticed that BUZZync doesn't work 
  167. with some kind of 'song position' mechanism. This has some important pros and cons:
  168. ?    Con: If a big dropout happens, or a MIDI transmission error or something, which kicks the 
  169. Slave-BUZZ completely out of sync, it WILL get back in sync again. But perhaps it won't sync 
  170. to the same beat again. So it might be, that after a really bad dropout, it is always exactly one 
  171. note behind (or ahead) of the Master-BUZZ. 
  172. ?    Pro: You can DJ around with BUZZ. Take this scenario: You got two BUZZes playing in sync 
  173. with BUZZync. Now you can just set the song position pointer (in Slave or Master) to a new 
  174. tick. You count, à2-3-4-1-2-3-4, and on the next 1 you set the song position. So Slave-BUZZ 
  175. will now play a totally different part. Now the benefit of BUZZync drops in: If you didn't catch 
  176. the beat exactly on 1 (which will be quite certainly the case), BUZZync matches the beat 
  177. automatically! After some ticks, or some seconds (depending on the settings and your 
  178. counting abilities), it will be in sync again!
  179.  
  180.  
  181. Known Problems
  182. ?    vMidiOut stops sending midi data after some time. I experienced this problem here, I don't 
  183. know why it happens or if it will happen with your PC, too. You may try another MIDI out 
  184. machine which can send midi controllers, if you don't like vMidiOut
  185. ?    Midi output in BUZZ is far from accurate. Try to get a low latency, as this is said to help. Check 
  186. out the BUZZ FAQ or the mailing list for never-ending discussions about latency problemsà
  187.  
  188.  
  189. Info
  190.  
  191. This is still a beta-release! Please don't spread it, check my homepage for updates and the final 
  192. version. Please report all bugs or new ideas!
  193.  
  194. ? Check out my homepage for other cool programs, like 'MidiMap', a mapping program for MIDI 
  195. controllers.
  196.  
  197. 2001 by Peter "P. DooM" Kaufmann
  198. kaufmann@pop.agri.ch
  199. http://combi.agri.ch/kaufmann/
  200.