Showing posts with label puredata. Show all posts
Showing posts with label puredata. Show all posts

Monday, November 26, 2007

PD's Help System

In the process of learning PD (in particular, trying to understand ex. 3.16), I've been poking around the PD help system. Curiously enough, the help "pages" are actually patches in their own right. In my case, I went looking at the help page for [stripnote], (Help, Browser, 5. Reference, Stripnote), and the window that comes up lets you play with a [stripnote] object. Click on the note-on message (the message box on the right), and you get print output on the console window; click on the note-off message (on the left), and you get nothing.

The other thing that's cool about the whole visual programming paradigm is being able to connect a number box to one of the outputs of, say, [notein], and watch what's happening as you play keys on a keyboard. I believe you can also get a graph of a waveform displayed in a control every so often, but I'm still figuring out how to do that.

Pretty neat that PD lends itself to such play.

Tuesday, November 20, 2007

TTEM's Example 3.16

(We now resume this blog, after a few days out with a cold.)

This morning, I got example 3.16 (from TTEM) wired up and working. (I believe the examples from TTEM and the PD examples (i.e. that ship with the program) are one and the same, so I wouldn't have had to wire it up myself, except I wanted to get my hands dirty putting something together.)

The first thing I noticed was how nicely expressive it is, compared to my beginner's "notein->mtof->osc~" patch I had been using. 3.16 gives a little buzz at higher key velocities, has a similar volume at the higher pitches as it does at the lower, and fades quite satisfyingly when you lift the key.

Now I just need to go through the text and understand better how it works. I get most of the top two-thirds, but get a little fuzzy below the phasor~, with all the *~'s and the cos~'s and all. Sounds like my next mini-task, (before I figure out how to wire 3.16 up for polyphony).

Wednesday, November 14, 2007

Theory and Technique of Electronic Music

Having gotten PD to hear MIDI from my keyboard and play my very simple patch, my next thought was to figure out how to get polyphony out of PD.

PD is a pretty low-level softsynth. It gives you the basics, like oscillators and D/A converters, but beyond that, you wire them up to suit your needs. Kinda like being given a box of tubes, resistors and capacitors and being told you can build your own stereo. Hence my need to "figure out polyphony". I'm doing so because a) once you figure it out (and it doesn't look to be that hard, really), you can do pretty much anything you want, and b) I'm a geek.

So my next step was to dust off (figuratively speaking) my copy of TTEM, known also as "The Theory and Technique of Electronic Music", by Miller Puckette. On the one hand, TTEM is (if not "over my head") a lot of complex stuff about synthesizing sound, but wrapped around the math and theory is explanations of how to do stuff with PD. Like sampling, reverb and polyphony.

Having read TTEM pretty much cover to cover a year or so ago, I'm just skimming over things, and heading for the practical, and this morning, I stopped and got halfway through understanding example 3.16, which looks like a more complete MIDI patch.

Tuesday, November 13, 2007

Puredata and MIDI

I fired up Puredata (PD) yesterday, pulled up my first (and only) attempt at putting a MIDI-controlled patch together, and for some reason, it wasn't hearing MIDI. So this morning, I troubleshot it.

Turns out that under the Media menu, PD remembered that I use OSS for sound output, and that I had default-MIDI selected, but didn't remember the MIDI devices that I was using, so when I pulled up the "MIDI settings..." dialog, it showed "none" for the input and output device. First time through, I tried switching to ALSA and back, and I seem to recall somehow that worked, but as I write this up, it leaves the MIDI devices blank. Anyway, when I set them both to "OSS MIDI device #1", it works just fine.