P. DooM's HACK Msync


What is HACK Msync?

A BUZZ Generator. In fact, it doesn't generate anything. It's a program that can sync BUZZ to a midi clock source. It's implemented as a BUZZ machine because a) this makes it easy to use and b) it can get better control over BUZZ this way.
The main use of this machine is: you can sync BUZZ to a sequencer, such as cakewalk pro audio or steinberg Cubase VST (see next topics). But you can also use it to sync two instances of BUZZ! Just use a sequencer and send the same MIDI clock signal to both of them - they will play the same part, at the same time and in sync. This works far better and is more accurate than the old BUZZync program.

The main features of the machine are:

  • sync to midi clock
  • receive start/stop/continue midi signals
  • receive midi SPP (song position pointer) messages
  • automatic BPM adjustments
  • latency compensation
  • timing accuracy of about +/-5 ms (estimated)

 

How to set up Msync machine

After you've 'installed' the machine (by copying all files to your buzz/gear/generators/-directory), just insert the machine in your song. There's no need to connect it to the master, as it doesn't generate output. All parameters are accessible through the Setup menu (right click on the machine).

Explanation:

 

Status

Some information about the operation of Msync. If something doesn't work the way it should, check this out first!
  • HACK Status: Shows if all BUZZ internal variables can be accessed. If this doesn't say 'Ok', you better update to the latest BUZZ version!
  • MIDI Status: Says 'Ok' if the MIDI port was opened successfully. If it doesn't, make sure you selected the right MIDI port (see below), and make sure that the port isn't in use by some other application (or used by BUZZ itself!).
  • Song Status: Says 'Ok' if Msync works with the current song. If it doesn't, you very probably got a bad TPB setting. TPB must be: 4, 6, 8, 12 or 24!

MIDI

  • MIDI in port: Select the in port here. You better use just one MIDI port especially for syncing (with just the clock signal and no other MIDI data like notes/controllers on it).

Sync

  • Compensate latency: BUZZ has a pretty high latency. This means if the song position of BUZZ matches the MIDI song position perfectly, BUZZ will still be late because it takes some time to generate and output sound.
    With this setting you can compensate this. It'll make BUZZ play ahead of the MIDI clock, thus getting the audible output in sync! The value you have to enter here will often be higher than the latency of your soundcard (ASIO or directx drivers). Example: I set my latency for ASIO to 20ms, and a latency compensation value of about 140ms usually works best. The best setting also depends on the current song tempo (BPM) and TPB! So you better play around with this a bit to find the perfect value for your configuration.
    Rule of thumb: A higher value will make BUZZ play earlier, at a low value BUZZ will be too late.
  • Set: apply the new latency. You can keep the Setup window open while playing, just change latency and press Set to easily try out different latency values.
  • current max: The maximum compensate latency value you can enter. This depends on the current tempo (BPM) and TPB.

 

Settings for cakewalk pro audio

Go to Options-Project and select the Midi Out-tab. You can see the proper settings in the screenshot below. Note that the number for Midi Output Port corresponds to the number of the MIDI-device in pro audio (the number next to the MIDI Port in track view), and may be different on your system!

 

Settings for Cubase VST

Here, the important setting is hidden in Options-Synchronisation. Just select the MIDI device for MIDI-Clock, and all important MIDI timing/positioning signals will be sent to that port (btw: Ein means On in english :)

 

Settings for Emagic Logic Audio

Go to Options-Settings-Synchronisation Settings and select the MIDI-tab. You can see the settings you should use for Msync in the screenshot below (of course the MIDI port may be different on your system!). Hint: disable Auto enable external Sync in the General-tab to get rid of some problems that occur when using a loopback (such as Hubis Loopback) for transmitting the MIDI clock signal.

 

Settings for Massiva

