<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LUMIFAZA (Posts about thinking)</title><link>https://info.lumifaza.org/</link><description></description><atom:link href="https://info.lumifaza.org/tags/thinking.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2024 &lt;a href="mailto:teo@lumifaza.org"&gt;Teo&lt;/a&gt; </copyright><lastBuildDate>Sat, 06 Jul 2024 08:35:40 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Designing a signal processing environment (RFC) - part 2</title><link>https://info.lumifaza.org/2024/07/designing-a-signal-processing-environment-rfc-part-2/</link><dc:creator>Teo</dc:creator><description>&lt;div&gt;&lt;p&gt;In these posts I’m thinking out loud how a software signal processing
environment I’m developing should look like and behave. Check out &lt;a href="https://info.lumifaza.org/2022/09/Designing-a-signal-processing-environment-RFC-part-1/"&gt;part
1&lt;/a&gt; if you haven’t seen it yet.&lt;/p&gt;
&lt;h2 id="more-on-signal-loops"&gt;More on Signal Loops&lt;/h2&gt;
&lt;p&gt;There already exist open source modular audio processors, but none of
them fulfils my requirements.&lt;/p&gt;
&lt;p&gt;Most of them (e.g. &lt;a href="https://www.bespokesynth.com/"&gt;BespokeSynth&lt;/a&gt;, &lt;a href="https://puredata.info/"&gt;Pure Data&lt;/a&gt;, &lt;a href="https://jackaudio.org/"&gt;JACK&lt;/a&gt;) have a restriction of processing
audio in blocks of tens to thousands of samples (depending on how much
overhead your system can tolerate and still work real-time). As long as
you have evident dependency order in the graph, it is not a problem -
you can run modules in that order and there will be no apparent delay
other than the obvious block size delay present in all
general-purpose-computer-based DSP systems.&lt;/p&gt;
&lt;p&gt;However, if you have a signal loop, there’s no dependency order. You
just have to feed some modules later. It’s equal to inserting a delay
line with length of the block size, in the loop. So it will influence
the sound! &lt;a href="https://info.lumifaza.org/2022/09/Designing-a-signal-processing-environment-RFC-part-1/#extreme-modularity-and-signal-loops"&gt;I’ve
written about it in part 1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://vcvrack.com/"&gt;VCV Rack&lt;/a&gt;/&lt;a href="https://github.com/DISTRHO/Cardinal"&gt;Cardinal&lt;/a&gt; works
differently, sacrificing performance. It processes one sample at a time.
Meaning that signal loops cause much shorter delays. They can be made
even shorter when oversampling is enabled. But they still exist and
still influence the sound.&lt;/p&gt;
&lt;h2 id="going-down-to-zero-latency-in-loops.-new-plugin-api"&gt;Going down
to zero latency in loops. New plugin API&lt;/h2&gt;
&lt;p&gt;I’ve came across &lt;a href="https://urs.silvrback.com/zero-delay-feedback"&gt;description of this
technique&lt;/a&gt; on &lt;a href="https://urs.silvrback.com/"&gt;Urs Heckmann’s
(u-he) blog&lt;/a&gt; and haven’t tested it yet, but it looks promising. We
can process the loop multiple times without advancing the clock, until
the signals converge.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://info.lumifaza.org/2024/07/designing-a-signal-processing-environment-rfc-part-2/"&gt;Read more…&lt;/a&gt; (2 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>audio</category><category>blog</category><category>programming</category><category>signaldub</category><category>thinking</category><guid>https://info.lumifaza.org/2024/07/designing-a-signal-processing-environment-rfc-part-2/</guid><pubDate>Fri, 05 Jul 2024 17:33:33 GMT</pubDate></item><item><title>Designing a signal processing environment (RFC) - part 1</title><link>https://info.lumifaza.org/2022/09/Designing-a-signal-processing-environment-RFC-part-1/</link><dc:creator>Teo</dc:creator><description>&lt;div&gt;&lt;p&gt;This is the first post of the thinking out loud series about the
signal processing framework and modular environment I’m developing -
SignalDub.&lt;/p&gt;
&lt;h2 id="dubbing-the-signals"&gt;Dubbing the Signals&lt;/h2&gt;
&lt;p&gt;What’s the functionality I need most when processing audio signals
in-the-box (i.e. using a computer)? Dubbing. It has multiple meaning and
all those are valid in this context:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;recording&lt;/li&gt;
&lt;li&gt;adding effects in creative way, using them as an instrument (delay
and reverb in particular)&lt;/li&gt;
&lt;li&gt;experimenting, using devices &lt;a href="http://www.interruptor.ch/dub_fx.shtml"&gt;not-always-the-way-they-were-designed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I feel that not only music producers and sound engineers, but also
visual artists, broadcast engineers… anyone working with multimedia,
deserves such system allowing experimentation.&lt;/p&gt;
&lt;h2 id="free-as-in-freedom"&gt;Free as in Freedom&lt;/h2&gt;
&lt;p&gt;That’s a pretty obvious requirement. You can’t have a hackable system
if its core can’t be changed. Also, if the source code is kept secret,
the knowledge used to develop it is wasted.&lt;/p&gt;
&lt;h2 id="extreme-modularity-and-signal-loops"&gt;Extreme Modularity and
Signal Loops&lt;/h2&gt;
&lt;p&gt;Most audio software today is modular. You can use whatever DAW you
want with your soundcard, insert whatever plugin you want on the track
in the DAW. But have you ever tried to insert an EQ on delay’s feedback
path? Or distort it?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://info.lumifaza.org/2022/09/Designing-a-signal-processing-environment-RFC-part-1/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>audio</category><category>blog</category><category>programming</category><category>signaldub</category><category>thinking</category><guid>https://info.lumifaza.org/2022/09/Designing-a-signal-processing-environment-RFC-part-1/</guid><pubDate>Fri, 30 Sep 2022 13:29:48 GMT</pubDate></item></channel></rss>