How is Sporth - YaP für Live-Musik-Sessions

Wir haben eines der vorherigen Materialien OpenMusic gewidmet - einem Tool zum Schreiben von Musik auf OOP. Wir sprachen auch über Programmiersprachen, die auf die Erstellung von Audiokompositionen zugeschnitten sind.

Heute haben wir beschlossen, das Thema fortzusetzen und über die Sprache Sporth zu sprechen. Es wurde speziell entwickelt, damit Komponisten bei Live-Auftritten Computermusik schreiben können.


Foto von ichael Pierce / Unsplash

Was ist Sporth?


Der Begriff „ Musikprogrammierung “ bezieht sich häufig auf den Vorgang des Schreibens von Musik mit Sequenzern, Synthesizern und Software. Einige Künstler wenden sich jedoch mehr „Hardcore“ -Tools zu - Programmcode und spezialisiertes PL.

Eine solche Sprache ist Sporth .

Sporth (kurz für SoundPipe FORTH) ist eine gestapelte Programmiersprache, die in C implementiert ist. Mit ihren Operatoren können Sie Signale mit verschiedenen Frequenzen und Tasten erzeugen, mit Funktionstabellen für Sequenzer arbeiten und parametrische Modulation implementieren.

Die Sprache wurde von Ingenieur Paul Batchelor entwickelt, der früher mit dem Google ATAP- Team an Rednern arbeitete . Er präsentierte sein Projekt auf der Internationalen Konferenz für Live-Codierung im Jahr 2018. Obwohl das Quell-Repository viel früher auf GitHub erstellt wurde - im Jahr 2016.


Laut Paul wurde er bei der Gestaltung von Sporth von Stapelsprachen wie Forth und PostScript inspiriert. Forth unterstützt viele CPUs, die nur über begrenzte Rechenressourcen verfügen. Beispielsweise wurde es in Jupiter ACE mit einem Kilobyte RAM verwendet. Wie bei PostScript liegt die Variation im PDF-Format vor und der Interpreter ist in viele Drucker integriert.

Sprachfunktionen


Sporth verwendet das Maschinenmodell des Stapels, um Parameter zu übergeben. Der Programmierer fügt eine Reihe von miteinander verbundenen Signalgeneratoren (Einheitengeneratoren) hinzu, die für die Klangwiedergabe verantwortlich sind. Die folgende Linie bildet beispielsweise eine Sinuskurve mit einer Frequenz von 440 Hz und einer Amplitude von 0,5 Punkten (das Instrument hat eine eigene Skala).

440 0.5 sine 

Signalgeneratoren können mit dem Symbol "+" kombiniert werden. Das Ergebnis der folgenden Befehlsliste ist beispielsweise ein zweifarbiges DTMF-Signal .

 440 0.2 sine 350 0.2 sine + 

Die Sprache unterstützt das Arbeiten mit Triggern - Einzelimpulsen -, die vom Metronom (Metro) gebildet werden. Das folgende Beispiel zeigt, wie Sie mit Sporth einen Hüllkurvengenerator erstellen:

 4 metro 0.5 maytrig 0.001 0.01 0.01 tenvx 1000 0.5 sine * 

Mit Sporth können Sie mit Variablen, parametrischer Modulation und direkten Stapeloperationen arbeiten. Alle verwendeten Operatoren sind kurz und werden der Reihe nach ausgeführt.

Diese Sprachstruktur beschleunigt das Schreiben von Code. Dies ist einer der Hauptgründe, warum es für Live-Sessions verwendet wird - wenn ein Komponist-Programmierer Musik in Echtzeit vor einem Live-Publikum schreibt. Übrigens können Sie alle Bediener unabhängig voneinander untersuchen und in der Praxis ausprobieren - das Netzwerk verfügt über eine interaktive Umgebung auf Go.

Auch auf der Website finden Sie mehrere musikalische Beispiele .


Photo Slim Emcee / Unsplash

Die Einwohner von Hacker News bemerken jedoch, dass die Sprache eine eher dürftige Dokumentation hat, was für Anfänger unter den "Musikprogrammierern" nicht geeignet ist. Der Autor verspricht, dieses Manko zu beheben , aber Sie können sich vorerst dem thematischen Kochbuch und den technischen Daten auf GitHub zuwenden.

Sporth verfügt außerdem über eine API zur Integration in Anwendungen von Drittanbietern. Es werden Funktionen geöffnet, die in einer interaktiven Umgebung nicht verfügbar sind, z. B. benutzerdefinierte Rückruffunktionen. Insbesondere wird Sporth bereits von Entwicklern des Frameworks zum Synthetisieren von AudioKit- Sounds für iOS verwendet.

Analoga


Die Anzahl der Sporth-Analoga ist ziemlich groß, aber unter ihnen kann die Sprache ChucK unterschieden werden. Es wurde von den Ingenieuren Perry Cook (Perry Cook) und Guy Wong (Ge Wang) von der Princeton University speziell für Live-Auftritte entwickelt. ChucK ist eine Multiparadigmasprache mit einer starken Datentypisierung, die für Windows, Linux und Mac OS X verfügbar ist. Sie unterstützt die parallele Ausführung mehrerer Threads und ermöglicht es Ihnen, das Programm direkt zur Laufzeit zu ändern.

Die Dokumentation mit Implementierungsbeispielen ist auf der Projektwebsite verfügbar .

Neben ChucK gibt es einen Supercollider - dies ist nicht nur eine Sprache, sondern auch eine Echtzeit-Audiosynthese-Umgebung. Mit dem Tool können Sie benutzerdefinierte GUIs für die Arbeit mit Sound erstellen: Schieberegler, Analysatoren und andere. Sie können MIDI-Geräte und HIDs zum Verwalten Ihrer Aufnahmen verwenden.

Interessanterweise wird Musik auch in der oben genannten Forth-Stack-Sprache geschrieben, die Paul Batchelor inspiriert hat. Es baut auf dem Synstack-Projekt auf - einer Software- und Hardwareplattform zum Erzeugen von Sound auf dem STM32F4 / F7- Mikrocontroller. Synstack unterstützt mehr als 25 Operatoren: Signalgeneratoren (Sinus, Säge, Bezier-Kurve), Filter, algebraische Funktionen usw. Forth wird auch für das dynamische Rendern von Grafiken verwendet - dafür gibt es eine Forth Haiku- Plattform. Theoretisch eignet sich das Instrument zur Klangvisualisierung.

Erwähnenswert sind auch musikalische Programmierwerkzeuge wie Csound, Pure Data und Importu. Wenn Sie mit anderen Musensprachen arbeiten müssten. Programmierung, teilen Sie Ihre Erfahrungen in den Kommentaren.



Zusätzliche Lektüre aus unserer „HiFi-Welt“:

Was ist Musikprogrammierung - wer macht das und warum?
Wie der PC die Medienbranche mit Software eroberte: Besprechung von Pro Tools und Media Composer
Wie das Knacken eines Feuers wird das Knarren von Türen und Geräuschen zur Musik

"Alles, was Sie lesen, wird gegen Sie verwendet": wie Rap-Musik in den Gerichtssaal kam
Videospielemusiker: einige der bekanntesten Namen
Wo Sie Hörproben für Ihre Projekte erhalten: eine Auswahl von neun thematischen Ressourcen


Source: https://habr.com/ru/post/de483504/


All Articles