One sample feedback delay
Hi everyone,
I'm trying to realize a FM feedback modulation and I need to have one sample delay of my carrier signal.
If I use the delay~ object in a feedback configuration (see thee attached patch) no sound is produced.
Otherwise, using the tapin~/tapout~ system I can't manage one sample delay because (in my opinion) the minimum appreciated delay time is 1 ms.
Are there other solutions?
Thanks to everyone
Daniele
delay~ specifies delays by samples, not sure if it goes down as low as 1 sample though.
if you have MAX 6 you could do this inside gen~ it allows single sample feedback connections
Unfortunately I'm using MAX 5 and I cannot use the delay~ object in feedback configuration because in that case the sound will stop.
Is there something similar to gen~ in the previous versions of MAX 6?
Thanks to all
Can you use tapin and tapout?
The minimum delay time of tapin~/tapout~ is one signal vector, and you're correct that delay~ does not permit feedback.
The easiest way to write an algorithm requiring one sample of delay is to use gen~, but if you don't have Max 6 then I'd suggest looking at mxj~ (or an external written in C).
Edit: Incorrect solution deleted.
doesn't send~ and receive~ create a 1 samp delay by default? or is it the non-msp-flavour send/receive?
anyway, this works:
btw it says max 6 but i only have max 5
nope, send~ gives you/needs one vector, which is why it works for loops.
what works, in theorie, is to do a vector brake under a vector size which is as small as one sample.
what could also work for an FM operator is that you delay the feedbackloop for exactly one cycle
of the oscillator (in case the oscillator type allows that)
-110
can't detect a vector's delay here....
That's because there's not a feedback loop in your patch - send~ / receive~ are clever enough only to introduce the delay when a feedback condition is detected. MSP passes audio between objects in vectors, so causality dictates that the minimum possible delay in a MSP feedback loop will be sigvs samples:
Christopher Dobrian is correct that C/mxj~/faust/whatever or a vector size of 1 (e.g. in a poly~) is the way forward in Max 5.
Thanks for the clarification Owen-- it's a good example of the advantages of Max 6 w gen (or more precisely the disadvantages of Max 5). I guess the OP could put my send/receive 'solution' into a poly~ with a vector size of 1 to fix their problem as you've suggested.