From CSWiki
Revision as of 15:22, 13 May 2008 by Rweiteka (talk | contribs) (What is Beat Konducta?)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Raymond Weitekamp's Final Project: Beat Konducta

Beat Konducta saving damsels

What is Beat Konducta?

Beat Konducta is a misleading name, I'm sorry. I wanted to name my program something badass, that would hint at the fact that it manipulates samples - so logically it is a tribute to Madlib. Anyways...Beat Konducta is a program which allows a 'Konducta' to control recording and playback of LiSa buffers on an entire ensemble of computers, using a Monome interface. The Players can use any Chuck instrument, simply direct the sound output to the Beat Konducta class (in addition to dac). The Konducta's patch receives Monome data, and sends OSC messages over a network to (potentially) any number of computers to control LiSa buffer recording and playback. Each computer is assigned to a row of the Monome, with the columns corresponding to grains of the buffer. A button press sporks a grain, and the Konducta can record patterns of presses and play them back. In this way, the Konducta can create a textural layers or rhythmic patterns based on re-sampling the ensemble's output while the ensemble plays along. Think of it as a hands on munger (LiSa_munger2.ck). The volume of each player's buffer can also be controlled, to accent or hide certain players' buffers. Because these buffers exist on each Player's computer and are played through their dac, the Beat Konducta can manipulate these grains over the spatial dimensions of the ensemble.

Using Beat Konducta

Using this program will require:

  • A Monome interface (40h or 64 will work for up to 7 machines, 128 for 15 machines, 256 is too big for now)
  • A network (wireless is nice)
  • Friends to play in your ensemble (a laptop orchestra will work!).
  • The newest version of Chuck, I wrote this using MiniAudicle

Konducta Set-Up:

  • Launch adder_go.ck in BKonducta folder.
  • In MonomeSerial, set your prefix to "/bk"
  • If things are working, your top left button will blink.
  • You will see computers added as your players launch their patches.
  • Top Row Controls: (x=) 7:toggle buffers, 6:begin recording buffer, 5:start pattern record/play pattern, 4:stop pattern playback, 3:toggle normal/gain control pages, 2-0:nothing yet
  • All other rows (normal page): Each button sporks a grain from the BK buffer on specific machine. Each grain is 1/8 of buffer.
  • All other rows (gain page): 8 buttons act as volume slider, adjusting output gain of BK buffer on a specific machine. (LEDs will get crazy if a pattern is being played back when you switch to this page, but all is well)

Player Set-Up:

  • To use default (extremely boring) instrument, simply launch adder_go.ck in BKPlayer folder. While any button on the keyboard is pressed, a sample will play. This was to facilitate testing.
  • To get creative, replace instrument function in ClientPlayer.ck with your own instrument, making sure to remember to add "(sound output) => BK.g;" in addition to your normal patch to the dac.

Download Beat Konducta


  • Warning: YOU MUST HAVE THE LATEST VERSION OF CHUCK. Beat Konducta dynamically allocates arrays. Older versions of ChucK won't let you do this. Compile the new version from the CVS source.

The Future of Beat Konducta

  • Video coming soon!
  • Add tempo control, right now all buffer lengths and grain lengths are fixed.
  • Encapsulate Client functionality into a *working* class, to facilitate use with any Chuck code.
  • Specific computer => row assignments (right now its first come, first serve), so that the spatial geometry of the ensemble is represented logically (or linearly) on the Monome control interface.
  • Accelerometer magic (top secret)
  • Consider sending multiple OSC messages per button press, to compensate for dropped packets over wireless networks.

Questions, comments, concerns?

Email rweiteka AT princeton DOT edu