home *** CD-ROM | disk | FTP | other *** search
- P. DooM's BUZZync 1.0 beta
-
- a present for the BUZZ community. Also available as a commercial product :)
-
- 2001 by Peter "P. DooM" Kaufmann
- kaufmann@pop.agri.ch
- http://combi.agri.ch/kaufmann/
-
-
- What the hell is BUZZync?
-
- BUZZync is a MIDI program that synchronizes two instances of the windows tracker BUZZ by Oskari
- Tammelin. It might be useful for people who want to use two BUZZes at the same time (for whatever
- reason) or for live performances
-
-
- In a few words, how does BUZZync work?
-
- BUZZync uses the MIDI capabilities of BUZZ. One BUZZ instance plays the role of the master. It
- sends a MIDI controller-value to BUZZync every beat. The slave-instance of BUZZ also sends a MIDI-
- controller value to BUZZync in the same interval, but it also receives a MIDI-controller value from
- BUZZync. With this controller, BUZZync changes the tempo of the slave BUZZ to get in sync with the
- master, to achieve a 'match', as I call it here.
-
-
- So... how do I set up BUZZ to use BUZZync?
-
- You must be able to make a physical (or logical) MIDI connection between BUZZync and the two
- BUZZes. The master BUZZ instance must be able to send MIDI data to BUZZync, the slave needs a
- two-way connection (send and receive). The set-up of the MIDI connections is not discussed here.
-
- Master-BUZZ:
-
- In the Master-BUZZ (the instance of BUZZ that runs on its own tempo), do the following:
- ? Insert a MIDI-out machine (e.g. vMidiOut)
- ? Set the appropriate MIDI-out port in vMidiOut (options). Also make sure that the same port
- is enabled in the BUZZ preferences under 'Midi Output'. This port will then connect to
- 'Master in' in BUZZync.
- ? Create a new pattern that sends a value greater than 64 to controller number 1 every beat. In
- vMidiOut, this should look something like this:
-
-
-
- ? this pattern must be played during the whole song. So just insert it in every row in the
- sequence editor.
-
-
- Slave-BUZZ:
-
- IN the Slave-BUZZ (the instance of BUZZ that gets synced to the Master-BUZZ), do the following:
- ? Insert a MIDI-out machine (vMidiOut) and do exactly the same as for the Master-BUZZ (see
- above), with a different MIDI-port. This port will connect to 'Slave in' in BUZZync.
- ? If you haven't set up the MIDI-in port of BUZZ before: Go to preferences û 'Midi Input', select
- the MIDI input device which comes from BUZZync (called 'Slave out' in BUZZync) and create
- a new controller: 1.
- ? Open the Master-machine and bind controller 1 to BPM (right-click on BPM, 'Bind to Midi
- Controller')
-
-
- And what do I set up in BUZZync??
-
- The easier part. Just two things to do:
-
- First, select all 3 MIDI-ports:
- ? Master in: corresponds to output from the MIDI-out machine of Master-BUZZ.
- ? Slave out: corresponds to Slave-BUZZ MIID input.
- ? Slave in: corresponds to output from MIDI-out machine of Slave-BUZZ
-
- If all MIDI-ports are at a reasonable setting, 'Overall MIDI-status' should say 'OK' (in BUZZync, this is).
-
- Second, set the song tempo. This must be the same as the tempo (BPM) of master-BUZZ. Perhaps
- you wonder why you have to set the tempo manually. The reason is: MIDI is not accurate enough to
- keep the tempo perfectly, so it helps BUZZync a lot if it knows what the tempo of the song should be!
-
-
- Everything set up. How to start jamming?
-
- The best way to start a synced play is to follow these steps, in that exact order:
-
- ? Set both BUZZes to the same BPM (tempo).
- ? Make sure everything is set up (MIDI machines, MIDI ports, MIDI ports in BUZZync, tempo in
- BUZZync).
- ? Start one BUZZ, then start the other one and try to get them synced by ear! For example
- you start Master-BUZZ first, then go to Slave-BUZZ, set the cursor to tick 64 and start playing
- when Master-BUZZ arrives at tick 64. (You can also do this just by looking at the moving
- cursor of Master-BUZZ). Note: this doesn't have to be perfect! It's just a help for BUZZync, so
- it knows which beats should go together.
- ? If everything went ok so far, the Master in and the Slave in û LED should be lit!
- ? Press the Start-button in BUZZync.
-
-
- All controls of BUZZync
-
- MIDI engine:
- ? Master in, Slave out, Slave in: the MIDI ports. See above.
- ? Overall MIDI-status: If all MIDI ports are opened successfully, this should say 'OK'
- ? Start/Stop: start and stop syncing.
- ? Master in-LED: indicates an incoming sync controller (1) from Master-BUZZ
- ? Slave out-LED: a tempo change is sent to Slave-BUZZ. This LED doesn't have to be lit all the
- time, only when tempo changes are necessary.
- ? Slave in-LED: indicates an incoming sync controller (1) from Slave-BUZZ
-
-
- match indicator:
- Shows how good the two beats are synced. In the middle position (0 ms) sync is perfect, if the slider
- moves to the right, Slave-BUZZ is ahead of Master-BUZZ and the tempo will be changed accordingly
-
- tempo:
- ? Song tempo: Enter the song tempo (BPM) here. This is an important setting! If this doesn't
- match the BPM of the Master-BUZZ, BUZZync will have a very hard job! Note: Actually, this
- doesn't have to match the BPM of Master-BUZZ. It is the tempo of the incoming sync-
- controllers (e.g. created with vMidiOut). And this also depends on the TPB setting in BUZZ.
- Example: if you set BPM to 140 and TPB to 4 and made the same pattern for vMidiOut as
- shown above, you can set the song tempo to 140, too. See below for more information about
- special tempo settings.
- ? Playing at: the tempo currently sent to Slave-BUZZ. Fractional tempos will be translated to
- short, jerkish tempo changes, according to some math formula.
-
- match parameters:
- Here you can change the behavior of the synchronization.
- ? React on mismatch: When Slave-BUZZ is ahead of Master-BUZZ (too early), the tempo must
- be set to a lower value. This slider sets the amount of changes made to the tempo if there is
- no match. If the slider is set to 'lazy', it will only change the song tempo little, so it may take
- some time until the sync is re-established. If it is set to 'overreact', much bigger adjustments
- will be made to the tempo. This may cause an overreaction: The tempo is changed so much
- that it overshoots the perfect match. (e.g. Slave was too early before, it gets much too late
- after the automatic adjustment).
- ? Force to song tempo: To prevent that overshooting mentioned above, this setting will gradually
- 'suck' the tempo to the desired song tempo (see 'tempo' above). Like a magnet.
- ? Default: Set 'react on mismatch' and 'force to song tempo' to default values.
- ? HELP!!: show this documentation
-
- Note: the effects of these two settings depend on each other! If 'react on mismatch' is set to a high
- value, you may get good results with a high 'force to tempo'-setting, but a low 'react on mismatch'
- setting and a high 'force to tempo' setting will make the tempo almost bound to the song tempo.
- You will have to play around with these settings a bit to achieve the best results. Some general hints:
- ? A low 'react on mismatch' setting works good if you know that the two BUZZes work stable,
- without dropouts. They might, however, drift a little after a certain time without the use of
- BUZZync. Such slow, non-jerky sync problems can be best controlled with a low 'react on
- mismatch' setting, and some 'force to song tempo'. Don't set 'force to song tempo' too high in
- this case, because this will make it hard for the matcher to get away from the song tempo and
- make the necessary adjustments.
- ? A high 'react on mismatch' and a high 'force to song tempo' setting are good if you know that
- one (or both) of the BUZZes will make glitches, dropouts, clicks/pops etc.. from time to time,
- which would destroy the sync totally without BUZZync. The high 'react on mismatch' setting
- will assure that the mismatch gets fixed as quick as possible (it will, however, take some
- seconds to get in sync again if it was a big dropout). The high 'force to song tempo' setting will
- re-establish the song tempo as soon as possible.
-
-
- Special tempos / TPB other than 4
-
- Everything described above was meant for a TPB setting of 4 (in BUZZ). If you want to use other TPB
- settings, you'll have to change the vMidiOut-pattern (see pic above) a bit. E.g. for TPB=8, you must
- send the controller every 8 ticks only. The song tempo in BUZZync will be the same as TPB in BUZZ.
- You can also sync one BUZZ with TPB=4 to another with TPB=8, of course. Just make the appropriate
- vMidiOut-patterns.
- If you use this program, you should be smart enough and know BUZZ by heart anyway, so you should
- be able to figure out how to set the song tempo in BUZZync and how to make the vMidiOut pattern
- yourself :).
-
-
-
- Hint
-
- If you've read this manual attentively so far, you'll perhaps have noticed that BUZZync doesn't work
- with some kind of 'song position' mechanism. This has some important pros and cons:
- ? Con: If a big dropout happens, or a MIDI transmission error or something, which kicks the
- Slave-BUZZ completely out of sync, it WILL get back in sync again. But perhaps it won't sync
- to the same beat again. So it might be, that after a really bad dropout, it is always exactly one
- note behind (or ahead) of the Master-BUZZ.
- ? Pro: You can DJ around with BUZZ. Take this scenario: You got two BUZZes playing in sync
- with BUZZync. Now you can just set the song position pointer (in Slave or Master) to a new
- tick. You count, à2-3-4-1-2-3-4, and on the next 1 you set the song position. So Slave-BUZZ
- will now play a totally different part. Now the benefit of BUZZync drops in: If you didn't catch
- the beat exactly on 1 (which will be quite certainly the case), BUZZync matches the beat
- automatically! After some ticks, or some seconds (depending on the settings and your
- counting abilities), it will be in sync again!
-
-
- Known Problems
- ? vMidiOut stops sending midi data after some time. I experienced this problem here, I don't
- know why it happens or if it will happen with your PC, too. You may try another MIDI out
- machine which can send midi controllers, if you don't like vMidiOut
- ? Midi output in BUZZ is far from accurate. Try to get a low latency, as this is said to help. Check
- out the BUZZ FAQ or the mailing list for never-ending discussions about latency problemsà
-
-
- Info
-
- This is still a beta-release! Please don't spread it, check my homepage for updates and the final
- version. Please report all bugs or new ideas!
-
- ? Check out my homepage for other cool programs, like 'MidiMap', a mapping program for MIDI
- controllers.
-
- 2001 by Peter "P. DooM" Kaufmann
- kaufmann@pop.agri.ch
- http://combi.agri.ch/kaufmann/
-