
Wenn Sie jemals ein Kino besucht haben, haben Sie wahrscheinlich
Deep Note gehört , das
Markenzeichen von THX . Dies ist einer der ersten GerĂ€usche, die zu Beginn von AnhĂ€ngern in THX-zertifizierten Hallen zu hören sind. Ich mochte immer sein erkennbares Crescendo, angefangen mit einer schrecklichen Mischung von Noten und endend mit einem hellen und groĂartigen Finale (
Sound ). Was fĂŒr eine Freude fĂŒr das Ohr!
Gestern (wahrscheinlich) war ich ohne Grund an der Entstehung dieses Klangs interessiert und habe ein wenig recherchiert. Ich war tief berĂŒhrt von seiner Geschichte, die ich mit Ihnen teilen möchte. Dann fahren wir fort - und wir werden diesen Sound selbst erzeugen, Schere und Kleber vorbereiten!
Die beste Informationsquelle ĂŒber den Klang, die ich finden konnte - meiner Meinung nach ist seine vollstĂ€ndige elektroakustische Komposition, die 2005 im exzellenten
Music Thing Blog veröffentlicht wurde. Hier ist der
Link zum Beitrag .
Einige Fakten zum Thema Sound:
- Es wurde 1982 von Dr. James Andy Moorer erstellt .
- An einem Tag in der Geschichte ging es fast alle 20 Sekunden 4.000 Mal am Tag verloren! Zitat von Dr. Moorer:
âIch möchte sagen, dass der Sound von THX das beliebteste Werk der Computermusik der Welt ist. Es mag wahr sein oder nicht, aber es klingt cool! â
- Es wird auf einem ASP-Computer (Audio Signal Processor) erstellt, der Sounds in Echtzeit synthetisieren kann.
- Ein Programm mit 20.000 Zeilen C-Code erzeugte Daten fĂŒr die Wiedergabe auf ASP. Die generierten Daten bestanden aus 250.000 Zeilen, die von ASP verarbeitet wurden.
- Sprachoszillatoren verwenden einen digitalisierten Celloton als Signal. Dr. Murer erinnert sich, dass die Stichprobe etwa 12 Harmonische enthielt. ASP könnte 30 dieser Oszillatoren in Echtzeit betreiben (zum Vergleich: Mein Laptop kann jetzt mehr als 1000 davon ohne Fehler verarbeiten).
- Der Sound selbst ist urheberrechtlich geschĂŒtzt, aber hier ist das Problem: Dr. Murers Code basiert auf Zufallszahlengeneratoren (generativer Prozess) und jedes Mal ist der Sound etwas anders. Daher kann ich nicht mit Sicherheit sagen, dass der Prozess selbst âurheberrechtlich geschĂŒtztâ ist oder sein kann. Der Sound selbst, ja, das spezifische Sample ist geschĂŒtzt.
- Der Sound debĂŒtierte im THX-Trailer "Return of the Jedi" vor seiner Premiere im Jahr 1983.
- Die generativen Eigenschaften des Prozesses wurden irgendwann problematisch. Nach der Veröffentlichung von The Return of the Jedi ging die ursprĂŒngliche Deep Note-Aufzeichnung verloren. Dr. Murer hat die Arbeit fĂŒr das Unternehmen nachgebaut, aber sie haben sich stĂ€ndig darĂŒber beschwert, dass sie nicht wie das Original klingt. Am Ende wurde die Originalaufnahme gefunden und an einem sicheren Ort aufbewahrt.
- Dr. Dre bat um Erlaubnis, das Sample in seiner Musik verwenden zu dĂŒrfen, aber er wurde abgelehnt. Er benutzte es trotzdem und bekam eine Klage.
- In der Arbeit von Metastaseis von Janis Xenakis (1954) gibt es ein sehr Àhnliches Eröffnungs-Crescendo (wie in anderen Werken verschiedener Komponisten). Aber es beginnt mit einem einzelnen Ton und endet mit einem halbabgestimmten Toncluster anstatt vollstÀndig konsonant, wie in Deep Note. Hier ist eine Tonaufnahme aus der Patentanmeldung zu hören.
Achten Sie darauf, den Sound zu hören, denn wenn wir Deep Note neu erstellen, beziehen wir uns auf diese bestimmte Aufnahme.
Hier einige technische / theoretische Fakten, bevor Sie mit der Klangsynthese beginnen:
- Meine Beobachtung: Auf dem ursprĂŒnglichen Eintrag von der Website des Patentamts liegt der Hauptton zwischen D und Eb, und in neueren Versionen liegt der Grundwert zwischen E und F. Wir werden die ursprĂŒngliche Konstante D / Eb verwenden. Neue Optionen sind normalerweise kĂŒrzer, wenn nicht falsch. NatĂŒrlich bevorzuge ich die Option, die beim Patentamt eingereicht wurde.
- Laut Dr. Murer (und auch von meinen Ohren bestĂ€tigt) beginnt das Fragment mit Oszillatoren, die auf zufĂ€llige Frequenzen zwischen 200 Hz und 400 Hz eingestellt sind. Die Oszillatoren summen jedoch nicht nur - ihre Frequenzen werden zufĂ€llig moduliert und sie verwenden GlĂ€ttungsfilter, um zufĂ€llige ĂbergĂ€nge von Tönen auszugleichen. Dies dauert bis zum Beginn des Crescendo.
- Innerhalb des Crescendo und am Ende des Klangsegments modulieren die Randomizer immer noch die Frequenzen der Oszillatoren, sodass keiner von ihnen zu einem bestimmten Zeitpunkt stabil ist. Der zufĂ€llige Sweep-Bereich ist jedoch so eng, dass er einfach einen natĂŒrlichen / choralen Klang hinzufĂŒgt.
- Dr. Murer erinnert sich, dass das Spektrum des digitalisierten Celloklanges etwa 12 verschiedene Harmonische enthielt.
- Soweit ich weiĂ, wurden die Werte fĂŒr den Generator (die zur Erlangung des Urheberrechts verwendet wurden) nie schriftlich veröffentlicht. Dr. Moorer sagt, er kann sie aufnehmen, wenn wir die Erlaubnis von THX erhalten. Aber ich denke, es ist nicht notwendig, den Sound neu zu erstellen.
- Der Sound im Finale (technisch gesehen kein Akkord) - in meinem Ohr nur die Addition der Oktaven des Grundtons. Bei der Rekonstruktion beginnen wir also mit zufÀllig abgestimmten Oszillatoren (zwischen 200 und 400 Hz), machen einen mehr oder weniger komplizierten Sweep und beenden, indem wir Oktaven auf die Tonhöhe zwischen dem niedrigen D / Eb anwenden.
Also fangen wir an. Mein Arbeitswerkzeug hier ist SuperCollider. Beginnen wir mit einem einfachen Beispiel. Ich möchte eine SÀgezahnwelle als Quelle verwenden, sie hat ein reiches und harmonisches Spektrum an geraden und ungeraden Komponenten. SpÀter plane ich, die Eckpunkte herauszufiltern. Hier ist ein Ausschnitt aus dem ersten Teil des Codes:
Ich habe 30 Oszillatoren ausgewĂ€hlt, um Sound zu erzeugen, entsprechend den FĂ€higkeiten des ASP-Computers, wie Dr. Murer sagte. Ich habe ein Array von 30 Zufallsfrequenzen zwischen 200 und 400 Hz erstellt und diese mit Pan2.ar mit dem Rand-Argument (-0,5, 0,5) zufĂ€llig ĂŒber das Stereofeld verteilt und den SĂ€gezahnoszillatoren Frequenzen zugewiesen (30 Kopien).
So klingt es .
Wenn Sie die Informationen von Dr. Moorer studieren und / oder das Originalfragment sorgfĂ€ltig anhören, können Sie hören, dass die Oszillatorfrequenzen zufĂ€llig auf und ab verschoben werden. Ich möchte diesen Effekt fĂŒr einen organischeren Klang hinzufĂŒgen. Die Frequenzskala ist logarithmisch, daher sollten bei niedrigeren Frequenzen engere Schwingungsbereiche auftreten als bei höheren. Dies kann erreicht werden, indem unsere zufĂ€llig erzeugten Frequenzen mit LFNoise2 (das quadratisch interpolierte Zufallswerte erzeugt) von mehreren Argumenten in der Reihenfolge innerhalb unseres Mix-Makros sortiert werden. AuĂerdem habe ich ein Tiefpassfilter fĂŒr Oszillatoren mit einer Grenzfrequenz von dem FĂŒnffachen der Oszillatorfrequenz und einem moderaten 1 / q hinzugefĂŒgt:
So klingt das Sample mit den neuesten Ănderungen.
Dies scheint bereits ein guter Ausgangspunkt zu sein, also lasst uns einen Sweep implementieren, der zunĂ€chst sehr unhöflich ist. Um einen Sweep zu implementieren, mĂŒssen Sie zuerst die Endfrequenzen fĂŒr jeden Oszillator bestimmen. Es ist nicht sehr einfach, aber auch nicht sehr schwierig. Der Hauptton sollte zwischen tiefem D und Eb liegen, daher betrĂ€gt die durchschnittliche Frequenz fĂŒr diesen Ton 14,5 (0 ist C, chromatisch gezĂ€hlt, ohne die erste Oktave). FĂŒr 30 Oszillatoren ĂŒbersetzen wir also zufĂ€llige Frequenzen zwischen 200 und 400 Hz in einen Wert von 14,5 und die entsprechenden Oktaven. Nach Gehör habe ich die ersten 6 Oktaven gewĂ€hlt. Die endgĂŒltige Anordnung der Frequenzen lautet also wie folgt:
(numVoices.collect({|nv| (nv/(numVoices/6)).round * 12; }) + 14.5).midicps;
Wir werden den Sweep von 0 bis 1 verwenden. ZufÀllige Frequenzen werden mit dem Wert
(1 â )
multipliziert, und die Zielfrequenzen werden mit dem Sweep selbst multipliziert. Wenn der Sweep 0 (der Anfang) ist, ist die Frequenz daher zufÀllig. Wenn der Sweep 0,5 betrÀgt, stellt sich heraus
(( + ) / 2)
, und wenn er 1 ist, ist die Frequenz der Endwert. Hier ist der geÀnderte Code:
Der Sound ist
da .
Wie gesagt, dies ist ein sehr grober Scan. Sie steigt linear von 0 auf 1 an, was nicht mit der ursprĂŒnglichen Zusammensetzung ĂŒbereinstimmt. Möglicherweise haben Sie auch bemerkt, dass die letzten Oktaven schrecklich klingen, weil sie auf perfekte Oktaven abgestimmt sind und wie Basistöne und Obertöne miteinander verschmelzen. Wir werden dies beheben, indem wir in der letzten Phase einen zufĂ€lligen Swing hinzufĂŒgen - genau wie zu Beginn, und es wird viel organischer klingen.
Zuerst mĂŒssen Sie die allgemeine Frequenzdurchlaufformel festlegen. Der vorherige war nur zur Verhandlung. Wenn wir uns das Original ansehen, stellen wir fest, dass sich in den ersten 5 bis 6 Sekunden nur sehr wenige Ănderungen im Klang ergeben. Danach findet ein schneller und exponentieller Sweep statt, der die Oszillatoren zu endlichen Oktavintervallen fĂŒhrt. Hier ist die Option, die ich gewĂ€hlt habe:
sweepEnv = EnvGen.kr(Env([0, 0.1, 1], [5, 8], [2, 5]));
Hier dauert ein Ăbergang von 0 auf 0,1 5 Sekunden und ein Ăbergang von 0,1 auf 1 8 Sekunden. Die KrĂŒmmungen fĂŒr diese Segmente sind auf 2 und 5 eingestellt. SpĂ€ter hören wir uns an, was passiert ist, aber zuerst mĂŒssen wir die endgĂŒltigen Intervalle erneut festlegen. Nach wie vor fĂŒgen wir mit LFNoise2 zufĂ€llige Schwingungen hinzu, deren Bereich proportional zur Endfrequenz des Oszillators ist. Dies wird das Finale organischer machen. Hier ist der geĂ€nderte Code:
Hier habe ich auch die Grenzfrequenz des Tiefpassfilters nach meinem Geschmack eingestellt. Ich mag es, Dinge zu reparieren, wenn das Ergebnis nicht schlechter wird ... Auf jeden Fall
ist das passiert .
Ich mag dieses Scanmuster nicht wirklich. Sie mĂŒssen den Start verlĂ€ngern und das Ziel beschleunigen. Oder warten Sie ... ist es wirklich notwendig, fĂŒr alle Oszillatoren die gleiche Schaltung zu implementieren? Absolut nicht! Jeder Oszillator sollte eine eigene Schaltung mit leicht unterschiedlichen Zeit- und KrĂŒmmungswerten haben - ich bin sicher, dass es interessanter sein wird. Die hochfrequenten Obertöne eines zufĂ€lligen SĂ€gezahnclusters sind immer noch etwas Ă€rgerlich, daher fĂŒgen wir dem Gesamtergebnis ein Tiefpassfilter hinzu, dessen Abschaltung durch einen globalen âexternenâ Wert gesteuert wird, der nichts mit Oszillatorschaltungen zu tun hat. Hier ist der geĂ€nderte Code:
Eine kleine Ănderung machte den Scan etwas interessanter. Ein 2000-Hz-Tiefpassfilter hilft, den anfĂ€nglichen Cluster zu zĂ€hmen.
So klingt es .
Es gibt noch eine Sache, die den Prozess interessanter macht. Denken Sie daran, wir haben am Anfang zufĂ€llige Oszillatoren sortiert? Nun können wir sie in umgekehrter Reihenfolge sortieren und sicherstellen, dass die Oszillatoren mit höheren Zufallsfrequenzen nach dem Crescendo in den niedrigeren Stimmen landen und umgekehrt. Dies fĂŒgt dem Crescendo mehr âBewegungâ hinzu und stimmt mit der Struktur des Originalfragments ĂŒberein. Ich bin mir nicht sicher, ob Dr. Murer es so programmiert hat, aber es gibt diesen Prozess auf der Platte, und es klingt cool, ob es sich um ein zufĂ€lliges Produkt eines generativen Prozesses oder eine spezielle Wahl handelt. (Oh, habe ich das gesagt? Wenn der Prozess eine solche Option bietet, ist dies die Wahl ... oder nicht?). Daher werden wir die Sortierreihenfolge und -struktur des Codes so Ă€ndern, dass die SĂ€gezĂ€hne mit höheren Frequenzen im Finale in niedrigere Stimmen fallen und umgekehrt.
Noch etwas: Sie brauchen einen lauteren Bass. Jetzt haben alle Stimmen die gleiche Amplitude. Ich möchte, dass leise Töne etwas lauter klingen und proportional zur Frequenzerhöhung verblassen. Daher Ă€ndern wir das mul-Argument fĂŒr Pan2 entsprechend. Stellen Sie die Grenzfrequenzen der Tiefpassfilter fĂŒr einzelne Oszillatoren neu ein. Und ich werde ein Amplitudenskalierungsschema hinzufĂŒgen, das reibungslos wirksam wird und am Ende verschwindet und sich vom Scserver befreit. Hier und da noch ein paar numerische Einstellungen - und hier ist der endgĂŒltige Code:
Und hier ist die
endgĂŒltige Aufnahme der Arbeit .
Sie können mit dem
Original vergleichen.
Ja, das ist meine Interpretation. Und natĂŒrlich kann es zu Tode optimiert werden, indem Muster, Frequenzen, Verteilung usw. geĂ€ndert werden. Dennoch denke ich, dass dies ein wĂŒrdiger Versuch ist, das solide Erbe zu bewahren. Ich wĂŒrde gerne Ihre Kommentare und / oder Ihre eigenen Versuche hören, dieses Crescendo zu synthetisieren.
Ja, und hier ist eine andere Sache, die ich zum SpaĂ gemacht habe. Denken Sie daran, ich habe Ihnen gesagt, dass 20.000 Zeilen C-Code erforderlich waren, um das Original zu generieren. Ich bin mir ziemlich sicher, dass Dr. Moorer alles von Hand schreiben musste, daher ist diese Zahl nicht ĂŒberraschend. Aber Sie wissen, aufgrund der PopularitĂ€t von Twitter versuchen wir, alles in 140 Zeichen Code zusammenzufassen. Zum VergnĂŒgen habe ich versucht, die Grundelemente der Komposition in 140 Zeichen des Codes zu reproduzieren. Ich denke, dass das Sample immer noch cool klingt, hier ist der Code (hier mit dem Hauptton F / E):
play{Mix({|k|k=k+1/2;2/k*Mix({|i|i=i+1;Blip.ar(i*XLine.kr(rand(2e2,4e2),87+LFNoise2.kr(2)*k,15),2,1/(i/a=XLine.kr(0.3,1,9))/9)}!9)}!40)!2*a}
Und
hier ist der Sound , den diese Version erzeugt.
In
einem Dokument - der gesamte Code dieser Seite fĂŒr Ihre Experimente.
Gutes Crescendo, Freunde!