[sdiy] Analysis modues, memory access patch cables

Harry Bissell hbissell at wowway.com
Mon Jan 30 03:05:14 CET 2023

It will be hard to get pitch to voltage info. What if the input sound is polyphonic? If the source is from the synth itself it might be better to analyze the voltages going into the VCO(s) and make decisions on that. For example use a separate summing module and analyze the output of that while running that into a VCO (instead of the usual summing in the VCO). 

Sounds like a fun idea.


Sent from my iPhone

> On Jan 29, 2023, at 10:33 AM, cheater cheater via Synth-diy <synth-diy at synth-diy.org> wrote:
> Modules that *measure* the incoming signal in some way are definitely
> the next step in the evolution of synthesis. You could also have
> trigger modules, which send out a trigger if something special
> happens. Some possible measurements you could take include:
> - roughness, as you mentioned. Send trigger if below or above a certain value.
> - loudness (i.e. envelope follower). Send trigger if zero for longer than t.
> - frequency (i.e. audio to pitch). Send trigger if can't find it
> longer than t; or send trigger if settled longer than t.
> - slope (how quickly the sound falls off from fundamental); send
> trigger of too bright or send trigger if too close to sinewave
> - self-correlation (if you already have the pitch of the signal, how
> similar are the subsequent cycles?); send trigger if it goes
> under/over certain value; send trigger if a jump was expected (eg a
> saw core reset) but didn't happen
> - loudness at specific frequencies (eg low / mid / high) - basically
> vocoding. you could also say this is a measure of the distribution of
> incoming signal samples vs frequency, i.e. how many values (in %) of
> the incoming signal are in a certain frequency bin. You could also
> sample wave cycles into the various bins and use them for something.
> - distribution of voltage values, i.e. how many (in %) values of the
> incoming signal are at a specific voltage. basically the classical
> distribution of a time series.
> - bayesian predictor: given the history of the signal, predict the
> immediate next value, or a value that's t seconds into the future (t
> is probably much less than 1 second)
> - bayesian probability: given the history of the signal, evaluate how
> probable the current signal was
> - state machine analyzer: analyze the incoming signal as generated
> from a state machine. guess the state machine. predict next output
> value / evaluate probability of latest input value (like bayesian
> predictor / probability)
> - predictive transformer based predictor / analyzer (basically a
> simplified version of the GPT algorithm)
> - FFT edge finder: look at the FFT of the sound coming in, do a curve
> fit using f(x) = x, x^2, x^3, x^1/2, x^1/3, exp(x), and log_e(x), and
> output what the current slope is of the curve, what the slope is
> between the curve at the start and end of the window, and how concave
> the curve is (i.e. the signed (pos/neg) area between the curve and the
> 2nd slope). Also output the certainty of your curve fit. The window is
> rolling, and output evaluated at every sample.
> - polyphony analyzer: how polyphonic is the current sound?
> - chord analyzer: what is the current chord root? what is the current
> chord type? Output trigger if can't find chord / can find chord.
> - ???
> The vocoder idea to store wave cycles suggests to me that it would be
> nice to have patch cables that can carry instantaneous access to wave
> data for subsequent modules. I.e. if you have a vocoder that collects
> waveforms into its internal memory and sorts them into low/mid/high
> frequency bins, patch a cable from e.g. low, to an oscillator, and
> that oscillator has access to all those wave cycles, and can then play
> them e.g. like a wavetable (scan the index from 0 to 255 or whatever)
> or probabilistically (play the various waveforms depending on some
> random cycle)
> The "vocoder storing a wave" could be broken up into two modules:
> 1. a vocoder that classifies the current input wave cycle as
> low/mid/high freq, and on top of what a vocoder normally does, it
> outputs the wave via a digital cable, including its low/mid/high
> classification, to another module
> 2. a module that stores the waves and provides them on a digital
> output, and contains memory to store past incoming values
> then, the second module could provide a vco the memorized values, and
> the vco could make sense of them on its own. the vco could then play
> back the waves. the waves are still stored on the storage module, and
> at every instant, when the vco needs a waveform, it asks the storage
> module to send it over. obviously this would require a high speed
> digital link.
> the vco could could then decide which waves to play back based on
> whatever parameter is attached to the waves. imagine something like a
> database table (eg sql) where one column contains the waveform, and
> the next column contains its low/mid/high classification.
> obviously the classification could be something else, e.g. the
> roughness value, or anything else you've managed to analyze from the
> waveform. or there could be multiple classifications, eg vocoder band
> + roughness + bayesian probability analyzer, and then eg you can have
> a vco knob that goes from (low roughness + low probability) to (high
> roughness + high probability) while also randomly cycling through
> vocoder bands at every cycle.
> at that point various set theoretic tools known from sql become
> available too (JOIN, INNER JOIN, WHERE, <. >, AND, OR, ...)
> Just letting my creativity run free
> Best regards
>> On Sun, Jan 29, 2023 at 11:05 AM David Huss <dh at atoav.com> wrote:
>> Roughness as a measure is described by Zwicker and Fastl in their 1990 book: Eberhard, and Hugo Fastl. Psychoacoustics: Facts and Models
>> Afaik there is also an ISO standard for sound roughness.
>> What such a broad measure as roughness would mean for synthesis, who knows. You would have to pick your poison there.
>> I think there is a lot of potential in the inverse tho: a module that spits out a CV with the perceived roughness of incoming audio.
>>> On January 29, 2023 6:39:17 AM UTC, cheater cheater via Synth-diy <synth-diy at synth-diy.org> wrote:
>>> BTW here's a bunch of sounds of varying roughness to listen to:
>>> "Rating EAS Alarms From Different Countries!"
>>> https://www.youtube.com/watch?v=CuduG89DrLE
>>> sadly someone's talking over them but you can hear enough.
>>> On Sun, Jan 29, 2023 at 7:37 AM cheater cheater
>>> <cheater00social at gmail.com> wrote:
>>>> Is it possible to define roughness so that a sound can be said to have
>>>> a specific amount of roughness at a specific frequency? It appears to
>>>> me that some sounds seem to sound "rough" at high frequency parts of
>>>> their spectrum and other sounds at low frequency parts, or others yet
>>>> at mid freq parts.
>>>> Maybe a spectral envelope of roughness vs frequency could be produced
>>>> (kind of like level vs frequency which is just the normal audio
>>>> spectrum of a sound)
>>> _______________________________________________
>>> Synth-diy mailing list
>>> Synth-diy at synth-diy.org
>>> http://synth-diy.org/mailman/listinfo/synth-diy
>>> Selling or trading? Use marketplace at synth-diy.org
>> _______________________________________________
>> Synth-diy mailing list
>> Synth-diy at synth-diy.org
>> http://synth-diy.org/mailman/listinfo/synth-diy
>> Selling or trading? Use marketplace at synth-diy.org
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org

More information about the Synth-diy mailing list