Bank (new tidal feature: what do you think?)

I've just pushed a little change to the SuperDir develop branch that allows you to specify a sample "bank". This is not more than a prefix to a sample name, but it makes it easier to work with sample banks.

Testing it with the drum machines:

// first install this repository

// then add this to your superdirt startup
~drumMachinesDir = Quarks.all.detect({ |x| == "tidal-drum-machines" }).localPath;
~dirt.loadSoundFiles(~drumMachinesDir +/+ "machines" +/+ "*" +/+ "*", namingFunction: { |x| x.basename.replace("-","")})

(type:\dirt, bank: \rolandtr909, s: \cr, n: 0).play;


love this idea! it would be super useful for me. I have like a very particular sample naming system and this would really help while coding!

also saw your issue in the drum machines repo, looks amazing I'll add it to the readme soon

I was actually thinking of asking you if there was a way to optimize it so you totally read my mind lol

also may I suggest you change the title to "bank (proposal for a new tidal feature)" in order to catch more people's attention and have their opinion and use cases here heh

good point! I wasn't sure if "bank" is the best name, but all the others that I thought of were not better.

1 Like

Oh yes, this is a nice topic!

Btw. @geikha I love your drum machine a lot! And because you asked for use cases (yeah!)
I implemented a custom drum bank mapping for my setup (which is indeed pretty dirty implemented :see_no_evil:).

And I am not sure whether this is applicable, but I have three use cases in total for this:

  1. The "classical" sample bank. I.e. when I use the sample bank chiptune then I play a specific set of samples (like the drum machine is doing)
  2. I use a multi sample pack with the Kontakt vst sampler in combination with TidalVST.
  3. I simply send midi to an external drum machine.

As a parameters of the s function I only use values like bd, sn, hh, tom etc. to reduce the mental load during a performance. But I can switch between samples, midi and vst plugins, if needed.

Edit: TidalVST is using midi internally so it's a similar use case. But for a little bit more context: I need to map a midi notes to a sample name i.e.

~dirt.soundLibrary.addSynth( \modernbd, (play: {
	var event =  ();
	var result =  ();

	eventmapper.value(event, result);
	notemapper.value(event, result, 0, -36, 1);;

~dirt.soundLibrary.addSynth( \modernsn, (play: {
	var event =  ();
	var result =  ();

	eventmapper.value(event, result);
    // i.e. 5 different play styles 
	notemapper.value(event, result, 0, -34, 5);
	notemapper.value(event, result, 1, -33, 5);
	notemapper.value(event, result, 2, -32, 5);
	notemapper.value(event, result, 3, -31, 5);
	notemapper.value(event, result, 4, -30, 5);;

~dirt.soundLibrary.addSynth( \moderntom, (play: {
	var event =  ();
	var result =  ();

	eventmapper.value(event, result);
         // i.e. 4 different toms
	notemapper.value(event, result, 0, -27, 4);
	notemapper.value(event, result, 1, -25, 4);
	notemapper.value(event, result, 2, -23, 4);
	notemapper.value(event, result, 3, -21, 4);;