Haha, well, perhaps I was overoptimistic about the state of the sequencer. There seem to be some bugs in it that I "fixed" already rearing their heads... I haven't touched it in long enough that I can't fix them deftly so here it is anyways. Perhaps you can still get the idea.
Also, this is a bit like showing you my time machine... it's got a lot of work inside it so it comes with a nice library of 40 or so supporting abstractions : ). The sequencer itself is [sft.structhausen] and a working model using Phil Stone's [polywavesynth] is in [STRUCTHAUSEN].
Click the big "OPEN" button to open the piano roll. Inside [sft.structhausen] you'll find [pd keycommands] which give a few shortcuts. For troubleshooting, one you may need often is "shift-s" to re-sort the notes and "shift-z" to fix up Z-ordering. You can either click the "record" button to record notes (I included a computer-keyboard to piano-keyboard), or, there's always a single note in the lower-left of the piano roll you can "clone" by option-dragging (and then you'll experience the annoying mouse-drag behavior). The "prefs" button on the GOP will let you switch on drag-modifiable velocity displays for each note. You can delete notes by holding option and hovering over the lower-left corner of a note until you see the "X".
Anyway, everything I said is in there in some form or another, and I'll keep you up to date as I get it to a more usable state.
Best Luke
On Sat, Aug 9, 2008 at 5:26 PM, Luke Iannini lukexipd@gmail.com wrote:
Yo Damien, I've been working on exactly that for the past few months using Pd's venerable data structures. It has quantization, a piano underlay, draggable notes, draggable lengths, draggable velocity, zooming X & Y, draggable looping, the whole bit (layers coming soon, but you can of course run many of them side by side; I'm working on a synchronization system since running multiple instances makes it more fun to do polyrhythms). Thanks to some wonderful shortcuts Miller built in to DS arrays, you can add and remove notes (and even shift groups of notes) really easily.
But, there are some bugs in Pd that prevent it from being everyday usable... the two major ones are that the notes are in a "quantized DS array" (for performance reasons), which exposes a very painful interaction bug where dragging is just close enough to working to be horribly frustrating, and editing the notes (to change lengths or velocity) only really works for the notes closest to time 0. And, finally, Z-ordering is undefined and gets screwed up every time you open the window (but, I've worked around that one for the most part with some hacks).
So, I'll wrap it up and post it after I locate all the stuff necessary to run it. It should convince you that such a thing is most definitely attainable in Pd, and perhaps Miller will be so excited that his language for the future of music is being used to make a 30-year old interface, that he will go fix the bugs immediately : )
(I promise though Miller, my actual goal is to build a happy environment for both traditional grid-note-editing and graphical type stuff like in 4.data.structures/07.sequencer)
Back soon, Luke
On Sat, Aug 9, 2008 at 12:43 PM, Damian Stewart damian@frey.co.nz wrote:
Martin Peach wrote:
(since i haven't yet found a pure Pd sequencer i'm happy with)
What makes you sad about Pd sequencers? Maybe it's fixable.
have you ever used Ableton's MIDI sequencer? it's a piano roll, with blocks for notes. drag start and end points to control noteon/noteoff points. quantize to a grid of any size you want (switchable with a hot-key) or turn off quantization completely to finetune timing (for that little 'humanized' extra, whatever that might mean). super-intuitive scroll and zoom with a single mouse button drag in the top. the main features in this i'm interested in is the quantization grid control, and the ability to super fine-tune note durations.
lines down the bottom control velocity. if you have two notes on the piano roll trigger at the same time, it's super-easy to choose which note's velocity you're editing.
i don't believe it's do-able in Pd, not without a ridiculous amount of work, and i'm too lazy to do the work myself (and if i wasn't, i'd do it from scratch in a different programming language eg Processing or C++, rather than fighting Tcl/Tk).
Why not run three instances of midifile or even textfile with the same data?
yes, this is what i'm already doing. the problem is generating said midifile/textfiles in the first place.
- easy access to velocity and note duration
Do you mean that the thing should output the duration at the same time as the note-on, or the file should be readable in a text editor?
no, i mean that i should be able to easily see and edit the duration and the velocity without having to think or do much work. see above..
-- damian stewart | +31 6 8178 5197 | damian@frey.co.nz frey | live art with machines | http://www.frey.co.nz
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list