erledigt Hat dieser Noise-Algorithmus einen Namen?

jedenfalls, das war meine hauptbotschaft - die dir als nicht-DSPler ja gelegen kommen dürfte -, macht es keinen sinn ein digitales 1/f oder 1/f² rauschen statt mithilfe von 1/f oder 1/f² zu berechnen das random() zu nehmen und dann eine moog ladder filter emulation dahinter zu schalten, an der du dir drei tage einen wolf programmierst und die dann einfach nicht das macht, was du wolltest, sondern nur etwas ähnliches.
Ich sage weder, dass ich 1/f^x will, noch, dass ich das nicht will. Im Moment spielt das für mich eh nur eine geringe Rolle, Rauschen hat für mich gerade keine Priorität, das Thema wurde von jemand anderem hochgeholt. Für mich sind das vielmehr Spezialfälle von dem, was ich mir vorstelle. Was ich momentan hab, ist ein Kompromiss, in der Tat "etwas ähnliches", besser als nix halt. Habe eben noch mal die Wikipedia-Seiten zu rosa und braunem Rauschen überflogen. Sehe keinen Hinweis auf eine steigene Flanke, nur dass sie fällt. Einen Anteil steigende Flanke bis zur Sollfrequenz oder besser gesagt maximal konzentrierte Rauschleistungsdichte, danach genauso wieder fallende, auf die dB-Zahl bzw. x leg ich mich jetzt mal nicht fest.

Die zufallsbasierten Rauschgeneratoren haben die gleiche interne Schnittstelle wie die Oszillatoren. Dazu gehört auch ein Array von Frequenzen bzw. Abtastpositionen mit möglicherweise variablen Abständen, die extern berechnet werden, denn so passiert FM und Pitch-bend. Der gesuchte Algorithmus soll also den Anteil der meisten Rauschleistungsdichte im Spektrum nach Belieben herumschieben können. Quasi Rauschen mit eingebautem Bandpass geringer Flankensteilheit. Ich hoffe, ich benutze die etablierte Terminologie richtig.
 
Zuletzt bearbeitet:
es gibt weder braunes rauschen noch hätten verteilungsräume eine flankensteilheit. :)


ich darf aber auf die möglichkeit verweisen dein "hoch- und bandpass-rauschen" zu erzeugen, indem du ein "tiefpass rauschen" vom original subtrahierst.

dazu musst du einfach nur für beide (z.b. rosa und weiss) das gleiche random() verwenden.
 
Brown'sches Rauschen, 1/(f**2). Und nein, Verteilungsräume haben keine Flankensteilheit, aber Bandpassfilter? Egal, Wortklauberei. Danke für den Hinweis auf Subtraktion, dann muss (will) ich noch mal selber nachdenken, wie ich das mit meinen Anforderderungen vereinbare. Nicht jetzt, aber irgendwann, wenn mir die jetzige Kompromisslösung mit der Hineinrotation von Zufallssamples in einen Sollkorridor in der linken, in der rechten Hälfte des Spektrums zweigeteilter, oberer und unterer Korridor irgendwie auf die Füße fällt (bei einer Sollfrequenz in der Mitte herrscht weißes rauschen). Oder ich nichts anderes zu tun habe.
 
Tja - wenn du partout von Verteilungsräumen sprechen willst, statt von Bandpassfiltern, die mit weißem Rauschen gefüttert werden, dann kann ich dein Problem mit der Flankensteilheit verstehen. Sonst nicht.

Verteilungsräume implizieren die Voraussetzung einer Art Gedächnis. "Niederfrequentes" Rauschen, weil du geringere Pegelunterschiede gegenüber größeren Pegelunterschieden benachbarter Zufallswerte bevorzugen willst, bedeutet dann ja nicht, dass höhere Unterschiede immer verflacht werden müssen, sondern nur, wenn sie zu häufig werden. Das ist mein Problem mit dem Ansatz.
 
Zuletzt bearbeitet:
"verteilungsraum" oder "verteilung" sind die abstrakten begriffe aus der stochastik. "frequenzfilter" ist nur die wahrnehmung des anwenders (aber eben keine sinnvolle alternative methode das zu programmieren), weil die verteilung der werte im wertebereich in signalen immer in einem verhältnis zum leistungsspektrum steht.

ändert man die wahrscheinliochkeitsverteilung, ändern sich auch die amplituden im raum.


