The SoundBox synth

After releasing the 4k demo SWAY, I’ve received much positive feedback regarding the synth that was used to produce the music. The synth is based on a new work-in-progress project that I have not released yet. However, my colleges convinced me to participate in the Mozilla Dev Derby (April 2012 is all about audio), so I submitted a slightly stripped down version yesterday (I had to remove the PHP/server parts). So, now you can try it out at least (it’s GPL, so all source is available): I call it SoundBox Lite.

The background to the tool is obviously Sonant Live, but with some useful changes:

  • The soft synth core was rewritten, generally giving better sound quality (better filter logic, supporting sharp transients etc) and faster sound generation.
  • There are now four note tracks per pattern, so you can do proper chords.
  • An “effects track” was added per pattern, which gives you the opportunity to change any instrument / fx parameter dynamically (quite useful!).
  • A new distortion effect was added, giving that powerful dirty sound.
  • Also, some functions that I personally did not use that much, or that were just redundant, were removed (for a more compact player routine).

I will continue working on a more public release. In the meantime, enjoy the demo.

EDIT: You can find the official tool here: SoundBox.

This entry was posted in JavaScript. Bookmark the permalink.

5 Responses to The SoundBox synth

  1. Michael Deal says:

    Phenomenally cool work you’re doing here! I’m one of the authors behind MIDI.js; a basic sequencer in Javascript that plugs into Web Audio API. The major downfall of MIDI.js is the loading time; it loads a .JS file that contains an object of notes referencing a base64 encoded OGG file. Integrating into something like Soundbox could change that, allowing for multi-instrumental MIDI songs played back through the browser without the bandwidth restriction. Caching the generated notes using the FileSystem API would make it so the files would not have to be re-generated, so the second time the user visited the application, it would load super-fast. My one question would be; are you tied to the GPL3 license, or would you consider more permissive licenses such as the MIT or CC at some point? Either way, amazing work and contributions to the community, you’ve blown my mind ;)

  2. ticket says:

    Great work you are doing here. As a committed Debian O/S user, I missed being able to run the old 256B demos that would only run under Windows.

    I’m especially grateful for your TinyThread++ library. I have used it to create a simple, portable Thread Pool class, documented here:

    http://stackoverflow.com/questions/11234894/query-on-simple-c-threadpool-implementation

  3. Eric says:

    Hi,
    Just stumbled into this. First tool of its type I’ve seen. Cool stuff. Thx. Some constructive feedback:
    – pressing the ‘delete’ key (key code: 8) on my mac when editing reloads the previous URL, rather than anything useful. The fix is simple (add a case) in gui.js line 2948

    case 8: // DELETE FOR MAC
    case 46: // DELETE

    – it would be really nice to be able to see what instrument I’m working on (that is, the #instrPreset select box displays the selected instrument for the channel, when switching between channels). This is real easy to do in jQuery…
    – it drives me a bit nuts that your ‘default instrument’ isn’t one of the presets!

    • m says:

      Hi Eric,

      Glad you liked it – it should be even better now. Added your proposed code: key code 8 is backspace, so I think it’s an OK fix.

  4. Salvatore says:

    Wonderfull .
    I have been fan of trackers for a long time now
    I really appreciate you work

    Regards

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>