Basic Garageband style sequencer
I need to make a basic DAW/sequencer in the style of garageband.
I need to be able to drag and drop samples into the sequencer grid so they are displayed as a rectangle containing the sample waveform. I also need the rectangle to differ in size depending on the length of the sample.
Does anyone know how this can be done?
Chris Hipgrave schrieb:
> I need to make a basic DAW/sequencer in the style of garageband.
I’ll try to understand the "i need to make" part of your question. This
is certainly not a beginners task, where does this need come from?
> I need to be able to drag and drop samples into the sequencer grid so
> they are displayed as a rectangle containing the sample waveform. I
> also need the rectangle to differ in size depending on the length of
> the sample.
I would try to use a waveform~ object for each track, and load tracks or
their overviews into buffers~. You have to calculate where to place the
samples into the buffer~…
I haven’t seen a really good overview in any DAW beside a Sonic
Solution, and no wonder in almost 20 years of Maxin’ I’ve seen a single
bad hack for such a beast in Max…
If I’d had a "need" to create something like that, I’d account some
weeks to do it, for a beginner, account for much more time…
If you look at your needs, you might find out, that the concept of a
sequencer might not be necessarily what you need, but who knows… ;-)
One good way to combine a sequencer with the power of Max is to use for
example Live and Max built plug-ins, or us other connections like
rewire, Jack, Soundflower, audio cables (those made of cupper…)
If you ditch the need for "drag and drop" into the waveforms, as well as being able to put multiple clips into a single one, this would be lots simpler. (it can of course be done though.) If you use (say) 8 tracks of waveforms~, and want the resizing, this can be done with size messages to thispatcher, if you give each waveform~ a scripting name:
script size waveform $1 100
(in this case, the height remains 100 pixels, and the width is determined by a calculation of the clip’s length… use sfinfo~ when you load it). Having a dropdown for each waveform~ to load the samples would be easier than drag-n-drop. However, look into the "dropfile" object (in the palette) to populate the dropdown menus, that’s simple. You can then use presets on the dropdowns so as to load new samples on the fly.
Then you’re going to get into effects, rate of playback, pitch, etc., so for each waveform~ I’d use another patch for these that’s standardized. Each signal goes thru it (and can bypass it), then goes into the main mix.
If you get away from creating a full-scale sequencer to control it, things will also be easier for you. You can do it with matrixctrl though, if you want to. Possibly while experimenting you’ll find that the original thoughts aren’t as interesting as what you can create. I’d definitely encourage you to think beyond (or at least differently than) standard DAW multitracking interfaces. There’s so many neat and different things you can do with the waveform~ objects, try and see what works for you.
Remember you can pattr or preset the loop points, rate, effects etc. for each track. These give all kinds of new ways to think about creating your sound, and most aren’t possible to do in a program like GarageBand.
Good luck and I’m curious to see what you come up with!