Vol. 31 Issue 2 Reviews

Bidule Modular Audio Software

Bidule 0.92 [Editor’s Note: version 0.93 has been released since the writing of this review], US$ 75; Plogue Art et Technologie Inc., C.P. 37313, C.S.P. Marquette, Montreal, Quebec H2E 3B5, Canada; electronic mail info@plogue.com; Web www.plogue.com/.

Reviewed by Jared Regan
Limerick, Ireland

Bidule, by Plogue, is real-time modular music software aimed mainly at audio artists seeking a new creative environment within which to experiment. With Bidule, you have a collection of objects to create your own live/studio music-making environments. It runs on both Windows and Macintosh operating systems as a standalone application, and can be used to host VST plugins. Bidule can also be inserted into any other VST host if you want to use it as an effect or instrument. It is ReWire-capable, as well. Bidule features full ASIO support for low-latency, 24-bit linear audio-file read/write, and a 32-bit floating point signal path. Sampling rates are only limited by your audio drivers. On Windows, Bidule can use ASIO, DirectSound, or MM drivers. It also supports MIDI In and Out. The software does require a video card with good OpenGL support.

Bidule comes with many pre-built instruments, effects, and utilities for musical creation.  Among them are a Step Sequencer, Loop Player, Audio Buffer, Pseudo-granulator, 7 Drawbar Organ, Analog Drum Kit and PWMPolysynth, 4 Tap Delay, Buffer Granulator, TwoBandDistortion, Time Domain Convolver, Flanger, Freeverb, and a MoogVCF. Along with the pre-built ChebyShev Waveshaper, SimpleFM, and CombTone sound generators, Bidule also provides users with the basic tools needed to build their own synthesizers. These include phase distortion, pulse, noise, PWM oscillators, ADSR, AHDSR, synced graphical envelopes, and all-pass, bi-quad, comb, and FIR filters.

Bidule comes with an extensive array of pre-built MIDI objects to use in conjunction with its sound generators such as the 16 Step Sequencer, Buffer, Arpeggiator, CC to Params, MIDI to Value, Note Velocity to Params, Note Number to Params, and a MIDI Looper, Player, and Recorder. There are also many MIDI Filters, Remappers, and Transposers.  Some of the more interesting MIDI objects include the Stochastic MIDI Note, Stochastic MIDI List, Stochastic MIDI Sequencer, Note Shuffler, and the nifty Particle Arpeggiator. 

If you already have some understanding of modular environments and signal processing you might want to head directly to the Building Block objects. These include Math functions (accum, binary/logic operator, counter, lookup table, value list, etc.), FFT using the phase-vocoder, Band-limited Oscillators, FIR, Envelopes, Delay line, and more. Like any object within Bidule, these building-block objects can be used to create sub-patches that can be saved for repeated use within other instruments, effects, or your own patches. This is especially useful if you find yourself turning to the same set of objects time after time. Upon saving a sub-patch, you have the option to add up to 128 inputs and 128 outputs for each of the different signals (audio, MIDI, frequency, amplitude).  So, once it’s saved you could, hypothetically, have 512 inputs and 512 outputs for a single sub-patch!

Bidule’s graphical user interface has one main window, the patch bay, and uses the object-oriented paradigm (see Figure 1). Like Max/MSP, pd, and Reaktor, among others, you create patches by connecting these objects with patch chords. All of the available objects for patch creation can be viewed by clicking on the Palette window shortcut button, located in the toolbar at the top of the workspace. Within the Palette window there are 18 categories of objects to choose from, such as Audio Devices, Building Blocks, MIDI, MIDI devices, Mixing, Routing, Spectral, and VST. To assist in locating specific objects, the Palette window also comes equipped with a search function and a history tab. To begin the patch creation process, you simply drag and drop the chosen object into the patch bay from the Palette window. Once the objects are in the patch bay, you can connect them by using the patch chords. The color of the patch chord depends on what type of signal it represents. Blue cables represent audio/data signals, white for MIDI signals, yellow for frequency vector signals, and orange for amplitude vector signals. 

Along with the Palette button, the tool bar at the top of the workspace includes shortcuts to New, Open, Save, Undo, Redo, Parent, Parameters, and Media windows. If you’re exploring a sub-patch within an object, pressing the Parent tab takes you up a level, so that you can view the main object or patch. The Parameters tab calls up a window that displays all of the objects in the patch bay, including connected MIDI hardware devices, and lists each of their respective parameters that can be automated. To set up automation, you simply highlight the parameter that you want to function as the Source, then highlight the parameter that you want to function as the Target and press the Link tab. The Media tab calls up the Media Pool window which is where Audio, MIDI, and phase vocoder files can be stored for use within your patches (see Figure 2). The Media Pool isn’t patch-specific, only session-specific.  So, as long as you don’t close Bidule, all of the files contained within the Media Pool can be shared between patches. 

