sound channel mixing - Formel ?

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.

Re: sound channel mixing - Formel ?

Beitragvon Schrompf » 10.07.2017, 14:07

Und der Schalldruck ist die Druckverteilung im Medium.

Du hast Recht, sowas gibt es. Das sind nichtlineare Verzerrungen im Schall, die bei >100db auftreten. Das kann man gelegentlich bei großen Konzerten erleben, obwohl die Lautstärkenvorschrift für öffentliche Veranstaltungen in Deutschland der Sache seit einigen Jahren ein Ende bereitet hat. Bis zu diesen ~100db aber ist der Schalldruck ziemlich linear, ein simples A+B beschreibt das Verhalten nahezu perfekt.

Und wie gesagt: das alles kann Dir eigentlich wurscht sein, weil Du den Schall in digitalisierter Form beschreibst und am Ende über Boxen ausgibst, die nicht Deiner Kontrolle unterliegen. Du musst damit klarkommen, dass Du nur Amplituden von -1..+1 haben kannst. Und für diese Situation gelten all die oben xmal wiederholten Formeln.
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3608
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: sound channel mixing - Formel ?

Beitragvon Krishty » 10.07.2017, 14:08

Bild
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
 
Beiträge: 6006
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: sound channel mixing - Formel ?

Beitragvon DerAlbi » 10.07.2017, 18:41

Ahahahaha Krishty :-D Wie sich hier alle Mühe geben und du haust dennoch wieder mal den inhaltlich passendsten Beitrag raus :-D
DerAlbi
 
Beiträge: 172
Registriert: 20.05.2011, 05:37

Re: sound channel mixing - Formel ?

Beitragvon RedGuy » 11.07.2017, 09:42

Hi zusammen!

Also wenn man meine obige Formel vereinfacht, ist mir aufgefallen, kommt man auf den Durchschnitt ;) !

Also

Auslenkung_gesamt = (Summe Auslenkungen) / (Anzahl Auslenkungen)


Schallkonstanten fallen heraus.

Also ich komme letztenendes auf (A+B)/2 !!!

Wäre das auch erledigt 8-) .


Gruss
RedGuy
RedGuy
Manuel Hofmann
 
Beiträge: 111
Registriert: 17.09.2002, 17:27
Wohnort: Rottweil

Re: sound channel mixing - Formel ?

Beitragvon joeydee » 11.07.2017, 13:21

Durchschnitt heiß bei dir dann im Weiteren (A+B+C)/3 ?
joeydee
 
Beiträge: 490
Registriert: 23.04.2003, 15:29

Re: sound channel mixing - Formel ?

Beitragvon DerAlbi » 11.07.2017, 13:26

Jo, damit wird alles immer leiser je mehr quellen man hat. Sind die Quellen still....
und wie ich sagte: nutze nicht den faktor 2, sondern sqrt(2). Statistisch reicht das. Man muss ja nicht mehr Signal verlieren als nötig.
DerAlbi
 
Beiträge: 172
Registriert: 20.05.2011, 05:37

Re: sound channel mixing - Formel ?

Beitragvon joeydee » 11.07.2017, 13:28

Darauf wollte ich mit meiner Frage raus. Lass ihn das selbst entdecken.
joeydee
 
Beiträge: 490
Registriert: 23.04.2003, 15:29

Re: sound channel mixing - Formel ?

Beitragvon DerAlbi » 11.07.2017, 13:38

Ist ja nicht so, dass das nicht schon erwähnt gewesen wäre....
DerAlbi
 
Beiträge: 172
Registriert: 20.05.2011, 05:37

Re: sound channel mixing - Formel ?

Beitragvon RedGuy » 11.07.2017, 13:47

Hallo !

Ja ich meine (A+B+C)/3

Die Quellen sollten nicht still werden, denn der Zähler erhöht sich ja ebenfalls.

Also das Ganze sollte wirklich stimmen, denn es ist physikalisch hergeleitet...

Gruss
Red

[EDIT]
PS: bald habe ich meinen 100. Beitrag 8-) :D ;)
RedGuy
Manuel Hofmann
 
Beiträge: 111
Registriert: 17.09.2002, 17:27
Wohnort: Rottweil

Re: sound channel mixing - Formel ?

Beitragvon Schrompf » 11.07.2017, 13:51

RedGuy hat geschrieben:Also das Ganze sollte wirklich stimmen, denn es ist physikalisch hergeleitet...


Oh Gott. Ich hatte echt gedacht, es wäre irgendwas von dem angekommen, was ich hier getippt habe. Und dann sehe ich ganz oben auf Mount Stupid jemanden winken.

PS: bald habe ich meinen 100. Beitrag 8-) :D ;)

Ein enormer Meilenstein, bei der Qualität der Texte, die Du vorlegst.
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3608
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: sound channel mixing - Formel ?

Beitragvon joeydee » 11.07.2017, 14:05

Deine Durchschnittsrechnerei bedeutet grob:
Egal wieviele Explosionen gleichzeitig stattfinden, es wird nie lauter.
Und wenn zu einer Explosion eine Grille zirpt, wird die Explosion plötzlich leiser.

Meinst du doch nicht ernst, oder?
joeydee
 
Beiträge: 490
Registriert: 23.04.2003, 15:29

Re: sound channel mixing - Formel ?

Beitragvon DerAlbi » 11.07.2017, 14:11

Master RedGuy, einfach nur, weil ich Spaß dran habe es nochmal zu schreiben:
mach eine Wurzel um deinen Faktor.
(A+B)/sqrt(2)
(A+B+C)/sqrt(3)

