/ Examples / NoteStream / BeatBox

Projects .. AudioIO .. Control
NoteStreams .. Instruments
Filters .. Effects .. LiCK Effects
Plot .. Utility .. Pure ChucK


Wherein we cop to the beat.

When you need some toys, look in the toybox.
When you need some beats it's the beatbox you want.

SoundBufBank nodes + multi-section notegrid file = Beatbox

Right-click to copy examples to your workspace.

BeatBox

In this example we explore one approach to organizing rhythmic ideas. The idea is quite simple and we'll refer to as the beatbox.

A beatbox comprises a collection of drumkit samples bundled together in a SoundBufBank node. At right we see a vertical arrangement of 15 such nodes corresponding to the collection of Fiddle's built-in drumkits. You can design and stash all your drumits in a single file. Now when you start a new project you can audition your kits and copy/paste a selection of kits into your new project.

Feeding a single one of these nodes is a NoteGrid node. Note that while all of our drumkits are wired into the output Channel, only a single kit is currently receiving notes from the Player. We'd like to easily test out different kits for our next composition and this beatbox project represents an efficient testing grounds to identify (or create) the perfect kit.


NoteGrid

At right you can see the parameters of the NoteGrid node.

We'll discuss the Arrangement parameter below.

For now, let's focus on the File parameter where you'll find a reference to its note grid file, beatbox.fgrd.


Here's a portion of what you'll find by launching the Grid Editor on this file:

Our note grid represents notes in the C4 octave. Each note is associated with a soundbuf file within its downstream SoundBufBank node. In this depiction our notes reside in a blue note layer and the color green represents the editable Velocity parameter. The x-axis represents time and so this pattern represents the interplay of three voices across time. Taken together these two bars of notes can be said to represent a single rhythmic idea.

Now, if we zoom out we can discern a collection of eleven note groupings. Above each idea, in tan, are hoverable comment regions that document each idea. Here, we've hovered the mouse over one of these tan areas to reveal the hint, Section I techno.

This is where the NoteGrid's Arrangement enters the discussion. For each of these rhythmic ideas we've defined a notegrid Section. In the Section Panel you can peruse the numbered sections. You can use this panel to navigate between sections. The section numbers [0-51] correspond to the letters in an arrangement from [A-Za-z]. Now we can interpret the value of our example Arrangement,

A2B2C2D2E2F2G2H2I2J2K2

When we perform this example, this expression allows us to audition each of the eleven sections two times.

SoundBufBank Node

A notegrid and SoundBufBank node must must agree on the range of notes and their associated sounds. Since our goal is to make drumkits have a degree of interoperability it makes sense to adopt a convention for the rhythmic identity of note-ids across kits. In this example, we adopt a simple convention. The first four voices are Kick, Snare, OpenHat, ClosedHat and this makes it feasible to swap out different sample sets by replacing one downstream drumkit with another.

At right we see the node details for one of the beatbox nodes. Here are some highlights:

MidiNote C3 establishes that this node's soundfiles represent sequentially increasing MIDI notes starting at C3.

AkaiMpc60 comprises 11 .wav files that are built-in to the Fiddle distribution. Other built-in kits are found here.

GainPan controls the gain and pan of the corresponding soundfile. This makes it possible for each "drum" to take a unique physical location in the soundstage.

home .. topics .. interface .. reference .. examples .. tipjar