wenn ich richtig beobachte wie und was du so programmieren willst, sollte es dir absolut entgegenkommen, dass man verschiedene formen von rauschen eben genau nicht mit klassischen frequenzfiltern programmiert sondern durch verzerrung der wahrscheinichkeitsverteilung.


sicher hast du den begriff "farbraum" schon mal gehört. CMYK in RGB in LUV umwandeln und all das farbzeuch. das ist ähnlich, nur halt in 2D.

und auch die anwendung ist ähnlich: der einzige sinn eines LUV farbraumes ist, dass man dann in seinem photoshop filter die luminanz mit einer linearen variable verändern kann (und dafür aber die helligkeit nicht mehr.)


(auf deutsch bin ich mit den begriffen leider auch immer etwas unsicher, aber) man nennt z.b. die verteilung bei weißem rauschen "gleichförmig", die bei rosa rauschen ist die "lineare" und gauss- oder bell-mäßige sind dann als "normalverteilung" bekannt.

beginnen tut man immer bei random() (oder mehreren randoms) und ob es dann in float oder int weitergeht ist eine frage des ziels.


die kabelverknoter von der telekom handeln das ein bischen anders wie die musiker und DSP helden. bei denen heißt alles - unabhängig von der wahrscheinlichkeitsverteilung - was ursprünglich mal ein weißes rauschen war, auch weiterhin so (also z.b. "weisses rauschen mit gausscher verteilung")


wir können es aber gerne auch einfach "bubu" und "dada" nennen, hauptsache man einigt sich darauf, was es bedeutet.

wenn du pseudo code brauchst, einfach sagen. :)
 
Ich habe gewiss eine Vorstellung von Verteilungsräumen. Ich habe sogar eine Vorstellung davon, wie ich statisches Rauschen auf Grundlage von Verteilungsräumen implementieren würde. Es wäre kein effizienter Code.

Du weißt vielleicht ungefähr aus meiner anderen Benennungsdiskussion - Layer vs. "Sympartial", du erinnerst dich? - wie ich arbeite: ich stapele elementare Wellenformen, die jede eine eigene Hüllkurve haben, übereinander. Ungeachtet der Form wird dem jeweiligen Generator (Oszillator) die Sollfrequenz mitgeteilt, also das Produkt eines (ungefähr) natürlichzahligen Faktors und der Sollgrundfrequenz, kurz n×f. Neben Sinus, Sägezahn, Rechteck und Dreieck möchte ich auch Noise und linearinterpolierte Cracks (Zickzack, Slopy, wie auch immer) unterstützen.

Anwendungsbereiche finden sich zum Beispiel in der Modellierung von Anblasgeräuschen, exotischer Percussion, Meeresbrandung u.ä., vielleicht bis hin zu verschiedensten arhythmischen Störartefakten, die im Welthit in spe bleiben, sicher vor Angriffen durch KI, bis der community-refinanziert ist. ;-) Bruharhar.

Die Sollfrequenz, d.h. ab einem bestimmten Schritt in der Verarbeitung die einzelnen Abstände zwischen den Abtastpunkten, muss nicht statisch sein, sondern kann moduliert und kontinuierlich variiert werden.

Damit muss jede unterstützte Wellenform oder i.w.S. Generatorfunktion umgehen, punktum. Noise und Slopy "bemühen sich redlich", müsste man ihnen ins Arbeitszeugnis schreiben, aber immerhin kriegen sie tief, mittel und hoch ungefähr hin, und Transitionen. Mit Verteilungsräumen wüsste ich ehrlich nicht, wie das gehen soll ohne obszöne Von-hintenrum-durchs-Knie-ins-Auge-Aktionen, wozu etwa veränderlich gewichtete Superposition mehrerer Räusche zählt. Auch der Missbrauch von Layern mit zeitlich versetzten Hüllkurven ist nicht das Gelbe vons Ei, da stinken doch die Designfehler zum Himmel.
 
Es wäre kein effizienter Code.

normal distribution is mein favorit, weil er in eine zeile passt:

expr (sqrt(-2.*ln(1-((random(0,32767))*(1./32767)))))*(cos(((random(0,32767))*(1./32767.))*6.283185307))

egal of FFT oder poles and zeros, alles andere wäre viel ineffektiver als die verteilung direkt zu generieren.

poles and zeros wäre sogar gefährlich, da instabil.

