bento
Note: this entry is a π¦ DRAFT π¦
some notes on bento
Have you used bento? you'll like it!
some technical notes
Every single piece of the app state is in a SharedArrayBuffer so it can be accessed simultaneously by the Offscreen Canvas Web Worker (which renders the drawings of the samples), the Audio Worklets (that produce and process the sounds and keep the transport running in perfect time) and the main thread that renders the UI and listens to clicks, touches and keypresses.
The SharedArrayBuffer
is just a big chunk of memory. I address it by a series
of
TypedArrays
(for example, a Uint32Array
called stepStarts
contains all the sample
positions in a sound that have been chosen as the start point for a specific
step).
When you make a change in the UI, it directly sets values in that
SharedArrayBuffer
which is why it's so snappy when you change things. In
addition, every change causes a write into your browser's local
IndexedDB with
all the current values in a row named for your current pattern. When you load a
pattern (or refresh), it pulls those values from the correct row of IndexedDB
and replaces the running memory with the contents of the loaded memory.
When you save a pattern to a .bento
file on your computer it takes the live
state buffer as pure bytes,
compresses
the whole thing and then converts it to
blob so that you can
download it. When you load a .bento
file, it decompresses it and writes over
the running memory with the raw bytes from the file.
some design notes
I hoped I could make it that somebody who'd never made music before would find themselves making music with bento before even thinking about it. All the buttons are inviting, all the features are immediately visible. You can record sounds with your phone mic, chop em up and change em.
The mix panel displays panning and volume as a point on a graph. It goes from "left" to "right", from "quiet" to "loud". There are no musical terms on the device, other than the bpm number. That's still a number as a perhaps misguided expression of my perhaps misguided hope that bento is an instrument that can grow with you and be used even when making music with others.
It is probably quite clear that the design was inspired by teenage engineering's pocket operators. I always wanted to build some inviting musical instruments that could be purchased cheaply like that. It hurts me knowing there are people out there who might love making music but who cannot, just because they are never going to be in a position where they have an extra $100 worth taking a risk with. After a few failed projects, the obvious-in-retrospect fact struck me that there is no cheaper hardware than the one you're already carrying.
i hope that bento gives anyone with a phone something better than a teenage engineer pocket operator for free. you can record sounds around you and use them in your music. it's immediately available and teaches you how to use it without saying a word.