Can the start and end points of the samples be altered?

Is there a way to pattern the start/end points of the samples being played back? One of the ways to trim out the back is to have 2 channels with the same cut group, but this doesn't work for the start points, and is also very unwieldy.

1 Like

Sample start and end points are controlled with "begin" and "end" eg:

d1$ s "cp*8" # begin "0.5 0.8 0.15" # end "0.2 0.3 0.75"

Note that Starting a sample after the end point will reverse the sample

-- if I'm understanding your question?


yes i'll try this out

I like using the grain parameter for this. Imagine this as like the slice function or even using the begin and end at the same time.

Typical usage scenarios are to take a long sample and playback parts of it like

d1 $ s "bev*8" # grain (slow 4 $ saw) 0.125 -- this almost becomes a more controlled striate

you could also pattern it up like so to get a granulated version of @Squim 's example

d1 $ s "cp*8" # grain "0.5 0.8 0.15" "0.2 0.1 0.75"


wow that's kinda interesting.

d1 $ s "bev*32" # grain (slow 32 $ saw) 0.0125 # legato 1...granularizes it in even smaller increments and over a longer period of time which almost puts it into a timestretch zone.

changing the oscillator to isaw reverses it.


There are (or at least were -- maybe the dirt samples have been updated) some percussive samples that begin with a silence long enough to ruin them when used rhythmically. I intended once to create a fork of the sample library with those silences removed, but there's too many samples. If someone had a way of automatically doing that, it would be awesome.

Judging the difference between silence, low-level noise and actually meaningful attack might be hard to automate, I don't know.

@Jeff_Brown you might investigate SoX. i believe there are lots of batch editing shortcuts and it looks like you can trim silence.

  • silence: Remove portions of silence from the audio

via SoX - Sound eXchange | Features

ah! I didn't know about grain. I'll have to play with that.

You'll need to look at onset detection libraries. Looks like python based librosa can do that.

1 Like