du erinnerst dich? - wie ich arbeite: ich stapele elementare Wellenformen, die jede eine eigene Hüllkurve haben, übereinander.

...nur additiv wäre wohl noch ineffektiver. :)

Die Sollfrequenz, d.h. ab einem bestimmten Schritt in der Verarbeitung die einzelnen Abstände zwischen den Abtastpunkten, muss nicht statisch sein, sondern kann moduliert und kontinuierlich variiert werden.

statt "richtigen" frequenzfiltern könntest du dafür einen resonator benutzen?

ein resonator ist der CPU freundlichste "bandpass" den man sich vorstellen kann.

jedenfalls vor dem hintergrund (bzw. bei dem zeil, ws du hier erreichen willst erscheint mir ein solcher filter dann fast logischer als den rauschgenerator zu modulieren. obwohl frequenzbereich clippen etwas ist, was sich durchaus im generator machen lässt.

Damit muss jede unterstützte Wellenform oder i.w.S. Generatorfunktion umgehen, punktum.



Von-hintenrum-durchs-Knie-ins-Auge-Aktionen, wozu etwa veränderlich gewichtete Superposition mehrerer Räusche zählt

einer von denen hier kann das so halbwegs, ich weiß aber jetzt nicht welcher^^, da ich die für signale nie gebaut habe.

rauschmusik törnt mich einfach nicht genug an. wenn rauschen brummen würde, hätte es bei mir einen besseren stand.


http://laut8leise.de/files/laplace.jpg


http://laut8leise.de/files/laplace%202.jpg
 
Zuletzt bearbeitet:
normale menschen würden wahrscheinlich einfach ein stück gebandpasstest rauschen in ein wavetable schreiben.

das kann man dann notfalls mit deiner muddah rauf und runter pitchen wie man bock hat - und der spektralbereich wandert immer brav mit.
 
Zuletzt bearbeitet:
normal distribution is mein favorit, weil er in eine zeile passt:
Tatsächlich dachte ich dabei ganz groß an freiformatierte Verteilungen, ob nun via Polygone oder via Kurven. Wobei mir besonders letzteres auch sonst gefällt. Würd ich normale, gleichmäßige und derlei Verteilungen nur als Optionen auswählbar machen können, wär das zwar durchaus effizient ja. Aber ach ne, weißte, ich nämlich nicht genau, warum mich das abtörnt.

Was meinst du mit brummendem Rauschen? Rauschen mit der meisten Rauschleistungsdichte im ganz linken Spektrum?
 
Zuletzt bearbeitet:
gar kein rauschen. nur brummen. :)

habe gestern noch schnell "laplace" für signale gebaut. ist sinnlos. hörbeispiel erspare ich uns.
 
Ach, da bist du hier nicht der einzige. Ich glaube, @einseinsnull und ich reden gut und gesittet aneineinander vorbei.

Freimodelliertes statisches, d.h. sollfrequenzunabhängiges Rauschen hätte ich schon irgendwie Lust versuchsweise zu implementieren.

