Easy (auto) loop slicer would be really useful. Please help!.

Hi!

im sort of obsessed with this project but I just can’t do it right, it’s beyond my current knowledge.

I want a “Sampler for dummies” for a fast workflow, where I want ro extract snares, bass drum, etc from a loop. Say a loop has 3 snares in it, then I’d like to have those 3 slices triggered (random or round-robin).

Take this example:

That’s an imported loop that makes 8 slices. There’s 4 snares there at slices 1,4,7,8. I’d be super useful if I could just tell Drambo what the “good” slices are instead of having to isolate them elsewhere. Just pop a loop and tell Drambo what slices you want to use. Like with the CV sequencer above... Set to the number of slices, with a “on” on the ones you actually want to trigger. With my limited knowledge I could make so that it only triggers on the correct slices, but that’s no good as you’d get silent triggers, it should move forward to the next “good” slice on every trigger.

This would really make it a breeze to get a nice loop and use elements from it. It could be further expanded with an approach like @bcrichards ”SP Flexi”.

Any ideas?.

I can’t see how to “move” the cv sequencer playhead to the next “on”.... to use “slice from offset”

Maybe a good approach would be to trigger a note that corresponds to the correct note and use “slice offset from note”. It’d need to loop through the correct notes... in this case corresponding notes for slices 1,4,7,8. Ad I write I think I can do it but when I get to it I just keep failing. Maybe there’s already a patch that could serve as a starting point but I haven’t found it.

I hope I explained correctly. I think it’d be a really fast way of working.

My current workflow:

  • I load the loop in a flexi, set to select slices by note
  • set up a pattern to play the “correct” notes (only snare slices, for example)
  • record the output into a second flexi, thus a new file with only snares, save that file
  • use that file in random or round-robin flexi.

It takes some time, with the “Slicer for dummies” I’m thinking of you could use the same loop and just point out where the snares occur, then where the bd occur, the hh... it’d be a LOT faster and straightforward.

Help me out!.

