BBoB
BBoB is meant to be software that could run on any hardware platform. It will take one or more inputs and
allow the scripting or sequencing of one or more outputs. I/O can be single bits such as a switch or
relay (on/off) or multibit such as a keypress or serial port byte (Midi, DMX). As the name suggests,
there should be many many buttons connected to a computer, with various outputs connected doing
something fun and/or productive.
This code should compile on MS Windows, Unix/X11 (linux specifically), and possibly Mac OS-X
(untested). Versions started with 0.0.0, and will go up to 0.1.0 when it works enough to do something
usefully. Much will change until then. Plugin interfaces will change until 1.0.0, and many plugin
frameworks are being done to make sure the most number of things can be done through the plugin
interface. The main apps will basically load plugins and config files for plugins, and do minimal
work.
Qt 4.3.2
required to build. A free Open Source (GPL) version is available to download. Binaries and distributed
Qt libs here are from the free version. Installer gives option for MinGW download (required on MS Windows).
Why Qt 4.3
bbobd :
Runs as a Windows Service or Unix Daemon. Uses the BCore class to load plugins, and uses the same
config file as Qonsole. It should do everything Qonsole does with out the User Interface.
Qonsole :
Loads a main window, plugins load menus and provide dockable displays. Loads/Saves a config file of
the active configuration.
Qted :
Loads a main window, Example Qt text editor (open,save,print). Could be used to edit INI files.
Will eventually be an XML editor.
plugins/BusConsole :
Send and show Bus messages. Used for testing plugin communications between plugins.
Listens on all buses for data and displays them.
plugins/ButtonBlockPlugin :
Provides a display for 8 toggle switches. Right click menu for each button switches between Toggle
(On/Off) and momentary. Title text above the switch is editable, and saved/loaded in settings.
Will eventually provide a flexable number of switches, auto configuring for
the selected size.
plugins/FaderBlockPlugin :
Provides a display for 8 sliding faders. Title text above the switch is editable, and saved/loaded
in settings. Will eventually provide a flexable number of faders, auto configuring for
the selected size.
plugins/Fmod :
FMOD Ex 4.06.19 is a library for audio output, input and processing. Also supports
multichannel surround mixing. Only play features work now. Listens on StringBus for commands.
Saves playlist on program exit, and loads the playlist on startup. Provides FFT for 32 channel spectrum
levels.
plugins/LiveUpdate :
Downloads an XML file from ChukTech.net, which contains a link to the latest version and a MD5 hash of the file.
If a newer version is found, the option to download is enabled. If the download succeds, and the actual file
hash matches the XML version, the option to install is enabled. If install is run, the application will save/quit
and launch the installer.
plugins/PluginViewer :
Shows loaded plugins in a dockable tree view. Menus for loading/unloading, but they don't work.
plugins/Test :
Provides example, compiles first, testing only. Docks empty window.
plugins/Timecode :
Provides a display of the system time, and can receive Bus Messages to set a time to pass on Bus Messages.
This will eventually have support for MIDI Timecode (MTC) when I find a cross platform library that does that.
plugins/Sound :
QSound support (built into Qt). Opens WAV files, loads ready to play, plays on demand.
Listens on StringBus for commands.
plugins/Tcp :
Tcp server and client. Listen on a port, pass data from multiple connections(32?) to one text slot.
plugins/Udp :
Udp listener and sender. Listens to a port for packets, sends all data to one text slot.
plugins/GLExample :
Qt OpenGL example as dockable window. Could have slots for changing parameters. Requires hardware
that supports GL Framebuffers.
plugins/SDL :
Handles supported types in libSDL. Currently only uses joystick. Requires libSDL
to be installed, requires Cygwin to build on Win32.
Latest version
BBoB-0.0.75-Inst.exe
-
Windows Installer
- 7.0 Megs
Now using Qt 4.3.2. All apps are pure Qt... no other libs required. Plugins may
require extra libs/DLLs. This makes it the most portable across the well supported Qt systems.
Many plugins support Modules/Channels, which can be connected in the Portmap tab of the Configuration
Window.
LiveUpdate is now a plugin, and works! Future releases can be downloaded as Windows Installer
through this plugin. All download/install functions are manual, requiring loading the plugin dialog,
and clicking on the buttons.
Multiple desks are supported, fixed at 12 for now. Function Keys (F1-F12) activate desks. Plugin
dialogs will load to all desks, and then can be turned off on each desk. Desk configurations
are saved/loaded.
The most functional app is "qonsole".
"bbobd" now installs as a windows service, logs to the Application Event Log, and loads the same
configuration as Qonsole. It has NOT been tested much.
Next version
More plugins need to implement Modules/Channels.
Qt 4.3 has scripting ability, get this worked into Qonsole or BCore.
Desks should be configurable, Number and Names.