Also very easy to set up. Just go to File-Sync and select the MIDI output device. As always, this setting may differ on your system (I'm just sending it to APS MIDI Out here).
Massiva is a nice freeware sequencer by Jørgen Aase. You can get it here. Greets to Vectrex at this place!

 

Important notes, please read!

  • TPB must be one of these: 4, 6, 8, 12 or 24!
  • Set the tempo of your BUZZ track to the correct tempo. (Same as the tempo in your sequencer).
  • Put some empty bars at the beginning of your song. This will give Msync some time to catch the tempo/position.
  • Make sure your BUZZ track is long enough. Remember that playing over the end-of-song or loop-marker (Ctrl+E) will make BUZZ jump to the beginning of the song. This will make synchronisation impossible.
  • Do not use tempo changes (do not change BPM or TPB in the master track) in your BUZZ tracks! This will make it impossible for Msync to work correctly. You can control the tempo of BUZZ from your sequencer. You can also change the song tempo gradually in your sequencer during the song, if these tempo changes don't occur too fast.
    Note that shuffling (by changing the BUZZ tempo) will not be possible anymore with Msync!

 

Troubleshooting

  • If something doesn't work the way it should, have a look at the Setup (see above). The source of the problem might be indicated there.
  • When I start the song in my sequencer, BUZZ (Msync) always misses the beginning. Only after some seconds it is in sync with the sequencer.
    Msync takes some time to catch the tempo and song position and apply these values to BUZZ. The rather complicated latency-elimination algorithm makes this kind of 'boot up' problem unavoidable. What you can do to get around this is:
    - start the song some bars before the part you want to hear. E.g. if you want to play from bar 16, set the song position to bar 13 (in your sequencer) and hit play. When the sequencer arrives at bar 16, Msync will (hopefully) have had enough time to 'catch the beat'.  
    - insert some empty bars at the beginning of the song. This will give Msync some time to get in sync.
  • I want to use MIDI port XYZ with Msync, but it doesn't work! Setup says 'CANNOT OPEN MIDI DEVICE'.
    The MIDI port is in use by some other MIDI application. Make sure the port is not used by your sequencer (Start BUZZ first, then start the sequencer).
    Also make sure that BUZZ doesn't use the same MIDI port! (Have a look at View-Preferences-MIDI Input in BUZZ). The MIDI input device of BUZZ must be different to the port used by Msync!
  • I want to use HACK jump, but it doesn't work right anymore!
    You can't use HACK jump together with Msync at the same time. Msync will force the song position pointer to a BUZZ-position that corresponds to the current MIDI position, so jumping around in the song is not possible!
  • At the beginning of the song, BUZZ is in sync, but after some minutes of playing it gets gradually out of sync.
    Perhaps your MIDI connection is not reliable enough. The sequencer sends a MIDI tick every 1/24 beats, so if one of these ticks is skipped BUZZ will be late 1/24 beat. If a lot of skips occur, this may put BUZZ out of sync.
  • In Logic Audio, I can't play my song anymore. It stops or the cursor hangs.
    You got a MIDI feedback problem. See Settings for Emagic Logic Audio above.

 

What is HACK?

HACK means: This machine accesses BUZZ internal variables directly. And this means for you: this machine can't be used with any other BUZZ machine host than BUZZ itself, and it probably can't be used with older versions of BUZZ. If there will be a new version of BUZZ one day, it'll perhaps not be compatible anymore!

 

Note

This software is provided for use "as is" without warranty of any kind. Use this BUZZ machine at your own risk! The author will not be liable for any damage that may result from using these files. This includes, but is not limited to: loss of profits, loss of your work, loss of time, loss of inspiration, damage to your hardware or your brain. If you don't want to take the risk, do not use this machine!.

 

Making this machine for you was hard work, I had to hack into BUZZ first and then work out the mind-bogging formulas to sync BUZZ to something else, only by changing the tempo and estimating how fast BUZZ goes. Not to speak of the long programming, testing and debugging phase. However, I think it's quite usable now and will hopefully integrate BUZZ into pro studios more! If you like the machine, spread it, put my name on your CD covers, tell me that I rule or send me some money or a postcard :)
Have fun!

Peter P. DooM Kaufmann, April 2001

kaufmann@pop.agri.ch
P. DooM's Homepage