Physikalisch korrekt herleiten kannst du nur A+B. Der Faktor hat nichts mit Physik zu tun, sondern was mit dem limitierten Dynamikumfang deines digitalen Systems.
Wenn überhaupt kann man den Faktor 2 nur numerisch begründen (um Überlauf zu vermeiden). Überläufe sind aber nicht so schlimm, solange sie nicht überhand nehmen. Daher reicht statistisch sqrt(2). Das hat noch andere Begründungen, aber.. wozu..
DerAlbi
 
Beiträge: 172
Registriert: 20.05.2011, 05:37

Re: sound channel mixing - Formel ?

Beitragvon Zudomon » 11.07.2017, 14:24

In den letzten Tagen habe ich auch mal darüber nachgedacht, mal genau diese Frage zu stellen. Krass, wie sich diese dann ohne mein Wissen hier im Forum manifestiert :D

Erstmal denke ich, das einfache Addieren ist richtig. Letztendlich ist es ja das gleiche, wie Wellen auf Wasser. Das skalieren mit der inversen Anzahl der Quellen ist auch korrekt, um die Übersteuerung komplett zu vermeiden. Allerdings ist hier Vorsicht geboten. Sagen wir, wir haben 4 Soundquellen... also A + B + C + D, das Ganze / 4, wenn 1 die Maximalamplitude jeder Quelle ist. Dieses / 4 würde nun aber auch bleiben, wenn eine Soundquelle verschwindet oder selbst leise wird. Dieser Faktor muss auch gar nicht / 4 sein. Denn wir wollen Übersteuerung vermeiden, jede Sound Quelle würde aber garantiert auch nicht in voller Intensität zu Buche schlagen. Wenn wir hier von Geräuschen im Spiel ausgehen, dann nehmen die ja wie Lichtquellen mit Abstand² ab, wenn keine Wände den Schall reflektieren. Überhaupt kann man sich gut mit Raytracing, Lichtquellen usw. ein gutes Äquivalent schaffen.
Schrompf hat ja auch schon auf das HDR aufmerksam gemacht, dass man eventuell auch eine Art Tonemapping anwenden könnte. Da kenne ich mich aber nicht aus. Aber bei Lichtquellen hat man genau das gleiche Problem. Wenn man das HDR Bild dann per Tonemap runterskaliert, wird das Bild auch nicht übersteuert und ergibt immer noch einen plausiblen Eindruck. Mich würde interessieren, ob das bei Schall auch so ist.
Eine Überlegung ist noch, dass damals zu DOS Spiele Zeiten ja auch nur eine Begrenzte Anzahl an Sounds gemischt wurden. Wenn also das obige 4 Sound Beispiel einfach so genommen würde, und man die stärksten 4 Soundquellen benutzt, dann sollte es ja immer noch einen guten Eindruck machen. Wobei "strärkste" bedeutet ja schon, dass zusätzliche Sounds dann immer weiter abnehmen und weniger beitragen.

Also mein Fazit nach den ganzen Überlegungen ist, wenn man nicht mit Tonemapping rumprobieren möchte, einfach einen Gesamtskalierungsfaktor einbauen. Vielleicht noch dynamisch tatsächlich Sounds runter skalieren, wenn z.B. temporär A und C extrem laut sind, beide etwas runterschrauben, damit es insgesamt wieder passt. Aber das wäre eigentlich schon eine Notlösung, denn ich glaube, letztendlich heißt es ausprobieren und schauen, ob sich das Ergebnis scheiße anhört oder gut genug ist. Und wenn irgendwo 3 Samples übersteuern ist das sicher auch nicht so tragisch. Denn wir haben hier ja gar nicht eine permanente Übersteuerung, sondern die kann ja nur auftreten, wenn die Wellenberge auch wirklich zusammen fallen.

Schrompf hat geschrieben:
RedGuy hat geschrieben:
PS: bald habe ich meinen 100. Beitrag 8-) :D ;)

Ein enormer Meilenstein, bei der Qualität der Texte, die Du vorlegst.

:lol:
Zuletzt geändert von Zudomon am 11.07.2017, 15:12, insgesamt 2-mal geändert.
Bild
Benutzeravatar
Zudomon
 
Beiträge: 2065
Registriert: 25.03.2009, 08:20

Re: sound channel mixing - Formel ?

Beitragvon Krishty » 11.07.2017, 14:36

Bild
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
 
Beiträge: 6006
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: sound channel mixing - Formel ?

Beitragvon joeydee » 11.07.2017, 14:48

Zudomon hat geschrieben:Also mein Fazit nach den ganzen Überlegungen ist
Schrompf hat geschrieben:a) ein festes Gain, also ne schlichte Multiplikation der Amplitude. (A+B)*f
b) Ein Kompressor, also eine Amplituden-Abbildungsformel, die hohe Amplituden sozusagen ausbremst. Die knallharte Lösung, die zuverlässig 0..unendlich auf 0..1 bremst, wäre der von DerAlbi anfangs genannte tanh()
c) Ein Limiter, also ein zustandsbehafteter Gain, der die Amplitude jedes Samples gegen einen Maximalwert prüft und bei Überschreiten den Gain runterschraubt und erst langsam über Zeit wieder hochkommen lässt. Also (A+B) * f(Zeit)

:D

Krishty, herrlich :D
joeydee
 
Beiträge: 490
Registriert: 23.04.2003, 15:29

VorherigeNächste

Zurück zu Algorithmen und Datenstrukturen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste