that's what delay~ object does--its argument should be how many samples of memory to set aside--really, it works in chunks of audio, not individual samples
I/O buffer tells you what size chunk of audio it will get from operating system before bringing it into Max--probably default 512
signal vector size--not same as I/O vector size, how many samples are calculated at one time and sent out to DAC--there's always a small delay
to find out what happened 3 samples ago--subtract 3 from current index number, find out what's there--but have to make sure it's within the appropriate range (0-x)--when you get beyond end of buffer, subtract 44,100 from it, so it puts you back to zero--circular buffer--not literally circular, but cycles back to beginning of buffer once it reaches the end--this is how delay works
tapin, tapout objects work with a buffer to access different indices at random (?)
click~ object--when you bang it, it sends out 1--otherwise sends out a 0--so, if you do that with an audio signal, it sounds like a click
as two sine waves of the same frequency are delayed over the length of a phase, you get an amplitude-scaled sine wave of the same frequency--that's how a filter works usually, is by suppressing or boosting certain frequencies
tapin~ object--creates a place in memory that can hold a certain amount of time in sound--specify in ms--must be connected to tap out~
tapout~ object--tell it how many ms of delay you want it to look in the past, translates from ms to samples for you
can use tap out~'s output to feed back into tap in~ to generate feedback--generally this kind of feedback doesn't work in MSP, but this is a rare exception, works b/c tapout~ will never let you go back more than a signal vector's worth of time in the past--this allows you to do repeated echoes, like a "delay" function on a pedal or in a DAW
matrix delay~ (or something like that) object, for video--stores a number of matrices, can ask it to look back in the past a certain number of index #'s back
can also specify time value for delay in a tempo-related way, with translate object
in pop music, subliminal delay of like a half note, at an extremely low level--builds mysterious harmonic complexity b/c of suspensions--check out any Enya song, or Prince uses it a lot even with guitar
chorusing is a slight randomization of delay time, like passing a changing filter through sound, to emulate slight out-of-tuneness, or a bit like a flanger
there's an example that uses a rand~ object with tapin~ and tapout~ objects to give somewhat of a chorus-y effect
*good idea: use loop $1 message into sfplay~ object to loop it, put a toggle into the loop $1 message
play a version of a sound that's delayed exactly 1 sample, will interfere at half the sampling rate destructively, will create a kind of low-pass filtering effect
comb~ object--allows feedback delays internally, feedbacks less than one vector size, can specify milliseconds of delay, how much of the feedback and feedforward signals do you want
delay snare drum by 1 ms, get a pitchy sound
reson~ object--choose center frequency to be emphasized, and Q factor (how sharply to emphasize sound)--did Chris make this? or does it come with Max? not sure
table object--can specify frequencies, amplitudes, etc.
biquad~ object--all-purpose filter object in Max, often used alongside filtergraph~ object which allows you to send info into biquad~--help file shows you the formula it uses, you could input the scaling factors yourself, but filtergraph takes care of that for you--left inlet of filtergraph object lets you put in menu and set mode of filter--allows one cutoff or center frequency, basically
*filtering is delay--it's just really short delay
you can chain biquad~ objects, there may even be an object called cascade~ which would do this for you
Reason is a cool DAW that mimics hardware setups in electronic music studios, complete with cables and all
No comments:
Post a Comment