Re: feedback networks

Sep 18, 2008 at 1:52pm

Re: feedback networks

i was referring to ~ objects off course…
send~ and receive~ can’t make feedbacks work.

I think there is a big problem with feedbacks in max…
as a matter of fact listen how nasty can get resonance in lores~
clearly it is a simple feedback routing..

sound goes up to infinite then stop, if you try to create a network of filters (A to B, B to A)

clip~ does not work, you see what I mean?

My attempt was re-creating T-Resonator by jomox.
The signal flow is quite simple, but it won’t work in Max…
I wonder why..

#39896
Sep 18, 2008 at 2:12pm

giorgio s wrote:
> i was referring to ~ objects off course…
> send~ and receive~ can’t make feedbacks work.

Yes they can.

>
> sound goes up to infinite then stop, if you try to create a network of filters (A to B, B to A)
>
> clip~ does not work, you see what I mean?

Are you not scaling your feedback at all? Feedback values of 1 will,
indeed, blow up.


Owen

#140667
Sep 18, 2008 at 2:14pm

Well ok, I think I’d read your post too fast. I think it’s simply impossible to make a feedbacked signal network in Max with no delay. As a matter of fact, I don’t have any computer engineering knowledge, and I don’t know whether this is simply possible at all. For instance, I think that even filter formulas don’t include coefficients for instant feedbacks (the b coefficients) do they?

However, it’s not acurate to say that you can’t make feedback chains with send~ receive~ objects… You just have to say goodbye to the idea of not having signal vector sized delays in your network I guess.

For your level situations, either use clear message fo filters when they blow up, either maybe watch your signal with capture~ and see why it goes up to stop. I’m not sure that hearing nothing means audio stops, but maybe you get on the end of the blow all your values superior to 1 / -1 which make the signal constant and inaudible or something like that?

Anyway I would point your own idea of signal limiter, or including a compresser / limiter in your chain would certainly help. It’s mentioned on the omx compression tutorials. Just a way to control signal levels that are typically hard to control in these feedback situation, especially if you use lores~ resonance quite high…

#140668
Sep 18, 2008 at 2:18pm

that is the point…

ok let me restate my needs..
take an analog filter… patch it to a second filter, then patch the second filter back again into the first..
turn up resonance, go selfoscillating/screaming..
send filter 1 out to a mixer, trim down volume to make it work without blowing out your speakers.

in max you have to use tapin~ tapout~ in order to get audio feedback.. but… as feedback reaches self oscillating point, everything blow up.. there is no way to control it..

or there is?

#140669
Sep 18, 2008 at 2:35pm

zoe de lukaas wrote:
> Well ok, I think I’d read your post too fast. I think it’s simply
> impossible to make a feedbacked signal network in Max with no delay.
> As a matter of fact, I don’t have any computer engineering knowledge,
> and I don’t know whether this is simply possible at all. For
> instance, I think that even filter formulas don’t include
> coefficients for instant feedbacks (the b coefficients) do they?

It’s generally impossible for something to be seen before it’s happened.

In vector based digital signal systems (not just max), the minimum delay
in a feedback network will therefore be the vector size.

Feedback delays in digital filter coefficients are at least one sample.


Owen

#140670
Sep 18, 2008 at 2:38pm

seems that a clip~ right before the dac~ solve the problem…

#140671
Sep 18, 2008 at 2:39pm

Analogue devices go into saturation, which helps, and also there will be
some implicit scaling of the feedback signal due to resistances along
the way. They can still be blown up though.

Scale your feedback, even if only by .998, put in series with a limiter,
perhaps a waveshaper as well if you want filth. There are plenty of ways
of controlling it, you just have to make sure the signal isn’t running
away first.


Owen

giorgio s wrote:
> that is the point…
>
> ok let me restate my needs.. take an analog filter… patch it to a
> second filter, then patch the second filter back again into the
> first.. turn up resonance, go selfoscillating/screaming.. send filter
> 1 out to a mixer, trim down volume to make it work without blowing
> out your speakers.
>
> in max you have to use tapin~ tapout~ in order to get audio
> feedback.. but… as feedback reaches self oscillating point,
> everything blow up.. there is no way to control it..
>
> or there is? _______________________________________________ maxmsp
>

#140672
Sep 18, 2008 at 2:42pm

waveshaper?

#140673
Sep 18, 2008 at 2:55pm

>It’s generally impossible for something to be seen before it’s happened.

Erm… That makes sense, right… It’s also generally impossible for me to think decently before I happen to think a little more…

>In vector based digital signal systems (not just max), the minimum
>delay
>in a feedback network will therefore be the vector size.

>Feedback delays in digital filter coefficients are at least one >sample.

Thanks for clearing that up. Do you have precisions about my poly~ situation mentioned above, with the 4096 samples minimum delay in feedback? (sorry you’re helping and i’m asking for some more…)

Back to reson~ filters fed back to each other with send~ receive~ Ive just tried a stupid example that illustrates something upon which you could work Sackbut? Work a lot more than the 3 mins. I spent on it, sure… The patch outputs sound, however.

regards,
zoe

– Pasted Max Patch, click to expand. –
#140674
Sep 18, 2008 at 3:00pm

If you paste that patch don’t forget to replace “receive~ r2″ with “receive~ r1″, that could help… Don’t know what’s wrong with me today…

#140675
Sep 18, 2008 at 3:01pm

i think i cant use it, i’m on 4.6

