Multisampled Instruments

I was looking for a way to add sampled instruments that have 3 notes per octave to avoid sampling every single note or pitching a single sample over multiple octaves. I've seen various vsts and apps that take a similar approach.

I came across this blog post: https://pelletierauger.com/en/blog/2020/2/a-piano-for-supercollider.html

Would a SynthDef like this be the best approach or is there another way to do this with Tidal and / or super dirt?

4 Likes

Wow this looks like a cool approach. I've never tried doing something like this but it looks like it would work really well. Thanks for sharing!

I guess a sort of cobbled together way to do this inside Tidal would be to have one sample per octave (say C) which you then re-pitch using up to get the different notes. I think having 3 notes per octave might get a bit confusing in terms of sample choice, although there probably is a clever way of getting Tidal to do that thinking for you.

@ryancarlile I was thinking something similar as I have some synths that I would like to use in connection with the Tidal way of patterning.
But then I thought perhaps I should send out some midinote messages directly to the synth rather than sampling it.

What would be the advantage of following that approach?
Should I go midi I see for now two disadvantages:

  • you could not use sample packs as the one in the link
  • you lose all the SuperDirt audio effects

I am curious :slight_smile:

midi .. lose all the SuperDirt audio effects

not necessarily, you could route the audio output of the synth to supercollider (e.g., using jack) and access it from Tidal as s "in" ( https://tidalcycles.org/index.php/All_effects_and_synths/en#In ) and then add patterned Superdirt effects.

NB: you don't even need a synth - e.g., I am right now doing this,

d1 $ s "in" >| vowel "[a e i o]*3" # room 1 # size 0.9 

where the input is actually my notebook's built-in microphone - so I am processing the sound of the keypresses (and the ventilator). Gives a whole new meaning to the concept of "live coding music" ...

Probably works best with headphones - you'd get terrible feedback with speakers. Or maybe "terrible" => "interesting" ...

3 Likes

5 posts were split to a new topic: Superdirt audio 'in' - number of input channels

Here's a way to do it on the Tidal side, assuming three samples per octave for c#, a and f:

pianonote x = n (fromIntegral <$> x `div` 4) # note (fromIntegral <$> (x `mod` 4) - 1)

d1 $ pianonote "c a f e" # s "mysamples"
3 Likes

So cool this is wayyyy easier! ty

How would i adapt this if I had 4 samples per octave with the order of notes A, C, D#, F# ?

I guess you'd just change the 4s to 3s in the code.