Comments

  • Yeah ignore/hide slice would be super useful... lot of the time with random/round robin slices we have couple Slices we dont want triggered... It’s on the feature request list for Flexi V2 :)

  • But isn't there a workaround in the meantime?. There must be...

  • Use Flexi into Sampler and auto sample on key? Remove the pitch input from Flexi so you get the right pitches.

  • ...also, if you trigger your favorite slices every 16th, 8th, 6th or 4th note then you could simple load the pre-set slice grid in Flexi and there you have your perfect slices with e.g. one Flexi for kicks, one for snares, another for cymbals etc.

  • i believe this is what I’m doing. I load the loop ina flexi, slice, then set up a pattern triggering only those slices and record that into a second flexi. It works but it could be a lot faster.

  • edited December 2020

    Hi again,

    I made some advances, sort makes sense but it’s far from perfect. It does illustrate the idea and certainly seems quicker. Here’s a link to the project if anyone wants to take a look, id really appreciate some feedback, other ways around or improvements.

    My intention was to use a cv sequencer to trigger the correct slices, but I haven’t figured out how to. So I resorted to using notes with a Note Quantizer. Thus you can choose the slices that should play by restricting the notes.

    I’m taking a random approach (literally) generating a random note value in the scale, which being a novice I found pretty hard to do. Then that note is quantized to the closest allowed value (slices that we want).

    I added a switch to be able to play the notes and figure out the ones that correspond with the slices. Not that bad, it’s pretty convenient.

    problems:

    • I had a major problem with what I believe is an issue with the CV Quantizer. The C2 note (first slice) would trigger even if it wasn’t on the note list. If I added say a C# the issue would be minimized. Seems like if the random note is not close enough to an allowed value it triggers anyway. Or maybe a problem with C2 being 0... don’t really know but it’s weird.
    • random means “anywhere on the audio file timeline”. Which means in many cases the result is not really random. Say you have 12 slices total, you want to isolate 4 snares... snares 1,2,3 occur in the first half of the file, while only snare 4 is on the second half of the file. Snare 4 will be triggered a lot more, being random, like 50% of the times, leaning the other 50% for the other snares... (16,6% each).

    To minimize both of the above I added a dirty “skew prob” graphic shaper to influence on the zones that would get more probability in the randomness. Also cheat on the “shouldn’t be there C2 notes. If Giuliani finds out he’s gonna rip me apart!.

    So it’s far from perfect. It’s only random, not round robin or velocity and clunky randomness. Also, if there’s more than 12 slices (notes) Trump will call the governor.

  • edited December 2020

    Wow @Tahiche, thumbs up! That's the Drambo way of doing it! 😃

    Would a patch that allows for "sorting" slices in any order help?

    Think about note pitch as nothing but a voltage number. Flexi will already "quantize" it by choosing the nearest slice according to the incoming pitch voltage, errm, note 😉

    Now if you think about that concept in Drambo, there are more modules working with such voltages. Take the CV sequencer for example. It will receive a time signal (which again is nothing but a voltage) and spit out another voltage that you can control by moving the green slider on that step whose position is defined by the incoming voltage again (i.e. the time signal).

  • edited December 2020

    Example: Take this one for Sugar Bytes Egoist kind of slicing:


    "Scale X_6" is fed by note pitch from MIDI2CV, the CV sequencer Y grid is set at 24 with "Snap Y"=on.

    "Scale X_0.25" scales the CV output to match note numbers, remember that inside Drambo, adding 0.125 represents one octave, and adding (0.125 / 12) represents one semitone.

    The CV Sequencer's Time input is connected to "Scale_X6" and Flexi's pitch input is connected to "Scale_X0.25".

    By moving the CV Seq sliders, you can effectively change the slice mapping on the keyboard, even live while playing a note.

    Here, I've chosen a grid of 24 values as a compromise: Supports up to 24 slices while still not being too fiddly to adjust.

  • Thanks for the comment and encouragement @rs2000 .

    im starting to grasp the “voltage” concept, it’d help if there was an easier way to monitor what’s going on for newcomers. Like actual numbers vs the oscilloscope. I did figure out the 0.125/octave relationship but it’d be so much easier actually seeing the number. I use the graphic shaper a lot to try and read what’s happening.

    Would you care explain why “scale X_6” is actually 6?. I have to think about every single detail , far from fluent 🥲🤓

    Great discovery setting the clock input of the CV sequencer to notes in your example, open up new possibilities. But I don’t think it’s the case here, or I’m missing something. I know step seqs are the way to go, but I believe I’d need 2, one to gate input and that should advance a second one with the note mappings. Right?. I’ve never been able to sincronize 2 cv seqs, the second one is always a step behind in the reading...

    thanks for your help!

  • @Tahiche

    Yes, signal voltage indicators have been requested and announced a while ago and @giku confirmed it's on the to do list.

    Multiplying the pitch signal by 6 is necessary to scale 16 consecutive semitones on the keyboard to 16 steps range in the CV Sequencer.

    You don't need to understand any maths behind that, you can easily find such values by trial and error (set scale to 50 and turn the knob until the sequencer covers the full range, for example).

    Try this one:


  • @rs2000

    I checked out your project and it gave me some ideas as to how to map CV steps to slices. It seems “cleaner” than the note approach. Also there’s not te problem with the CV Quantizer letting through C2 notes. It’s pretty solid as I see it.

    Theres 2 modes, round robin or random (has to be manually connected, I couldn’t figure out if it was possible to have both time and gate connected but ignore or the other). I also your speed CV changer... that one is interesting, it feels “better” than changing pitch, more musical. It’s nice to set that up on a different number of steps so you get extra variations, makes it very organic.

    I like it!. I attach an example with the same loop used to play kick drum, snares and hi hat. It’s a lot faster than having to isolate them by hand.

    Here’s the project file.


    As a side note, I have mixed feelings about Drambo’s “way” when it comes to stuff like this, but it’s got to do with my background. I do like the “cv” concept, I guess it’s how you go about analog synthesizers, that’s awesome and a very valuable lesson. On the other hand, I wish there were things like Arrays, where I could just say slices=[2,8,11] and get it over with!. Randomize them or whatever. Mozaic is more like that. But I suppose it totally defeats the Drambo concept. Giuliani would be really mad at me if he heard me!.

    I think this is really useful!. Thank u for your help @rs2000 . Would you check it out and see what you think?. It’s fast to get elements out of a loop plus you can easily incorporate variation and randomness out of the box. I might actually make some music now!!. Cheers 🙏🤟

  • edited December 2020

    Excellent enhancements @Tahiche!

    I'm happy that you find my approach to be a musical one. That's why we're in it, right? 😄

    As for the array concept, I've been using the Graphic Shaper quite extensively in the past and for linear arrays it works well enough IMHO... Where it lacks is a straightforward way to set multiple output values for a single input value.

    My dream is a "polyphonic" matrix sequencer module like the Gate+Velocity sequencer but with as many outputs as its vertical grid adjustment and each added square has a "velocity" value. This is going to create a whole lot of outputs quickly but I think that a maximum of 16 gate and 16 velocity outputs should be sufficient.

    I requested that a while ago when trying to build something like the Moog MuRF MF-105: Say you have 12 filters to be controlled individually and you want 20 different sequence patterns to choose from. Without such a module, things get awkward fairly quickly unless you really want to dedicate a whole project to do only that.

    • You could use CV+Gate sequencers for each filter separately but editing the sequence would be a nightmare, involving a lot of scrolling, closing and opening sequencer windows and making sure you don't accidentally edit the sequence of the wrong filter
    • You could use track sequencers for each row and switch patterns but then you can't write your song anymore 😅
    • You could use a very long polyphonic track sequencer pattern, hack different presets into the pattern and use step components to define a loop range but that will also destroy the songwriting flow
    • Any other ideas?

    @giku This would be another "atomic" @giku module that I find hard to build with existing modules.

    Note: Adjusting the (velocity) value of one step could be done using a slider inside the grid editor.

  • @rs2000 Although I don’t fully understand your Moog filter example I get your point. Although you an build pretty much anything, without premade modules that encapsulate functionality, these things can “engulf” your project. If you need 88 modules and a complicated routing to do a filter, you’re likely not gonna want to incorporate that in many projects.

    Hoping I’m not abusing your help, I got a couple of questions:

    • ”Null connection”: in the case of the image below I want to switch the behavior of the cv seq. If set to “random” the time (yellow) should be connected to the random output, so the step is determined at random. If set to Round-robin, the clock/gate (blue) Is connected to the gate input, so it advances once at a time. In both cases the other connector has to be disconnected, so it’s “one or the other”. This means manual connections, where ideally I should be able to use a N-1 switch to determine the behavior. Is there a way to “disconnect” a connector?. I tried using a “midi to cv” that was not connected to anything, but it still counts as connected so if I have the gate connected (Blue) the watch (yellow) doesn’t work... Bufff, I hope it’s clear ...


    • Syncing a cv sequencer to another cv sequencer: sometimes I want to have 2 cv sequencers, where the second one reads the value of the first. For example CV seq 1 has 4 steps that are transformed to notes at the output. You connect that to cv sequencer 2 that reads the value of the note in the current step and does something with it. It seems like since both advance on gate, the second cv seq doesn’t read the current, updated, step value of cv seq 1 but the previous one.... The read value is always one step behind. It makes sense because both advance on gate so at that moment the value corresponds to the previous step. Another bufff... another “hope it’s clear”.

    Thank u so mucho much!

  • @Tahiche No worries, I'm still learning too from the different questions that I've never thought about before.

    About the disconnect: Yes, that's both a feature and a limitation of the sequencer modules.

    About the 2 synced CV sequencers: They only advance by a gate signal if you connect it. Seems like what you really want is to use the CV output of the first seq. as a Time input on the second seq.


    @giku Is it really necessary to disable time input once the gate input is connected? I think that both can work together. When time changes, the sequencer position reflects that. When a gate trigger is received, the position is increased by one step, no matter where the time signal stands. Only with the next change in the time signal, the sequencer will jump to the new absolute position defined by the time signal. This would require that the sequencer detects changes in the time signal and keeps the different position created by the gate signal until the time signal changes.

    One could keep the old behavior by only connecting one of the time or gate inputs.

  • Yes it would be possible, but let me think about this ... im not sure its clear enough

  • edited December 2020

    About the 2 synced CV sequencers: They only advance by a gate signal if you connect it. Seems like what you really want is to use the CV output of the first seq. as a Time input on the second seq.

    I don’t think I want a time input. Specific use case... my main CV sequencer determines how many slices there are, and where they’re mapped to. So 4 slices mean 4 steps in the cv sequencer.

    now say I want to add more cv seqs like your “speed mod”, maybe for attack/release, volume per slice and so on... I don’t want to have to change all those cv seqs instances to 4 steps. I should be able to keep them at say, 16 but reset them with the main sequencer. That is, on step 0 of the main seq, the value is cero, I should be able to reset the other cv’s when the main cv value is 0. Right?. Using gate, the reading of the main seq is late, it’s one behind. When the main seg is at step 0 the second seq is actually reading the value of step 4, the previous one. So it resets one step late and it’s out of sync.

    i believe when the gate is triggered it does so on both seqs at the same time, which makes sense. At that moment seq 2 reads seq 1 value before the gate... so it is one step behind when they should be on the same step. This is not only for restetting but also for reading the value.

    I’m so abusing your help!. 🙏🙌

  • edited December 2020

    @Tahiche Did you know that you can use the Delay module for all kinds of signals, no matter if it's time, gate, reset or whatever? (well, except WT/spectrum signals that is ;)

  • I didn’t know, just like I don’t know 73% of the possibilities 🤓

    It makes sense, but I tried but I couldn’t get it to work. I realized it wouldn’t serve the purpose anyway. For it to “reset” the cv seq the value has to be 0, and it doesn’t have to be. I wish there was a way of reading what step you’re on in the cv sequencer, I don’t think you can.

  • You can only read the CV signal that goes into the CV seq, if you advance it using gate triggers then your only way of retrieving a certain position is to add a second CV seq which is also triggered by gates and set one step to maximum, the others to zero.

  • Makes sense.

    I do wish there was a way of knowing what beat/step you’re on without another cv seq, It’d simplify things. But I can see how all these things I wish “were there” probably go against the nature of Drambo, of being true to a modular “old school” approach.

Sign In or Register to comment.