Audiohit & ot_utils - CLI and Rust Library for the Octatrack

Hey everybody.

Today I’ve released ot_utils, a Rust library for concatenating audio samples and generating .ot files for the Octatrack, as well as a new update for Audiohit, my command-line utility for auto trimming audio samples, that adds the ot_utils functionality to Audiohit.

While we’ve had incredible tools such as OctaChainer for a while, I’ve been getting a lot into Rust lately so I decided it’d be interesting to make a library that would facilitate the workflow of concatenating multiple audio samples into a single wav file and automatically generating an .ot file.
This is very similar to Octachainer’s Octatrack slices feature except it’s made as a Rust library so people can integrate it into different projects (a huge thanks to Kai Drange for open sourcing Octachainer so I could use it as reference for the .ot file structure).

This first version is somewhat limited (only 16-bit, mono, wav files) but it should be very useful, specially for grouping drum samples.

For those interested in using the ot_utils in a more user-friendly way, you can now use the ot_file true argument in Audiohit.
Using Audiohit + ot_utils is a great way of automatically trimming, concatenating and generating the .ot file for the Octatrack. It should save time, RAM and disk space.

Anyway, this is definitely a more nerdy alternative to GUI apps such as Octachainer but I hope its useful to some of you.

15 Likes

Not sure why there are not more replies to this. In any case, thanks for your work on this!

1 Like

You’re welcome! I’ve been working on both AudioHit and ot_utils for these past 2 weeks and adding some new features here and there (such as speeding up samples, reducing sample rate, etc).
My next goal for AudioHit is to add support for stereo and 24 / 32 bit files, then I’ll try to work on a GUI for it to make it easier to use.

I’ve also been thinking about making a tutorial for it since there’s a lot of people that are not used to command-line utilities.

1 Like

Could you break down the most basic commands needed to get started?

Would it be possible to have it running on an iPad and use it like Elkherd with those extra awesome features on top - that would be such a gamechanger - better than Overbridge :smile:

You’re a legend! Thanks for your work man, we need more people like you!

1 Like

I’d recommend checking out the Arguments section of the repository as it contains all the different commands available.
If you just want to create a simple sample chain for the Octatrack without changing anything about the samples you can just use --folder to specify the folder containing the samples and --ot_file only to generate the concatenated .wav and .ot files.
So it’d be something like this: ./audiohit --ot_file only --folder /path/to/folder/

The ot_utils library could be compiled for iOS and it should be fairly easy to implement it in an app but Im not sure if it’d be possible to run a compiled binary directly.
It’d also be possible to make a web version of it similar to Elkherd but the cost of running a server for that would be considerably more expansive since it’d envolve a lot of file uploading / downloading.

Pack it into Elektron? Like everyone does nowadays, right?

Also I wouldn‘t want a ‚cloudbased‘ solution if I could have run it as an App offline.

Haha yeah, I guess that would be one option tho I’m not a huge fan of frameworks like Electron. Unfortunately Rust doesn’t have a proper native GUI framework yet so I think the easiest solution would be to put together a cross platform framework (such as TK or QT).

I definitely agree a native app is much better than a cloud version. I’m a big fan of automating everything so the CLI ends up being the best option for my personal use.

Any chance of adding splitting of files with multiple hits? I do this now with sox but it never works quite right. ie. one file of multiple hits, split to individual trimmed audio files?

That’s definitely something I’ve thought about but the issue is that strip silencing multiple regions within the same file can be a bit more complicated and would require me do re-write some parts of AudioHit.
Definitely on my list tho.

1 Like

Just released a new 0.6 update that includes the option for splitting files into multiple samples and many other features (automatic file conversion, new modes, etc).

The split option is not perfect but it has worked well enough in my tests. It’s also possible to concat the split files back into a single and create a .ot file using the --ot_file true argument.

1 Like

nice! will give it a go!

Apparently. Any video demo?

I use Octachainer, Wavesaur seems to work nicely for transient detection, slicing.

I haven’t made a video demo for it yet but it should be quite straight forward to use. I’d suggest checking out the example workflows that I’ve included in the GitHub repo to get an idea of what it can do and how to use it.

There’re definitely other apps that can be used to achieve similar results (like Octachainer which is great) but I’ve found that, in order to do what I wanted, I always ended up having to use 3-4 apps.
I can now use a single command with audiohit to split a single .wav file with a bunch of multiple one shots, convert them to 44.1 / 16, automatically trim, fade in and fade out each sample, speed each sample by 4x, and finally re-group them into a single .wav / .ot file for the octatrack. I find it to be much faster than trying to navigate multiple graphic interfaces.

1 Like

Depending on the audio material, sometimes I have to check, listen, adjust settings to have correct splits…something visual can be interesting to check if the splits are ok, and you can delete unwanted ones…