<div dir="ltr">First, is the FM matrix actually FM or PM? Most FM are actually PM (phase modulation).<div><br></div><div>it's quite easy to do that, just have a [block~ 1] in the subpatch. There are different options for the feedback, but I prefer delwrite~ and delread~ as cyrille said. Don't use vd~ as it introduces another sample delay!<br><br>I'm attaching a folder from my computer music tutorial in portuguese. This folder contains updates that weren't released yet.</div><div><br></div><div>You can find the not updated and complete deal in here <a href="https://sites.google.com/site/porres/pd">https://sites.google.com/site/porres/pd</a></div><div><br></div><div>direct download link is: <a href="https://sites.google.com/site/porres/Live%20Electronics%20%28EL%20Locus%20Solus%29%20-%20Porres.zip">https://sites.google.com/site/porres/Live%20Electronics%20%28EL%20Locus%20Solus%29%20-%20Porres.zip</a></div><div><br></div><div>the complete way to this folder is: </div><div><br></div><div>Parte II - Síntese Basica/15.Modulacao.de.Fase-Frequencia/6.Feedback.Cross.Modulation<br></div><div><br></div><div>If you get all of if you can check also the DX7.pd example, which comes next.</div><div><br></div><div>In the updated version I'm sending, I include a mean filter in the PM feedback loop, because that's how it seems it is done in FM8 for example. It reduces the chaos in the feedback.</div><div><br></div><div>cheers </div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-01-08 16:31 GMT-02:00 Matt Barber <span dir="ltr"><<a href="mailto:brbrofsvl@gmail.com" target="_blank">brbrofsvl@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">[rpole~] can be a good option depending on the kind of flexibility you need. Why the distaste for [block~] size of 1 if it works?</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Do you have some pseudocode or a block diagram? That would make it easier to give advice.</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 8, 2016 at 11:53 AM, David Medine <span dir="ltr"><<a href="mailto:dmedine@ucsd.edu" target="_blank">dmedine@ucsd.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
This is not for the faint of heart (it is poorly organized and not
documented at all), and there is no build environment set up for OSX
or Windows, but I wrote a C language API that I rolled into a Pd
extern which takes compiled C files that describe feedback networks
with approximately 0 time delay. This is done by modeling the
network with dynamical systems and solving numerically. I gave a
talk about this at ICMC this year. <br>
<br>
Using these tools I made a program that runs in Pd that has two
oscillators that can frequency modulate and sync one another and
themselves. It maintains the 64 sample block size and the CPU load
is minimal. It can easily be extended to N oscillators. <br>
<br>
I can send a copy of the paper to you directly if you are interested
(I don't want to hit the whole list with a pdf). Here is the project
on github -- please forgive my many sins, this is not yet ready for
release and it shows. <a href="https://github.com/dmedine/timelab" target="_blank">https://github.com/dmedine/timelab</a><span><font color="#888888"><br>
-David</font></span><div><div><br>
<br>
<div>On 01/08/2016 03:00 AM, i go bananas
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr"><span style="font-size:12.8px">> If you want
shorter feedbacks than 64 samples within a patch, there is</span><br style="font-size:12.8px">
<span style="font-size:12.8px">no way around reducing block size</span><br>
<br>
i still have this itching doubt in that. i think what we're
looking for is some real leap of imagination here. <br>
we are fine with having a block or 2 latency,,,so i'm imagining
maybe there's some far out hack involving synchronised
tabread~'s and delayed osc~'s, or something like that, which
would somehow do it. <br>
<br>
><span style="font-size:12.8px">You may be able to optimize
by</span><br style="font-size:12.8px">
<span style="font-size:12.8px">putting only the very necessary
(for the feedback loop) objects into the</span><br style="font-size:12.8px">
<span style="font-size:12.8px">re-blocked subpatch.<br>
</span><br>
yeah that seems the most likely approach now. <br>
<br>
><span style="font-size:12.8px">if cpu is a limit, i guess
the only solution is to create an external.<br>
<br>
this is probably the 2nd most likely solution. </span>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">thanks guys for your ideas
and help. </span></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Jan 8, 2016 at 7:34 PM, Roman
Haefeli <span dir="ltr"><<a href="mailto:reduzent@gmail.com" target="_blank">reduzent@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If you
want shorter feedbacks than 64 samples within a patch, there
is<br>
no way around reducing block size. You may be able to
optimize by<br>
putting only the very necessary (for the feedback loop)
objects into the<br>
re-blocked subpatch.<br>
<br>
Then there are some classes that do internal sample-size
feedbacks,<br>
like [rpole~] or [fexpr~]. While [fexpr~] is quite flexible,
it may be<br>
even more expensive than a subpatch with blocksize=1 (at
least that's<br>
what I remember when I compared two implementations, but
this<br>
observation might have been specific to that kind of
problem).<br>
<span><font color="#888888"><br>
Roman<br>
</font></span>
<div>
<div><br>
On Fri, 2016-01-08 at 18:42 +0900, i go bananas wrote:<br>
> Hi all, hope everyone's well.<br>
><br>
> We're trying to implement a 4-op FM matrix with
feedback, copying a<br>
> patch my friend made in reaktor using a block size
of 1 (sorry, don't<br>
> know the full details of that, but he says he can
get 1 sample delay<br>
> for the feedback)<br>
><br>
> Has anyone ever succeeded doing something like this
in pd? I know<br>
> about the order forcing using subpatches like in
G.05.execution.order<br>
> help patch, but that doesn't seem like it will work
here, as we still<br>
> get DSP loop errors when trying to connect the
output of one osc~ back<br>
> into the frequency input of the others.<br>
><br>
> I'm really looking for a solution that doesn't
involve using blocksize<br>
> of 1, and anyway, even doing that, still seems the
only way to do<br>
> feedback without getting DSP loop errors is with s~
/ r~ pairs, which<br>
> seem to only work at blocksize of 64 anyway?<br>
><br>
><br>
> I don't mind adding a bit of latency to the whole
system if there's<br>
> maybe a hack to do this with tables or
something,,,but am really stuck<br>
> here wondering what to do.<br>
><br>
> any ideas?<br>
><br>
><br>
> cheers, Matt<br>
</div>
</div>
<div>
<div>>
_______________________________________________<br>
> <a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a>
mailing list<br>
> UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank"></a><a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br>
</div>
</div>
<br>
_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a>
mailing list<br>
UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank"></a><a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a>
</pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br></blockquote></div><br></div>