Using the right-click function of your mouse during patch creation can speed up the workflow immensely. If you right-click on any blank space within the patch bay, you call up the standard Cut, Copy, Paste, and Hide All Windows options. If you right-click on an object you have the option to Rename, Reinitialize, and Delete it.  Here you also have the option to Monitor an object (audio), which calls up a window that gives you a visual readout, in decibels, of the incoming and outgoing audio signals. The Replace an Object command automatically replaces an object with another, preserving the cable connections. The Control from MIDI command allows you, instead of using the Link and Unlink function within the Parameters window, to select a parameter of the given object and, with a turn of a knob or a slider on your MIDI controller, instantly assign that parameter to that controller. For most pre-built instruments and effects objects, when you right-click on the object itself, and select the Expand option, this will open the sub-patch, where you can see the guts of the selected object. If you right-click anywhere in the patch bay a menu will appear. From here you can choose the option to go back to the main patch.  This is, most likely, the best way to comes to grips with the power of the software because you can investigate the inner-workings of the higher level objects. 

Powerful spectral processing capabilities are one of Bidule’s key features. The use of these normally complex features is quite simplified thanks to the high-level spectral objects that come pre-built. The Spectral Bin Delay object provides a graph where the user can draw in a specific delay time (up to 5000 ms) for each of the FFT analysis bands. The Spectral Freezer object takes a spectral snapshot of the audio, when the gate is on, and plays it constantly. Triggering takes a new snapshot. The Spectral Resynthesizer object takes a frequency and magnitude signal and re-synthesizes the sound using the selected waveform types (sine, triangle, saw, square, noise, ramp). The Spectral Cross fader object allows you to cross-fade between two frequency and magnitude pairs. Spectral to MIDI takes the “loudest” incoming frequency and outputs the nearest MIDI note in the well-tempered scale.  If you want to dig deeper within the spectral possibilities and make your own patches, you can look to the lower-level spectral objects which include: Frequency/Magnitude Binary Operators, Breeders, Buffers, Gates, Inversions, Logic Gates, Scalers, Stretchers, Shifters, and Variables. 

Bidule allows for quite a flexible and intuitive way of synchronizing your objects.  Since there isn’t a master time-line in Bidule, the user can control the synchronization source of all of the objects, each with different tempos and time signatures, if so desired. If one of the objects within your patch is able to receive synchronization information, then a gray “S” (slave) will appear to the left of the object. Similarly, a sync generator object will have a green "M" (master), followed by a unique identifier, meaning that it can provide synchronization information on this specific synchronization ID. Some synchronizable objects include The Sync Creator, which allows users to create their own synchronization source to control other objects and plugins. The Sync Extractor can be used to synchronize any master object, so as to use some of the synchronization information for processing. The Trigger object, like Max/MSP’s Bang object, sends a trigger (a value of 1) in the output signal when the button is pressed, or at the start of each measure when connected to a synchronized source. The Trigger Clock object sends a trigger (a value of 1) in the output signal when the number of samples has been counted. The Sync to MIDI Clock object transforms Bidule’s internal synchronization information to a MIDI Timing Clock for output to other software or external gear. The Tempo Sync object allows VST plugins to not only receive tempo/synchronization information, but to also become synchronization generators. The Sync Transport object is a standard transport bar that can also act as a synchronization source. It resembles transport bars found in many traditional sequencers that have a master time-line. It allows the user to set tempo and time signature information.

Overall, Bidule is a fantastic and flexible piece of software. It offers amazing audio and MIDI possibilities all within an elegant interface. The learning curve is very friendly and the program is instantly musical. It begs to be experimented with.  With the option to replace objects on the fly without losing the cable connections, without having to go into an Edit mode to alter the patch, and when, within one click, you can assign a parameter to a MIDI controller, Bidule really shines in a live performance situation. The curved patch chords and the object alignment function help to give Bidule a very clean and well-organized interface which is extremely important as your patches become increasingly more complex. It should be mentioned that Bidule also includes extensive support for VST plugins and Open Sound Control operations, allowing integration with a wide range of audio/MIDI applications.

One of my complaints is that the documentation isn’t as extensive as it could be.  Although dissecting a high-level object might be the best way to understand the program, those musicians who are new to the whole modular concept might find it helpful to have a variety of tutorials to get them on their feet. Trying to set up automation for Bidule’s parameters within another non-modular host sequencer can sometimes be a chore due to all of the different assignments that have to be made. A possible solution might be to include some sort of simple audio/MIDI sequencer object. Both of these complaints, though, could soon be moot as Plogue is planning more sequencing capabilities and tutorials with the release of version 1.0. In the meantime, and if you don’t have another host or sequencer to record Bidule’s output, you can use the Recorder object, which offers up to 32 channels of audio input to capture your beautiful musical mishaps. 

Plogue’s Web forums offer a valuable resource for users, where you can share your Bidule patches, submit feature requests, report bugs or problems, and just generally talk shop. If you have internet access from the same machine that is running Bidule, you can, from within the program, check and download the latest version. Users can also upload and share the patches they have created. Within the Tools menu in Bidule, there is a utility called Group Manager. Within the Group Manager, if you click Get Remote Catalog, the program automatically connects to a Plogue URL and, without ever leaving the program, downloads all of the new patches from fellow Bidule users that you do not already have in your Groups folder (Bidule uses the term Group instead of Patch). 

Bidule is available for downloadable purchase from the Plogue Web site for US$ 75 (other currencies are automatically calculated on the site), which is amazing value for the money when you consider the spectral processing features alone. Upon writing, the current version of Bidule is 0.92. If you purchase before version 1.0, you’ll be buying an early bird license which entitles you to “significant rebate on the full version” when it is released. You can also download the demonstration version which is a fully functional Standalone-only version. The demonstration version will expire three months after the original release date of that specific build.