Es geht im Wesentlichen so: Es sei gegeben ein Polynom n-ten Grades, mein Liebling also, die Fläche darunter sei der Verteilungsraum. Den unterteilt man auf x Säulen. Diese Säulen haben eine Summe aller Höhen (für Mathematiker: approximierte Integration / Approximation nur weil ich nicht weiß wie es richtig geht, es im Kern aber auch keine Rolle spielt). Jedes Zufallssample weißes Rauschen 0..[1 wird auf diese Höhensumme skaliert. Sei ein Zufallssample von 0.631 gegeben, so muss man wahrscheinlich mit einem binären Baum feststellen, auf welcher Säule es liegt, und noch genauer wo auf der Diagonalen von der linken unteren bis zur rechten oberen Ecke dieser Diagonalen es liegt, denn alle Diagonalen verkettet ergeben die Übertragungsfunktion des weißen Rauschens auf das freimodelliert verteilte Rauschen. So kriegt man am Ende heraus, wie groß der Pegelunterschiedsbetrag für 0.631 an dieser Abtastposition zur vorigen Abtastposition sein muss.

Jeder dieser Diagonalen könnte eine dritte Dimension haben: die Zeit. Wenn man die Veränderung der Rauschleistungsdichte eines Frequenzbands über die Zeit auch noch berücksichtigt ... wird das alles noch mal langsamer.
 
du musst dir darüber in klaren sein, dass wenn du quasi kurven freihand zeichen willst, die dann auch noch gestimmt spielbar sein sollen, dass du dann nicht umhin kommen wirst, entweder einen FFT filter oder additive synthese zu benutzen.

und wenn ich die vielen vielleichts in deiner theorie in blei gießen sollte, dann käme ich da immer noch auf ein set von dutzenden von wavetables mit harmonischen.

die naheliegenste architektur wären parallel laufende wavetables mit teiltönen, deren amplituden jeweils ein trapez beschreiben, z.b. pro oktave:

. i I I I I i .

die kannst du dann perfekt aneinander legen, so dass das ganze wieder linear wird und es überall gleich laut ist, du kannst löcher dazwischen lassen oder wavetables übereinanderschieben, oder du kannst die einzelnen gruppen untereinander in der amplutude gegeneinander verstellen.

circa 400 teiltöne sind locker ausreichend um ein rauschen mit normalverteilung zu erzeugen, ohne dass es blechern klingt. dazu lässt du einfach unter 80 Hz alles weg.

es gibt noch ein besseres video als ds von diesem depp hier, aber vieleicht kannst du es hier auch schon erahnen wie es funktioniert.


https://youtu.be/c3wk9WWTfNs?t=321
 
Zuletzt bearbeitet:
ein FFT EQ dürfte der gewinner in der rubrik CPU sein. natürlich mit latenz.

Es geht im Wesentlichen so

und immer schön zwischen "es geht" und "ich könnte mir vorstellen, dass es vielleicht geht" unterscheiden.
 
Zuletzt bearbeitet:
circa 400 teiltöne sind locker ausreichend um ein rauschen mit normalverteilung zu erzeugen, ohne dass es blechern klingt. dazu lässt du einfach unter 80 Hz alles weg.

es gibt noch ein besseres video als ds von diesem depp hier, aber vieleicht kannst du es hier auch schon erahnen wie es funktioniert.
Habe jetzt ein wenig Probleme den Faden des Diskussion aufzunehmen, was ihr hier bauen wollt aber:
Für ein rosa Spektralverhalten (also nach oben ausklingenden Amplituden) ist im Wesentlichen der untere Bereich für das Hören interessant. Dort muss dann eine hohe Frequenzdichte herrschen, will man praktisch unabhängige Frequenzen zu einem Rauschen addieren. Das läuft dann auf ca 15-20 Frequenzen je Oktave hinaus, weswegen man praktisch z.B. 24x10 benutzt. Ein von mir mitentwickelter DA-Testgenerator nutzt sogar nur 12x12. Für quasi weisses Rauschen (in einem dedizierten Bereich) braucht man auch oben mehr Dichte, weswegen eine mehr lineare Einteilung nötig ist. 12 Frequenzen reichen daher nur im unteren Bereich für z.B. 24 Hz - 48Hz. Bei einem maximalen Abstand von 5Hz (das ist für diesen Fall schon arg grob) wäre man bei immerhin schon bis 5000 Wellen (25kHz). Mein diesbezüglich für einen Kunden entwickelter Core arbeitet mit 65535 Frequenzen.
 
Für ein rosa Spektralverhalten (also nach oben ausklingenden Amplituden) ist im Wesentlichen der untere Bereich für das Hören interessant.

im zweifel probiert man das einfach aus. die meisten leute hier würden ja nicht mal 60 hertz hören, weil ihre boxen das gar nicht wiedergeben.

wenn man das mit additiver synthese mal austestet, dann kommt man da mit 40 - 8000 Hz (also vereinfacht gesagt: die obere und die untere oktave weglassen) schon recht gut hin. und auch wenn 250 oder 400 noch ein bischen blecherner klingt als 1000 oder 2000, für percussion sounds ist das allemal okay.

die resynthese in kyma haben wir früher mit 1024 gemacht und den unterschied zum 16 bit oirignal konnte man nicht nur nicht hören, sondern vor allem auch kaum noch messen.


neusiker´s hauptproblem ist wohl die verteilung zu bestimmen, um dadurch einen frequenzfilter zu haben, ohne einen frequenzfilter dafür benutzen zu müssen. ;-)

warum er überhaupt mit texteditoren audio rendert muss er selbst erklären.
 
