Monday, November 11, 2013

M4L: Ruban 1.0

The first time I played with Max/MSP (it was version 4.5 if I remember right), I was hooked on groove~ with the wave display: it was instantaneous and I didn't feel carved into the walls of one single .wav file or tuning half of the buttons in Reaktor to get something fun. I have nothing against Kontakt, it is a wonderful engine, sounds great but every time I play with it, I feel like I'm writing code in Word processor with a very low resolution. Yes, it has a GUI, but on Kontakt, I get the same feeling of menu/menu/command/menu/menu like a real sampler. You need to modify a voice; save file, open wave editor, do your things, resave file, reopen Kontakt. -1 for the workflow.... And yes, there is editing feature to "edit" directly the sample in Kontakt but half of the time the mouse click does nothing, since I didn't select the right options.

All of this got me on thinking the simplicity of the original wave display on max/msp. I wanted to make a device like that. And to simplify the workflow, it is using one very large buffer (one wave file) that contains all the sounds we need to play. You can cut/copy/paste any part of the large buffer. Later, you can assign 16 different loop point within that buffer. The name of 'ruban' is the french word for 'tape'. The analogy is to be able to embolden part manipulation without having to treat each parts as single wave file.


It has 16 active slices or zones that are triggered via midi note 36 to 51. Each zone have their one envelope, pan and sample speed. If you drag a .wav of .aiff file into the "wave display", the content of this wave file will be copied into the device clipboard. And no, this clipboard is not available outside the application, I'm still trying to find a working piece of code that can read .wav file via the system windows/os x clipboard.

Special functions are also available to modify the buffer or change the borders of the zone :

"gain" : multiply the sample amplitude by an ask value

"sprout" : copies the beginning of a zone by an ask value

"slice" : create 16 equals zone within the buffer

"slicetempo" : places the end of the zone by an ask value in bars; 1 = 1 bar

"pastemix" : paste the content of the clipboard by mixing with the content of the buffer

"delete" : reset zone content to 0

This Max max for Live device requires Java (for buffer edition)

Source file : http://www.le-son666.com/asb2m10/ruban-1.0.zip