Sample start, loop start, loop end (and ‘phase’) on a sample oscilator

Would it be possible to get some clarification on how these exactly work?

I’m thinking about how possible it would be to do some slightly more ‘interesting granular’ stuff with Obsidean by modulating these values (kind of like what’s possible in a synth like Mood by Amazing Noises).

So, seems like ‘sample start’ is calculated as a percentage of the total sample duration with the default being 0% - ie ‘start from 0% into the sample duration’.

How is ‘loop start’ calculated then? Same as sample start?

And how about loop end? Same again?

And what happens if ‘loop end’ becomes a smaller value that loop start? (Does it play backwards?)

And finally, what’s a easy way of running a looping playhead along a sample? Eg 10th of a second of smaller duration continually looping, but you move the loop start and loop end points together slowly through the sample. (I’m wondering if perhaps moving the ‘phase’ parameter might do the trick here?).

I’m away from the iPad right now so can’t dig in but I was wondering if anyone actually knew exactly how these parameters worked on the sample oscilator?

Any help appreciated.

Comments

  • edited January 3

    every parameter (sample start, loop start, loop lenght) can be modulated in range -100 .. +100, but just values which makes sense are accepted by engine, rest is ignored and last accepted value stays set

    • obvioudly you cannot set negative offset to sample start, so it really accepts just values >= 0
    • sample start cannot be after loop start
    • loop length cannot be < 0
    • loop start cannot be < 0

    in all modulations "100" (or -100) is always equal full length of sample

    so for example, if your loop starts at position which is 25% from beginning of sample, you can modulate it just from -25 to + 75 - rest ist ignored because obviously values bellow -25 or above 75 would shift it outside sample. On other side, sample start accepts in this case just values 0..25

    btw modulation of loop length or sample start is quite smooth, but if you modulate loop start you get lot of clicks.. probably it is because in this case case you move whole loop (because second loop parameter is not "loop end" - it is "loop length)

    modulation of loop length works pretty well, if you shrink loop lenght a lot, you get to area where it is playing almost single cycle so it really sounds like simple oscillator :-)

  • @dendy said:
    every parameter (sample start, loop start, loop lenght) can be modulated in range -100 .. +100, but just values which makes sense are accepted by engine, rest is ignored and last accepted value stays set

    • obvioudly you cannot set negative offset to sample start, so it really accepts just values >= 0
    • sample start cannot be after loop start
    • loop length cannot be < 0
    • loop start cannot be < 0

    in all modulations "100" (or -100) is always equal full length of sample

    so for example, if your loop starts at position which is 25% from beginning of sample, you can modulate it just from -25 to + 75 - rest ist ignored because obviously values bellow -25 or above 75 would shift it outside sample. On other side, sample start accepts in this case just values 0..25

    btw modulation of loop length or sample start is quite smooth, but if you modulate loop start you get lot of clicks.. probably it is because in this case case you move whole loop (because second loop parameter is not "loop end" - it is "loop length)

    modulation of loop length works pretty well, if you shrink loop lenght a lot, you get to area where it is playing almost single cycle so it really sounds like simple oscillator :-)

    Thanks. Very useful.

    I’ve managed to get to my iPad now and try some stuff out.

    I’ve got a 25 sec sample in there, so initially I was annoyed that I had to play the whole 25 second sample right through before it started looping the ‘almost single cycle’ loop. But then I realised that I could assign another knob to control ‘sample start’ and push that right up to 100 - which has the effect of starting to play the extremely short loop straight away (presumably because ‘sample start’ is moved right to meet ‘loop start’).

    So that’s great - gives me that kind of granual looping playhead thing.

    I was then finding that even 1% of 25 seconds as ‘sample length’ wasn’t giving me a short enough loop, so I used another macro knob as a negative multiplier (very useful) on my ‘sample length’ knob, which seems to have the desired effect of giving me much smaller (finer) values than 1% for sample length. So again, all good.

    I can then slowly modulate ‘loop start’ to my hearts content (I’ve gone for with an envelope plus a random LFO) allowing me to move the ‘playhead’ around even while I just hold one key down triggering one note.

    This was exactly what I wanted.

    You’re right, it can be a bit ‘clicky’ but for the texture thing I’m going for I found a mixture of low pass filter, 3 voices with detune, some ensemble plus delay and reverb got rid of any clicks and left me with a nice haunting granual texture thing, I then mixed with a simple triangle osc.

    Only one question... what does setting the ‘sustain’ portion in the actual sample edit window do? Is that the same as the ‘loop section’? And does that get completely ignored once you start setting loop start and loop length from within the preset?

    Again, thanks very much for your help on this!

  • @dendy this would be a good one for T&T

  • edited January 4

    But then I realised that I could assign another knob to control ‘sample start’ and push that right up to 100

    There is even more easy way to do this - you DON'T need to use knob.. check mod matrix, there is source type "Const One" - if you make mapping Const One > Sample Start it always starts on your requested position ;)

    what does setting the ‘sustain’ portion in the actual sample edit window do? Is that the same as the ‘loop section’?

    Exactly. Until there is not saved sustain portion (to be very exact, area marked as sustain loop is simply looped during "sustain" phase of amp envelope. Which is exactly what looping in sampler does :) Just nerdy exact definition :lol:

    And does that get completely ignored once you start setting loop start and loop length from within the preset?

    Until there is no set "sustain" loop in sample, Obsidian loops whole sample. After you set sustain loop, obsidian loops just this sustain point and with "loop start" and "loop length" you are affecting that defined sustain loop. Think about sustain loop like "window" in whole wav and "loop start" and "loop length" are moving / resizing this window.

  • @toneman Ok, adding link :)

  • edited January 4

    I found lot more advanced way of doing this :) If for somebody is not enough this simple method with single Slate, there is this possible this:

    • Load Slate without any kit
    • create 16 (or 32 :)) Obsidian tracks as "child tracks" of Slate track
    • In mixer "Send" settings of Slate track add "MIDI SENDS - All child tracks"
    • in each Obsidian load sample zone which starts/ends on single note which is same as note of corresponding Slate pad
    • load same long sample to all Obsidians
    • now each Slate pad plays sample from Corresponing Obsidian
    • To set sample start, go to corresponding Obsidian mod matrix, ad "Key > Const One" to "Osc All > Sample Start" modulation, adjust mod value 0..100 so it starts where you want. Advantage compared to sample offset in Slate is, that this value is completely linear (and can be also automated using macro)
    • You can use same method (Const One > Loop start, Const One > Loop length) for changig loop points in each instance of Obsidian

    This opens posibility of wast Obsidian modulation engine per each pad and now you can also apply any number of FX's on each "pad" :)

    After there will be added possibility to save whole track group as template, this would be pretty powerfull technique :)

  • Wow.

    I’ve now tried a wavetable approach with a short wav containing a small number of Animoog-like single cycles.

    Works an absolute treat.

    For some reason the ‘loop length’ parameter has no effect (are you sure this is a percentage of the total sample file length rather than a value in seconds?)

    However, going into the wav editor and manually setting the sustain length to be a single cycle works. Once done, loop length is then set to the length of a single cycle.

    You can then move ‘loop start’ around the ‘wave table’ either using a macro knob or assigned to an LFO etc. (A slow LFO works well).

    If you have 2 unison voices this smooths out any audible clicks and glitches as you move around the wavetable.

    So... very exciting.

    This means it will be possible to kind of create a ‘poor mans Animoog’. 3 user imported ‘wavetables’ on 3 different oscillators and setting up the X-Y pad to move across the wave tables and/or to mix between the three of them. Or all sorts of other crazy possibilities!

  • edited January 4

    For some reason the ‘loop length’ parameter has no effect

    hm, maybe until is not set sustain loop in file, it loops always whole file ? Will try it later, this deep samplimg experiments are quite new also for me :-)) Glad to hear you like it, probably then share some patches, sounds like something what cannsignificantly expand Obsidian's sonic capabilities

  • edited January 5

    @dendy said:

    For some reason the ‘loop length’ parameter has no effect

    hm, maybe until is not set sustain loop in file, it loops always whole file ? Will try it later, this deep samplimg experiments are quite new also for me :-)) Glad to hear you like it, probably then share some patches, sounds like something what cannsignificantly expand Obsidian's sonic capabilities

    Definitely. Will share when I have something worth sharing. Lots more to explore.

    I might try some Serum wavetables if I can find any on the web.

  • @MattFletcher2000 said:

    @dendy said:

    For some reason the ‘loop length’ parameter has no effect

    hm, maybe until is not set sustain loop in file, it loops always whole file ? Will try it later, this deep samplimg experiments are quite new also for me :-)) Glad to hear you like it, probably then share some patches, sounds like something what cannsignificantly expand Obsidian's sonic capabilities

    Definitely. Will share when I have something worth sharing. Lots more to explore.

    I might try some Sirum wavetables if I can find any on the web.

    Oh. Sorry, one more question...

    There’s another parameter, something like ‘sample key zone’ or something. Do you know how that works? Any possibilities for interesting uses?

  • edited January 4

    It doest exactly what it is named :-) It simply shifts sample zone :) If you sample zone is set for example from C3 to C4, and you apply some positive modulation value - it shifts whole sample zone for example to range from F#3 to F#4

    I'm not sure but i think that value (amount) of modulation means number of semitones to shift zone to right (if positive) or to left (if negative)

    No idea how this can be used :) But curious too :) Maybe for some kind of randomization, if you modulate it with random LFO ? Then on same note sometimes it would play and sometimes not ..

    So if you want simulate broken sampler, which randomly doesn't play some sample :lol:

  • @dendy said:
    It doest exactly what it is named :-) It simply shifts sample zone :) If you sample zone is set for example from C3 to C4, and you apply some positive modulation value - it shifts whole sample zone for example to range from F#3 to F#4

    I'm not sure but i think that value (amount) of modulation means number of semitones to shift zone to right (if positive) or to left (if negative)

    No idea how this can be used :) But curious too :) Maybe for some kind of randomization, if you modulate it with random LFO ? Then on same note sometimes it would play and sometimes not ..

    So if you want simulate broken sampler, which randomly doesn't play some sample :lol:

    Ah. Thanks.

    But you can only have 1 sample zone per oscilator? Rather than per sample? Is that right?

    So you couldn’t swap samples with this parameter. Just shift your sample zone so it either plays a sample or doesn’t play a sample?

  • edited January 4

    But you can only have 1 sample zone per oscilator? Rather than per sample? Is that right?

    you can have up to 24 zones per oscillator ! Just try "shrink" zone (
    tap on zone in oscilator - that grey rectangle bellow keyboard in oscillator view, then tap on "key" tab, change min/max values to free some space , then switch to "zone" tab, tap on "add" and load sample to new created zone

    Obsidian can also create zones automatically - try put to same folder more samples with same base name, endimg with space and note name.. like:

    piano c1.wav
    piano c2.wav
    piano c3.wav

    Then go to Obsidian, open new empty sample oscillator without any samples, tap on "autoload" instead of just "load" and choose any of that "piano xx.wav" - it loads all of them, automaticaly creates zomes and sets root note based on correspondimg filename ;)

  • Great thread.

    I was then finding that even 1% of 25 seconds as ‘sample length’ wasn’t giving me a short enough loop, so I used another macro knob as a negative multiplier (very useful) on my ‘sample length’ knob, which seems to have the desired effect of giving me much smaller (finer) values than 1% for sample length. So again, all good.

    Brilliant. Thanks for this.

    @dendy said:
    I found lot more advanced way of doing this :) If for somebody is not enough this simple method with single Slate, there is this possible this:

    Dendy, you are a maniac!

  • @Will said:
    Dendy, you are a maniac!

    Thats's me :mrgreen:

  • @dendy said:
    I found lot more advanced way of doing this :) If for somebody is not enough this simple method with single Slate, there is this possible this:

    • Load Slate without any kit
    • create 16 (or 32 :)) Obsidian tracks as "child tracks" of Slate track
    • In mixer "Send" settings of Slate track add "MIDI SENDS - All child tracks"
    • in each Obsidian load sample zone which starts/ends on single note which is same as note of corresponding Slate pad
    • load same long sample to all Obsidians
    • now each Slate pad plays sample from Corresponing Obsidian
    • To set sample start, go to corresponding Obsidian mod matrix, ad "Key > Const One" to "Osc All > Sample Start" modulation, adjust mod value 0..100 so it starts where you want. Advantage compared to sample offset in Slate is, that this value is completely linear (and can be also automated using macro)
    • You can use same method (Const One > Loop start, Const One > Loop length) for changig loop points in each instance of Obsidian

    This opens posibility of wast Obsidian modulation engine per each pad and now you can also apply any number of FX's on each "pad" :)

    After there will be added possibility to save whole track group as template, this would be pretty powerfull technique :)

    Jesus christ! 🤯🤯🤯🤯

  • edited January 9

    @Stiksi said:
    Jesus christ! 🤯🤯🤯🤯

    And it is not just theoretical concept - i actually tried that. On my Air 1 !!! I usually try every madness before i suggest it to somebody :trollface: :mrgreen:

Sign In or Register to comment.