DigiChain - web app for making sample chains

v1.2.0 is out the door.

Changes

  • Added support for slicing files in the list into new items.
  • Added the ability to resample joined files back into the list instead of downloading.
  • Sample import times are about a third faster than previously.
  • Support for drag-drop reordering of the list.
  • Show selected/total length times in the length header.
  • Added a bunch more keyboard shortcuts.
  • Allow changes to stereo/mono and bit depth, as it’s only the sample-rate that makes things wonky. [Only sample rate changes will trigger the list to clear.]
  • Show selected/total length times in the length header.
  • Fixed waveform double first render bug.
  • Tweaked height of waveform views.
  • Fixed bug in sorting selected by items.
  • Keyboard commands for managing the list (see keyboard-shortcuts.md).
  • Shift / Ctrl lock buttons so mobile/tablet users can access the secondary (keyboard shortcut) functions.
  • Improved drag-drop from the files app on iPadOS when in side-by-side mode.

Updated Keyboard Shortcuts

  • Up / Down Arrow Keys: when a sample row is highlighted, this changes the highlighted sample.
  • P : plays the currently highlighted sample in the list.
  • I : inverts the selected items in the list.
  • Escape : closes any open dialog windows and stops all sample playback.
  • Enter / Return : toggles the selection of the currently highlighted sample in the list.
  • L / S / R : changes the channel for stereo files being processed to mono.

Shift + Click / Shift + Key

  • Up / Down Keys : moves the highlighted sample up or down in the list.
  • P : plays the currently highlighted sample looped.
  • Waveform View : plays the sample looped, click again to go back to one-shot.
  • Slice Grid Number & Off Buttons : changes the slice grid size, but keeps the selected samples in the list.
  • Duplicate Icon : puts the duplicated file at the end of the sample list.
  • Move Up Icon : moves directly to the top of the sample list.
  • Move Down Icon : moved directly to the end of the sample list.
  • L S R Options : sets all stereo samples method for mono conversion (take left, right, or sum to mono).
  • Joined / Joined Spaced : audio will be resampled internally back to the list instead of prompting to save as a file (clicking the filename in the list will still allow the wav download).

Ctrl + Click

  • Slice Grid Number Buttons : prompts to enter a custom value for the slice grid.
  • Slice Grid Off Button : restores the default slice grid options.

And mobile/tablet users can get in on the keyboard shortcuts now with on-screen Shift/Ctrl button toggles.
image

Slicing incoming chains is also a possibility now, with even spaced re-slicing (just like the Digitakt does it):
image

https://digichain.brianbar.net/

15 Likes

I haven’t tried it yet but hey thanks! Looks amazing.

I’ve been looking for such a tool which would automatically, recursively, join samples into chains when I give it a top folder with many sub-folders having individual hits. I guess it’s not part of what you’re aiming for, is it?

I just tried it, amazing!

I noticed that I couldn’t click what i thought would be “select all”

Then, more of a wish: I create spaced joined files. I have two ideas about naming. One would be to add the number of slice to the file name for convenience (maybe in brackets), the other to think of a naming scheme to avoid having a generic “joined_space” name - maybe using the files parent folder as the name? Like:

[parent folder name] - joined spaced (17)

1 Like

Thanks for the feedback, yes, that button is currently a sort by selected/unselected.

I may change that icon to some text to make it more clear.

And I agree, total slice count at the end if the name is a good idea, I’ll add that in the next update.

As for the naming of the joined file, I can’t unfortunately do as suggested as I don’t have access to the parent folder of a sample [edit - folder drop support with recursion will be in the next release] (which can differ anyway as you can continue dragging and dropping from other folders).

I could prompt for a filename which would show a list of the names of the joined files in the generated file before showing the OS save dialog?

1 Like

Thanks for the answers. I wouldn’t prompt personally (I find it annoying and find it bad practice to interrupt the flow consistently).

It’s fine then to rename the files after. Or, with a field that could be optionally filled (if not filled, resort to default name) in the UI…. Maybe.

Since you can’t access the parent folder, I guess you can’t roam sub folders like I was asking earlier right?

Hello Brian,

while you´re thinking about Octatrack and sending sample chains to it.
I had a chat with Sezare about embeded loop points not converted to OT-files when using OctaChainer.
https://www.elektronauts.com/t/using-predefined-loop-points/

Probably you could consider implementing such a funtion as it would really expand the Octatracks possiblities.

I use this technique for samples with an attack-phase and a loop-phase.
Therefor I make crossfade loops in a software called “endles wav” by Björn Bojahr.
This might also be useful when using samples with the Digitat. Often build some synth sounds.
Good looping of sound-files depends on acurate transfer of loop-points.
Think of looped chords that can be further tweaked while looping endlessly. :wink:

1 Like

Maybe not possible but would be fantastic if there was a fwd-rev sample output -so when creating the chains, the app has the option to output the sample forwards then reverse within each ‘slice’.
The DT lacks a fwd-rev loop mode so this would allow for smoother looped slices using the DT’s regular loop modes.
Maybe the existing mode could be tweaked so that each slice is turned into the first half of the slice repeated twice, with the second repeat reversed.

5 Likes

As it’s a web-page, I only get details on the file(s) chosen, any info about the file system do not get exposed. I have looked at the new web filesystem api, but that doesn’t suit the needs of the app, as it allows the user to give permission to a specific folder on the os drive to have full read/write access to, but I want to allow load/dragdrop of samples from anywhere the user drags from. (This api maybe useful when I get to save/load sessions on my todo list).

What do you mean my roaming sub-folders? You can drag and drop from any folder, files from different folders will just get added to the list.

I saw that thread, and that app is a wonderful tool!

Firstly, the OT things I’m looking at are getting things out of the OT rather than going the other way, as I want a solid DT tool first and foremost.

So the “OT feature” in the next release will be allowing drop of .ot files, then on the newly added slice tool, there will be an option to slice from that loaded in .ot file, so you can get your sample chains you have already made on yout OT, into the DT but converted to a spaced slice grid file.

But I will add to the list of requests I have :slightly_smiling_face:

Interesting, this could fit in with something else I’m working on for the per sample. Suggestion is going on my list, thanks!

1 Like

Thank you very much :slightly_smiling_face:

1 Like

Thanks!

1 Like

I understand. Just to clarify, what I meant is the wish to give a tool one folder, and the tool would look in every subfolder in down the set folder, and create one chain per folder, save the files in some location etc…

1 Like

Ah, got it - this might be doable actually.

holy shit thanks for posting this is awesome

1 Like

Well, I managed to parse dropped folders - still some work to do, but its looking promising

4 Likes

Your rate and speed on this is lightening fast :zap: … so, while you’re on a roll, how is auto trim end silence doing? Combined with sub folders would be incredible for me to slim down my sample library.

1 Like

While this will read folders in, it’s not going to output back to folders unfortunately.

Per sample stuff like that is more than I can work on over a work lunchbreak, I maybe able to get to that by the weekend.

And now’s as good a time as any to add a disclaimer that I’m not responsible for any sample loss if anyone decides to write over their input files when saving stuff :upside_down_face:

4 Likes

As a side note - everyone here has been really supportive with the feedback, and feature ideas/requests, it’s made me feel really good about working on this in my evenings (when I probably should be making some music :laughing:)

Thank you to all for the encouragement, and for taking this little app for a spin!

(I’m not finished with it yet, I have quite the to-do list!!)

14 Likes

I’ve made a few chains with this and got to say it’s pretty great. Thanks you!

Just throwing this out there to see if possible. Any way to implement bpm detection? That would be insanely helpful

1 Like