Heutige Zufallsgeneratoren sind Mist, selbst aus Quantenrauschen erzeugte Zufallswerte wiederholen sich recht schnell
und sind vorhersagbar
Das Spektrum von Zufallsgeneratoren ist heute u.a. Dank Herrn Marsaglia et. al. so breit, dass für jeden etwas dabei sein sollte - je nach Anforderung. Welche davon sich als Rauschgenerator mit vorhersagbarem - und nicht vorhersagbarem Verhalten eigenen, ist bei den meisten auch bestens untersucht. Für Radar, Lidar und SDR sowie Codierung und Transport (militärisch und nichtmilitärisch) haben wir jedenfalls alles beisammen, was wir brauchen:) Für die Klangerzeugung zu musikalischen und messtechnischen Zwecken, sind deterministische Systeme sicher die richtige Wahl - besonders, wenn man sie einfach filtern möchte. Wer unbedingt eine nicht vorhersagbare Zahlenfolge als Rauschgenerator benötigt, mit dennoch bekanntem Spektrum, dem sei ein Mersenne-Twister empfohlen oder etwas Proprietäres wie ich es hier vorschlage https://www.mikrocontroller.net/articles/Digitaler_Rauschgenerator_im_FPGA mit dieser Erweiterung: https://www.mikrocontroller.net/articles/Digitaler_Zufallszahlengenerator_in_VHDL

Für die Vorhersagbarkeit des Quantenrauschens hätte ich gerne mal eine Quelle :cool:
 
warum er überhaupt mit texteditoren audio rendert muss er selbst erklären.
Muss ich? Ist hier off-topic. Nur kurz: ich beschreibe Klang/Geräusch und Musik in Textform, weil erstens ich mir weder mit Hardware die Wohnung zustellen will noch meinen recht alten Computer mit grafisch aufgebrezelter Software zuschmeißen möchte, man zweitens Text besonders gut mit DCVS versionieren kann und drittens ich mir nicht für jeden beliebigen Einsatzzweck eine andere maschinell mal mehr, mal weniger effiziente Rauschformel erfragen oder aus den Fingern saugen möchte. Daher lege ich Wert auf flexible Primitive, deren detailgenaue Verwendung ich über eine eigene, nach meinem Verständnis entworfene Sprache bestimme.
 
"musst du", weil ich es immer noch nicht so ganz durchblicke. was aber egal ist.

die frage danach wie das random erzeugt wird und wie random das random ist, ist jedenfalls für deine zwecke (also für on topic) ziemlich egal, denn von noch zufälligerem zufall hat man nur noch weniger möglichkeiten, mit möglichst einfachen mitteln rauschen mit unterschiedlichen verteilungen zu erzeugen.

wie das beispiel additive synthese beweist geht das ja sogar komplett ohne zufall. ;-)
 
Zufall kann vorhersehbar sein für meine Zwecke. Ich ziehe eh nur eine begrenzte Anzahl und iteriere zyklisch drüber, immer wenn ich Zufall brauche während der Laufzeit des Programms. Die Position speichere ich immer und iteriere beim nächsten Aufruf dort weiter.

So egal ist es aber auch nicht. Der (alles andere als eifrig) gesuchte Algorithmus muss wie gesagt eine Frequenz als Parameter "umdeuten" in den spektralen Ort des Rauschenergie-Maximums. Aber wie muss es links und rechts neben diesem Maximum aussehen? Bildet das Ganze eine Glocke oder ein Dreieck oder was, und wie hoch und breit ist der Sockel? Wäre schon schön, wenn ich das dem Generator eines zeit+frequenzvariablen Rauschgenerators mitgeben könnte.

Aber wenn es sowas nicht gibt, soll es auch gut sein, ich hab ja ein pragmatisches Provisorium und so viele Verwendungszwecke für Geräusche gibt es nun auch nicht, zumal ich mit solchen abseitigen Fragen eh nur ums eigentliche Musikmachen drumrum prokrastiniere. Musik kann mich auch berühren, wenn sie ohne Geräusch, Hall und Agogik und so Zeug auskommen muss. Oder wenn sie das nicht tut, können es die drei auch nicht mehr reißen.
 
Zuletzt bearbeitet:
gibt es meiner meinung nach nicht. durch wahrscheinlichkeitsverteilung kommst du nicht zu irgendwelchen spektralen verteilungen, die mehr machen als einen simplen hoch- oder tiefpass. wie du weißt ist frequenz immer etwas, was sich zwischen den werten abspielt, das lässt sie nicht in einem rutsch generieren.
 


News

Zurück
Oben