• choose theme
  • British Summer Time GMT+1

    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.