#140676
Sep 18, 2008 at 3:04pm

A way of doing distortion effects that can crudely simulate analogue
saturation, among other things. See MSP tutorial 12.

It works by having a lookup table that translates input values to
outputs given by some function, so you can emulate gradual squashing,
for instance.

clip~ is a brutal version of this, insofar as it says anything greater
than x now equals x. You’ll get the harshest kind of distortion from
that, which may or may not be what you’re looking for.


Owen

giorgio s wrote:
> waveshaper?
>

#140677
Sep 18, 2008 at 3:17pm

Here.

I don’t think you can use it anyway, it’s a real shame! Just to illustrate the principle of feedback with s~ r~. Play with gains and res. carefully – as i guess you’ve already done, but as Owen pointed, when self-oscillating going further will not be forgiven as in an analogue filter.

Also, can’t prevent myself from mentioning that going back to 4.6 after quite a while in Max 5. made me feel I’d have to reinstall OS.X again… Old times, sweet times…

More seriously, i think the best ways to take off from your situation is 1/ patiently notate your self-osc-but-non-blowing-reson-parameters 2/ add comps/limiters maybe and that’s it… Hope it’s useful (- but i admit i doubt it)

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 363 52 34 196617 1000;
#P message 315 52 34 196617 1200;
#P comment 329 120 100 196617 Res control for both;
#P newex 382 149 93 196617 expr 0.1*$f1+0.9;
#P user meter~ 35 277 115 290 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P user meter~ 373 285 453 298 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P user meter~ 195 153 275 166 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P newex 122 153 64 196617 receive~ r1;
#P newex 305 324 50 196617 send~ r1;
#P message 276 50 26 196617 100;
#P flonum 285 118 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 407 243 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 369 243 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 331 243 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 202 207 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 164 207 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 126 207 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 315 285 53 196617 reson~;
#P newex 102 241 53 196617 reson~;
#P newex 88 184 27 196617 +~;
#P flonum 99 114 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 234 45 14 196617 1;
#P newex 153 354 27 196617 *~;
#P flonum 169 331 35 9 0. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 200 365 35 9 0. 1. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 179 390 27 196617 *~;
#P user ezdac~ 174 420 218 453 0;
#P newex 64 142 27 196617 *~;
#P newex 48 105 39 196617 noise~;
#P newex 160 47 48 196617 loadbang;
#P comment 481 149 100 196617 Dumb linear function;
#P connect 12 0 26 0;
#P connect 2 0 3 0;
#P connect 10 0 3 1;
#P connect 3 0 11 0;
#P connect 9 0 10 0;
#P connect 11 0 12 0;
#P connect 23 0 11 1;
#P connect 14 0 12 1;
#P connect 9 0 14 0;
#P connect 15 0 12 2;
#P connect 16 0 12 3;
#P connect 12 0 8 0;
#P connect 29 0 15 0;
#P connect 27 0 7 0;
#P connect 7 0 8 1;
#P connect 5 0 4 0;
#P connect 8 0 5 0;
#P connect 23 0 24 0;
#P connect 6 0 5 1;
#P connect 9 0 6 0;
#P connect 20 0 16 0;
#P connect 5 0 4 1;
#P connect 1 0 9 0;
#P connect 1 0 21 0;
#P connect 21 0 20 0;
#P connect 13 0 22 0;
#P connect 1 0 29 0;
#P connect 12 0 13 0;
#P connect 17 0 13 1;
#P connect 9 0 17 0;
#P connect 18 0 13 2;
#P connect 19 0 13 3;
#P connect 1 0 30 0;
#P connect 30 0 18 0;
#P connect 13 0 25 0;
#P connect 20 0 27 0;
#P connect 20 0 19 0;
#P window clipboard copycount 31;

#140678
Sep 18, 2008 at 3:20pm

PS. Maybe using biquads instead of resons would be more helpful as they have a clear function for blowups.

#140679
Sep 18, 2008 at 3:27pm

thanks…

by the way, here is how I have solved my problems:

squaring the wave with clip is okay. there is a trouble with dac when it gets very high values… so a clip~ just before output is all I needed. ( i don’t know why yesterday didn’t work..)

as it squash the volume parameters I can work with extreme feedbacks..and control the overall volume.
I wonder how wavetable can do better, but that’s another story.
all I need was a way to use total feedback without stopping audio
that’s it..

#140680
Sep 18, 2008 at 5:00pm

Stick some kind of limiting in the feedback path – I use limi~, which
doesn’t appear to be included in Max 5, but didn’t you say you were on 4.6
anyway?
If you limit the actual feedback to < 1. then you shouldn't blow the dac~ up
- but have a global ‘clear’ button ready to send to all your delay lines,
filters etc. just in case anyway..
Cheers
Roger

On 18/09/2008 16:27, “giorgio s” wrote:

>
> thanks…
>
> by the way, here is how I have solved my problems:
>
> squaring the wave with clip is okay. there is a trouble with dac when it gets
> very high values… so a clip~ just before output is all I needed. ( i don’t
> know why yesterday didn’t work..)
>
> as it squash the volume parameters I can work with extreme feedbacks..and
> control the overall volume.
> I wonder how wavetable can do better, but that’s another story.
> all I need was a way to use total feedback without stopping audio
> that’s it..

#140681
Sep 18, 2008 at 5:06pm

thank you all
:)

#140682

You must be logged in to reply to this topic.