tahti.studio – a groovebox for the browser

hello! i’ve built an 8-track groovebox that works entirely in the browser and is free to use: https://tahti.studio/ i thought there might be people here who would appreciate such a thing :slight_smile:

some key features:

  • sample-based sound generation with support for single-cycle waveforms
  • almost all parameters can be modulated on a per-step basis
  • each track has a multimode filter, distortion, frequency shifter, sample-rate reducer, and amp envelope
  • three freely assignable modulation sources per track (essentially flexible LFOs that can be used in one-shot mode)
  • steps have micro-timing, retriggering, probability, and trigger conditions
  • tracks can have individual lengths and sequencer speeds (the latter can even be step-modulated, because why not)
  • four send effect: chorus, phaser, reverb, delay
  • a master compressor and soft clipper
  • macro controls for working with all kinds of inputs (check out the shortcuts)
  • pattern sharing via secret links
  • rendering patterns to .wav

it’s got a default library with some samples and demo patterns made by friends and myself to get you started, but you can also use your own samples. unless you decide to share patterns, everything happens in your browser and nothing is uploaded to any server. unfortunately, it doesn’t currently work on touch devices, only on desktop. there is no documentation yet but hopefully it’s understandable by trial and error, and by referring to the tooltips. if you’ve ever used a groovebox, it should be pretty straightforward!

there are also quite a few randomisation features both for serendipitous exploration and for just creating patterns that never repeat themselves in the same way. one example of the latter is the “infinite drummer” factory pattern: tahti.studio/mpyedkjk)

play with it and let me know what you think!

p.s. i didn’t post in the “equipment” category since it’s for commercial products, which this is not (so far). feel free to move in case this is still in the wrong category!

34 Likes

Very cool. The info box says it’s powered by Soul. Curious, what was the development experience like if you don’t mind me asking?

Did you have to use (or write code for) the Web Audio API itself, or is that all abstracted by Soul?

1 Like

Really, really solid work. I think it’s the first thing I’ve seen that truly captures an Elektron-style workflow in software. Very cool.

4 Likes

Hm, I got a “sorry, touch devices are not supported (yet)” error, but I’m on my computer’s browser. (Feel free to message me if you need more details.)

1 Like

I believe that’s just a warning in case someone with a touch interface had arrived, you can just move past it and use the browser.

2 Likes

was just coming to say that i turned it into a dismissable warning :slight_smile: at the time @naxuu tried it, it still prevented entry completely. hope it works now!

i’m compiling SOUL first to C++ with their tooling, and then converting that to WebAssembly using emscripten. so yes, i need both a thin C++ wrapper and some JavaScript for using the generated wasm code in an AudioWorkletProcessor. despite all these steps, the development process is actually quite nice! recompilation from SOUL to usable JavaScript takes only a couple of seconds. the initial setup did take some iterations to get right though, but didn’t really have to touch it since.

much appreciated, Ess! i’m a huge fan of the Digitone, which i actually used to create all the percussion samples in the “tahti essentials” pack :slight_smile:

3 Likes

Yep, all good. Thanks!

1 Like

This is really awesome and I’m excited to play around with it! I’ve got a eurorack sample pack that I’d love to contribute to the included samples, if you’re looking for more stuff to include.

1 Like

The more I use this the more impressed I am, this is a very full-featured product that you’ve put out there for free. Mazel tov!

A bug? Observation? With a trigger selected (there is a box around it), the track Mute / Solo buttons are no longer responsive.

2 Likes

thanks for pointing this out! should be fixed now.

1 Like

Incredible work! This is truly one of the best and most fun browser based music creation tools I’ve tried!

i’m compiling SOUL first to C++ with their tooling, and then converting that to WebAssembly using emscripten.

can you explain to me why you go from SOUL → C++ → WASM rather than from SOUL → WASM? Isn’t the SOUL compiler capable of targeting WASM directly?

1 Like

the SOUL to wasm compiler only provides an API for passing parameter values to the patch (iirc). i needed to pass other data as well (samples, for one) which is why the custom solution was needed.

1 Like

i’ve released a new version today that (among many other things) fetches the default sample library from an open-source repository: https://github.com/tahti-studio/tahti-default-library this allows for new sample packs to be added more easily.

if you’re still interested in contributing samples, let me know! (can’t send you a DM for some reason)

1 Like

You haven’t reached the level of activity the forum software designates as “member”. Post, read, and like in more threads to unlock.

1 Like