DigiChain - web app for making sample chains

I think it was this thread (possibly) where someone mentioned the technique of ‘back-to-back’ samples (my terminology, sorry) where the first half of the sample is normal, and the second half is a related sample, a variation of the first, but reversed. The idea being, on a sample trig lock, you can lock it to reverse for the variation (and set the sample playback length to half) ?

Was it this thread, and if so, does DigiChain support this technique ?

Thanks, and welcome to the forum!

I started this originally just to pull the audio data out of some MachineDrum sysex files, expanded on that to join the samples to use on my Digitakt, then decided to share the tool here.

Prior to this, I hadn’t done much in the way of audio programming, so this was mostly just me learning about the web audio API’s and what’s now possible with those in the browser, and it’s just evolved from there.

I actually added tempo detection for the last update as it was needed to correctly calculate the metadata in the .ot file generation, I plan to surface this to the edit panel to work on the selected part of the waveform.

This wasn’t originally intended to grow to such a large project, so there are no JavaScript frameworks used, and other than for bundling/minifying the source, no npm dependencies, you can just pull the repo and serve it locally. I write software as my day job, but I like my own tools and side projects to be as dependency independent as possible, the third party tools it does use are few, and are at the bottom of the resources.js source file with their repo links in the header comment of main.js, this is also all vanilla-JS, HTML and CSS.

Probably quite a lot of challenges, the web audio and file handling are part of the JS / browser specs, so unlikely to exist outside of the browser if porting to non-JS.

You’d probably have to wrap it in something that uses webview, like Tauri, build that wrapper app and use the JS-otherlang bridge to pass data around.

There are lots of tools around that do what DigiChain does, but you have to bounce around between apps to do all the parts, and is one of the reasons I continue to add things I think “would be useful if it just could do x too!”.

6 Likes

Is this the “Ping-Pong” selected action? For each selected sample in the list, this adds a reversed copy of the sample to the end of itself.

2 Likes

I will check that out thanks

1 Like

Very nice feedback :thup:

2 Likes

A use case mostly for myself, getting slices and samples directly from Renoise .xrns project files.


6 Likes

Actually no, what I wanted was something like this

image

Where those two ends of the sample started life as two different samples, A and B, and what you see is A (forward) followed by B (reversed from the original)

I did this for myself with a script using sox in the end.

The motivation for this was to get two alternate sounds on a track, just by hitting the reverse button on model:samples. Two alternate kicks for example.

2 Likes

Got it, I’ll add a back-to-back toggle in the settings where each even sample would be reversed in the exported chains, for spaced chains the reverse will happen after the sample has been padded to maintain the correct lengths for slice grids.

2 Likes

Anyone use this with the new slice machine to get round robin sampling going?

My thought was that you could random lfo the slice and then put a bunch of ‘acoustic’ drum sounds in there like ableton and then get some variation. In my slim attempts tonight (being brand new to digichain) I wasn’t successful. I don’t exactly have a great set of round robin drum samples lying around though I did dl these for free: Round Robin 808 R&D - Test Kit - The Sample Company. Before you go digging, the ones ion the ableton ‘packs’ are custom .aif files and I don’t thinka re worth your time unless you create a script to clean+convert them or something)

Settings I’m trying:
Slice set to 9/16
LFO w/ Depth of ~15.7~?*
LFO HLD

*64 slices in the setting so LFO depth may be off, but for the idea it jumbled it enough. I’m not caring enough to do the math but its what, 8/64 x 127?

Here are the ‘chains’ I made to try with:

(You should be able to right click save as)

Getting a lot of clicks with low end stuff if played too rapidly- to be expected. The snare worked… ok (they were inconsistent in the sample pack). Hat worked better… Anyone try this or know where I could get ~8/16/32 nicely sampled and normalized acoustic drums (legally) for free 99 or cheap? (Realizing this is a large ask…)

Here is the result with these largely bunk samples (in the 8 snares there are 4 tom-ish sounds lmao)
This pattern is uhm, quite bad. the hope was to example to the variation.

Also realizing the samples ‘voice steal’ from one another, so this may be a bit of a daft pursuit. I was hoping sending them to the verb + comp could create a more ‘room’ sounding kit but I’m giving up for the night.
Ok last edit 4rl, I needed to add some comp+verb. Better example, perhaps?:

I feel like this ~could be used. Thread is long, I didn’t read 500 posts. I know people have solved this before by round robin’ing through sample slots but I figured this tool could make it easier.
Pros:(?) You can get some variation in your pattern
Con: You lose an LFO, you are stuck in slice mode on a one shot…

Lots of good quality sample freebies over at Music Radar - and you can normalize and trim directly within DigiChain, I just quickly sliced your cymbals chain back out to hits, normalized, trimmed, then recreated the 16 hit chain.

1 Like

now thats useful!

If I find a better pack of acoustic hits I will be back, with chains!

1 Like

And I’d be remiss to mention that SamplesFromMars are some of the best samples I own, and they will be doing their usual blow out price Black Friday sale from tomorrow at likely ~$50 for the whole collection.

2 Likes

Perhaps blasphemy around these parts but I’m trying to recreate something a-la ez drummer, superior drummer, or steven slate drums. Personally looking for acoustic drum sounds to try this with as I play rock music w/ my friends. Not that electronic drums cant fit in there, but I have a bit of a dream

1 Like

Ok with some ~slightly better samples and a better pattern its seeming like an ok idea. still need to find some better source samples but this aint half bad for the effect I was going for. throw in some velocity changes and we could be somewhere

69bpm

100bpm

2 Likes

Haaaai!
This Software rocks my Octatrack. Thank you!

May I ask: Is it possible to save projects and reload them?
Like I want to revisit my kicks and edit a little bit after I’ve done other stuff.

Other than that: Thaaaaaank you very very much!
:heart:

1 Like

Thanks! I’ve been kicking around a few ideas on a session file format, I’ll probably push that in the next update once I’ve decided on how best to handle the reload.

For now, you can always load in the wav file and the .ot file from the Octatrack, as it reads the slice information out of .ot files; If you are wanting to re-arrange the slices, you can use the slice panel -> slice to samples, to slice back out to individual slices.

1 Like

That’s a nice workaround.
I need to say: Impressive work! Thank you!!!

1 Like

You could enable that functionality for all formats and call it samplelist?
If you do that it’s done?

so you have one wav and metadate (ot for all depth, samplerates…)

Not sure I’m following?

By default, slice data is embedded in the generated sample chains, so if you drag a chain that DigiChain made back in, then goto the slice panel, choose the number button that has the DC red icon on it, and then your slices are there (spaced or not), along with the file name of the file the slice came from, so slicing back to individual samples, will restore that slices sample name. (This is of course provided that you don’t have the embed slice data option disabled in the app settings!).

For the save/load session, its more to keep the contents of the list in a session file, rather than just those in the chain that got generated, along with the sample-rate, bit depth, container info for that saved session.

1 Like

brian3kb, thanks for the great utility.

Any chance someone could ‘check my work’ for me? I have a Digitakt in a cupboard somewhere out of reach for a few weeks until I hit the big 40, but wanted to get a head start making some sample chains of drum kits from the Samples from Mars everything pack I grabbed on sale.

I think I have done the right thing, but with no way to check on the device, I don’t want to repeat the procedure another 50 times only to find I messed it up and have to do it all again.

I loaded up 16 samples from a 909 kit, shortened any that had a long silence on the tail, ordered them, selected 16 in the top right of the page, and then clicked the ‘1 Spaced Chain’ button.

Have I missed anything? Anything I should think about doing differently?

Many thanks

1 Like