BuzzFAQ> > >
Machine HelpFiles> > >
BuzzManual
> > >
BuzzMusic> > >
BuzzMachines> > >
Quence PyBuzz 1.5
Python Script System for Buzz-Machines
Copyright (C) 2003 by Leonard :paniq: Ritter
Parts of this program rely on BTDSys PeerCtrl source code
copyright (C) 2003 by Ed Powley
and P. DooM's BUZZHACK source code copyright (C) 2001 by
Peter "P. DooM" Kaufmann
Quick Manual
Programming Reference
pybuzz_reference.txt
What is PyBuzz?
PyBuzz is a peer controller buzz machine that acts as a host
for python scripts using the python interpreter engine
developed by http://www.python.org.
Python scripts loaded into the host have access to it's 256
peer controllers which can be routed to control virtually
any other machine's parameters.
They can also read and react to specific buzz events such as
changed input parameters, stop, tick, work, save, load,
and others.
Since version 1.2, basic sequencer control is also
possible.
Installation
Usually you can just unzip the whole distribution zipfile
into your buzz folder, given that the folder structure
is maintained.
PyBuzz will work without the python distribution as long as
a local python23.dll in the buzz folder is provided.
However you can install the full distribution of python
if you plan to do some extraordinary processing. A
recent distribution setup available for windows (2.3.3)
available can be found at:
http://www.python.org/ftp/python/2.4/python-2.4.msi
Usage
When adding a machine, a text console window will open
that is used by PyBuzz for printing out status and
error messages. 'print'-statements issued by scripts
will also go there.
You find four menu options when right clicking a PyBuzz
machine:
* Import Python Script...
Opens a file dialog in which you can choose a
python script to load into the machine. Once the
script is loaded, it is compiled and instantly
executed.
Scripts are always saved with songs, so no
machine depends on external files and can be
transferred to other pcs that do not have
the script.
* Export Python Script...
Opens a file dialog which you can use to store
the script to disk that the machine currently
contains.
This is especially useful if you are dealing with
songs written by strangers or if you have lost
the sources to your script.
* Update Import
Once you have loaded a script file into your
host, you can use this as a shortcut to reload
the script in case you have made changes.
If the script has OnLoad/OnSave event handlers,
the handlers will be called for update, allowing
a script to manage its state during reloads.
* Assign Peer Controller...
Allows you to assign one of the 256 peer controllers
to another machine's parameter.
In case the target machine is a PyBuzz machine,
the behaviour of subsequent control changes
is undefined.
* Import State...
Opens a file dialog which lets you choose a state
data file which is decoded to state objects and
sent to the script.
If a script is unable to import state data, you
will get a python exception on the console.
* Export State...
Opens a file dialog in which you specify a target
file name for saving the scripts state objects.
If a script is unable to export state data, you
will receive an error upon saving.
* Show Console
Opens the console.
You can open this window also by holding the
ALT key while doubleclicking the PyBuzz machine.
When doubleclicking the machine, a python command line
interpreter window will open, routing the machine specific
print messages to its output window.
You can use the command line to run python statements and
send commands to the script.
To send a command to a script, try '/' where
statement is a string that the script understands.
BassDrum.py is delivered with this package to give a simple
example of a PyBuzz script. Once triggered by note
on any track, this scripts sends a steady pulse of TPB
ticks length to peer controller 0. You can e.g. connect this
controller to a HD MonsterKick Note parameter for instant
kickdrum effect.
Known Bugs and Limitations
- PyBuzz machines can neither reroute themselves, nor can
they be wrapped. They will not work outside buzz due to the
hack methods used to modify parameters that are not open to
the buzzmachine API.
- Given a complete python distribution is installed, malicious
code that might delete or infect your harddrives could be
executed on your machine upon loading of scripts and song
files. Therefore PyBuzz issues a warning once when a song is
loaded that enables you to disable script execution to export
and check the scripts safely.
Project homepage
For new releases and source code, visit
http://www.sourceforge.net/projects/pybuzz
Legal Stuff
PyBuzz is Copyright (C) 2003, 2004, 2005 Leonard Ritter
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA