MultiEQ

StaticEQ

A container for several EQBand's. In MultiEQ, individual bands can be changed, added and removed in real time with immediate results on the server.

StaticEQ is similar, but compiles all the EQ bands into a single synthdef for efficiency. StaticEQ is noticeably faster than MultiEQ, but the specs of a StaticEQ cannot be changed in real time. StaticEQ is designed for "Set it and forget it" filters (which is the usual use of EQ in a mixing context).

-- H. James Harkins, jamshark70@dewdrop-world.net

Methods that apply to MultiEQ and StaticEQ:

*new(numChan ... z)

z gives the specifications for the EQ bands as follows: type, freq, k, rq, type2, freq2, k2, rq2.... rq may be omitted if the filter type is high or low shelving.

// a slight midrange cut, low-shelf cut (rq is omitted), and a slight high-frequency boost

e = MultiEQ.new(2, \eq, 600, 0.7, 1.8, \loshelf, 200, 0.1, \eq, 11000, 1.5, 1.5);

play(targ, b, addAction = \addToTail, amp)

Plays all the EQ bands on the server, relative to the target (targ) and bus (b). As with the EQ band, if the target is a group, the EQ synths go at the tail of the group. If the target is a synth, the bands go after the synth. If the target is a MixerChannel, the synths go into the channel's effects group and it automatically uses the channel's bus. If you use MixerChannel, you can get away with specifying only the target, which is a very quick and convenient syntax.

amp is applied only to the first filter. Be careful: if you remove the first filter (.removeAt(0)), this volume control will disappear.

Methods that apply only to MultiEQ:

add( ... z)

Adds new filters to the MultiEQ. The new specs are written in the same format as in *new. You can't specify the number of channels, because it has to be the same as the other bands.

removeAt(i)

Removes the filter pointed to by the index i. If the MultiEQ is playing, the band is also removed from the server.

at(i)

Returns the EQBand object at the index i.

asString

Could also be called asCompileString.

edit(targ, b, addAct = \addToTail, amp)

Takes the same arguments as .play, but opens a GUI window for real-time editing of the eq specs. If the eq is not playing, it will be played now. Closing the window stops the eq and prints out the specs in the form of a statement you can use in your code.

Methods that apply only to StaticEQ:

prepareForPlay(targ, b, addAction)

Makes the synthdef and sends it to the server. The synthdef is not written to disk and will be forgotten when the server quits. At present, .prepareForPlay is called automatically by .play, so you should never need to call this method yourself.

move(targ, moveAction = \moveAfter)

Places the existing EQ synth relative to a new target.

asSynthDef(numChan = 1)

Returns the synthdef that will be used when this StaticEQ is played.