Ich bin es leid
, in die Vergangenheit zu
schauen . Es gibt viele Anleitungen, um das Erscheinungsbild historischer Artefakte nachzubilden, aber oft vergessen wir, dass dies ein kreativer Akt ist. Vielleicht sind wir zu sehr an unsere Bildschirme gebunden, wir legen zu viel Wert auf das Erscheinungsbild. Versuchen
wir stattdessen, etwas aus der Vergangenheit zu
hören .
Die reichhaltige Literatur zu Archäoakustik und Klanglandschaften hilft dabei, den Klang des Ortes, an dem
er sich befand, nachzubilden (siehe beispielsweise
die Virtuelle Kathedrale von St. Paul oder
Jeff Veitchs Arbeit über das antike Ostia ). Ich bin jedoch daran interessiert, die Daten selbst zu "äußern". Ich möchte die Syntax für die Darstellung von Daten in Form von Klang definieren, damit diese Algorithmen in der Geschichtswissenschaft verwendet werden können. Drucker sagte, der
berühmte Satz, dass "Daten" nicht wirklich das sind, was gegeben wird, sondern das, was erfasst, transformiert, das heißt "capta". Wenn ich Daten ausspreche,
reproduziere ich buchstäblich
die Vergangenheit in der Gegenwart. Daher treten Annahmen und Transformationen dieser Daten in den Vordergrund. Die daraus resultierenden Klänge sind eine „deformierte Performance“, mit der Sie moderne Schichten der Geschichte auf neue Weise hören können.
Ich möchte die Bedeutung der Vergangenheit hören, aber ich weiß, dass dies unmöglich ist. Wenn ich jedoch das Instrument höre, kann ich mir den Musiker physisch vorstellen. Durch Echos und Resonanzen kann ich den physischen Raum unterscheiden. Ich fühle den Bass, ich kann mich im Rhythmus bewegen. Musik bedeckt meinen Körper, meine ganze Vorstellungskraft. Assoziationen mit zuvor gehörten Klängen, Musik und Tönen schaffen eine tiefe zeitliche Erfahrung, ein System verkörperter Beziehungen zwischen mir und der Vergangenheit. Visualität? Wir haben visuelle Darstellungen der Vergangenheit so lange gehabt, dass diese Grammatiken fast ihre künstlerische Ausdruckskraft und ihren performativen Aspekt verloren haben.
In dieser Lektion lernen Sie, wie Sie aus historischen Daten Rauschen erzeugen.
Die Bedeutung dieses Geräusches liegt bei Ihnen. Ein Teil des Punktes besteht darin, Ihre Daten wieder ungewohnt zu machen. Durch Übersetzen, Neukodieren und
Wiederherstellen sehen wir Datenelemente, die während der visuellen Untersuchung unsichtbar blieben. Diese Verformung steht im Einklang mit den Argumenten, die beispielsweise Mark Sample über die
Verformung der Gesellschaft oder Bethany Nouwiski über die
"Beständigkeit von Materialien" vorgebracht haben. Das Scoring führt uns von Daten zu „Untertiteln“, von Sozialwissenschaften zu Kunst,
von Pannen zu Ästhetik . Mal sehen, wie es aussieht.
Inhalt
Ziele und Vorgaben
In diesem Tutorial werde ich drei Möglichkeiten erläutern, wie Sie aus Ihren Daten Sound oder Musik erzeugen können.
Zunächst werden wir das von Jonathan Middleton entwickelte freie und offene Musikalgorithmus-System verwenden. Darin werden wir wichtige Probleme und Begriffe kennenlernen. Dann nehmen wir eine kleine Python-Bibliothek, um die Daten auf die 88-Tasten-Tastatur zu „übersetzen“ und etwas Kreativität in die Arbeit zu bringen. Laden Sie abschließend die Daten in das Echtzeit-Sound- und Musikverarbeitungsprogramm Sonic Pi hoch, für das viele Tutorials und Referenzressourcen veröffentlicht wurden.
Sie werden sehen, wie uns die Arbeit mit Sounds von der einfachen Visualisierung zu einer wirklich effektiven Umgebung bewegt.
Die Werkzeuge
Datenproben
Eine kleine Einführung in das Überspielen
Die Beschallung ist eine Methode zur Übersetzung bestimmter Aspekte von Daten in Audiosignale. Im Allgemeinen kann eine Methode als „Bewertung“ bezeichnet werden, wenn sie bestimmte Bedingungen erfüllt. Dazu gehören die Reproduzierbarkeit (andere Forscher können dieselben Daten auf dieselbe Weise verarbeiten und dieselben Ergebnisse erzielen) und das, was als „Verständlichkeit“ oder „Verständlichkeit“ bezeichnet werden kann, dh wenn wesentliche Elemente der Originaldaten systematisch im resultierenden Klang wiedergegeben werden (siehe
Hermann, 2008 ). Die Arbeit von
Mark Last und Anna Usyskina (2015) beschreibt eine Reihe von Experimenten, um festzustellen, welche analytischen Aufgaben bei der Bewertung von Daten ausgeführt werden können. Ihre
experimentellen Ergebnisse zeigten, dass auch ungeschulte Schüler (ohne formale Musikausbildung) zwischen Hördaten unterscheiden und nützliche Schlussfolgerungen ziehen können. Sie fanden heraus, dass die Zuhörer die allgemeinen Aufgaben des Data Mining wie Klassifizierung und Clustering nach Gehör ausführen konnten (in ihren Experimenten sendeten sie grundlegende wissenschaftliche Daten auf einer westlichen Musikskala).
Last und Usyskina konzentrierten sich auf die Zeitreihen. Zeitreihendaten eignen sich nach ihren Erkenntnissen besonders gut für die Bewertung, da hier natürliche Parallelen bestehen. Die Musik ist konsistent, hat eine Dauer und entwickelt sich im Laufe der Zeit; auch mit Zeitreihendaten (
Last, Usyskina 2015: S. 424 ). Es bleibt, die Daten mit den entsprechenden Audioausgängen zu vergleichen. In vielen Anwendungen wird das Parameterabbildungsverfahren verwendet, um die Datenaspekte verschiedener auditorischer Messungen wie Höhe, Variationsform und Intervall (Beginn) zu kombinieren. Das Problem bei diesem Ansatz besteht darin, dass sich der resultierende Ton als "verwirrt" herausstellen kann, wenn keine temporäre Verbindung (oder vielmehr eine nichtlineare Verbindung) zwischen den Quelldatenpunkten besteht (
2015: 422 ).
Lücken füllen
Wenn eine Person den Klang hört, füllt sie die Momente der Stille mit ihren Erwartungen. Stellen Sie sich ein Video vor, in dem MP3 in MIDI und zurück in MP3 konvertiert wird. Die Musik wird „abgeflacht“, sodass alle Audioinformationen mit einem Instrument wiedergegeben werden (der Effekt ähnelt dem Speichern einer Webseite als TXT, dem Öffnen in Word und dem erneuten Speichern im HTML-Format). Alle Sounds (einschließlich Gesang) werden in die entsprechenden Notenwerte und dann zurück in MP3 übersetzt.
Das ist Lärm, aber Sie können den Punkt erfassen:
Was ist hier los? Wenn Ihnen dieses Lied bekannt war, haben Sie wahrscheinlich die wahren „Worte“ verstanden. Aber das Lied hat keine Worte! Wenn Sie es noch nicht gehört haben, klingt es nach bedeutungsloser Kakophonie (weitere Beispiele weiter)
Andy Bayo Website). Dieser Effekt wird manchmal als auditive Halluzination bezeichnet. Das Beispiel zeigt, wie wir in jeder Datendarstellung hören / sehen können, was genau genommen nicht ist. Wir füllen die Lücke mit unseren eigenen Erwartungen.
Was bedeutet das für die Geschichte? Wenn wir unsere Daten aussprechen und anfangen, Klangmuster oder seltsame Ausbrüche zu hören, werden unsere kulturellen Erwartungen an Musik (Erinnerungen an ähnliche Musikfragmente, die in bestimmten Kontexten zu hören sind) unsere Interpretation beeinflussen. Ich würde sagen, dass dies für alle Vorstellungen über die Vergangenheit gilt, aber die Bewertung unterscheidet sich erheblich von Standardmethoden. Dieses Selbstbewusstsein hilft daher, bestimmte kritische Muster in (Daten über) die Vergangenheit zu identifizieren oder auszudrücken.
Wir werden drei Werkzeuge zum Bewerten von Daten betrachten und feststellen, wie sich die Auswahl eines Werkzeugs auf das Ergebnis auswirkt und wie dieses Problem durch Überdenken der Daten in einem anderen Werkzeug gelöst werden kann. Letztendlich ist die Bewertung nicht objektiver als die Visualisierung, daher sollte der Forscher bereit sein, seine Wahl zu rechtfertigen und diese Wahl transparent und reproduzierbar zu machen. (Damit niemand denken kann, dass das Scoring und die algorithmisch erzeugte Musik etwas Neues sind, leite ich den interessierten Leser an
Hedges, 1978 ).
Jeder Abschnitt enthält eine konzeptionelle Einführung, gefolgt von einer exemplarischen Vorgehensweise unter Verwendung archäologischer oder historischer Daten.
Musikalische Algorithmen
Es gibt eine Vielzahl von Tools zum Stimmen von Daten. Zum Beispiel Pakete für die beliebte
statistische R-Umgebung wie
playitbyR und
AudiolyzR . Das erste wird jedoch in der aktuellen Version von R nicht unterstützt (das letzte Update war vor einigen Jahren). Damit das zweite ordnungsgemäß funktioniert, ist eine ernsthafte Konfiguration zusätzlicher Software erforderlich.
Im Gegensatz dazu ist die Website von
Musicalgorithms recht einfach zu bedienen und seit über zehn Jahren in Betrieb. Obwohl der Quellcode nicht veröffentlicht wurde, handelt es sich um ein langfristiges Forschungsprojekt in Computermusik von Jonathan Middleton. Es befindet sich derzeit in der dritten Hauptversion (frühere Iterationen sind im Internet verfügbar). Beginnen wir mit Musicalalgorithms, da wir so unsere Daten schnell herunterladen und konfigurieren können, um die Präsentation als MIDI-Dateien freizugeben. Bevor Sie beginnen, müssen Sie die
dritte Version auswählen.
Website für Musikalgorithmen ab dem 2. Februar 2016Musikalische Algorithmen führen eine Reihe von Datentransformationen durch. Im folgenden Beispiel (standardmäßig auf der Site) gibt es nur eine Datenzeile, obwohl es wie mehrere Zeilen aussieht. Dieses Muster besteht aus durch Kommas getrennten Feldern, die intern durch Leerzeichen getrennt sind.
Anzahl der Stimmen, Name des Textbereichs, Daten des Textbereichs
1, morphBox,
, areaPitch1,2 7 1 8 2 8 1 8 2 8 4 5 9 0 4 5 2 3 5 3 6 0 2 8
, dAreaMap1,2 7 1 8 2 8 1 8 2 8 4 5 9 0 4 5 2 3 5 3 6 0 2 8
, mapArea1.20 69 11 78 20 78 11 78 20 78 40 49 88 1 40 49 20 30 49 30 59 1 20 78
, dMapArea1.1 5 1 5 1 5 1 5 1 5 3 3 6 0 3 3 1 2 3 2 4 0 1 5
, so_text_area1.20 69 11 78 20 78 11 78 20 78 40 49 88 1 40 49 20 30 49 30 59 1 20 78
Diese Zahlen repräsentieren die Quelldaten und ihre Konvertierungen. Durch die Freigabe der Datei kann ein anderer Forscher die Arbeit wiederholen oder die Verarbeitung mit anderen Tools fortsetzen. Wenn Sie von vorne beginnen, benötigen Sie nur die folgenden Quelldaten (Liste der Datenpunkte):
Anzahl der Stimmen, Name des Textbereichs, Daten des Textbereichs
1, morphBox,
, Flächenabstand 1,24 72 12 84 21 81 14 81 24 81 44 51 94 01 44 51 24 31 5 43 61 04 21 81
Für uns ist der Schlüssel das Feld 'areaPitch1' mit den Eingabedaten, die durch Leerzeichen getrennt sind. Andere Felder werden während der Arbeit mit verschiedenen Einstellungen für Musikalgorithmen ausgefüllt. In den obigen Daten (zum Beispiel 24 72 12 84 usw.) sind die Werte die anfänglichen Berechnungen der Anzahl von Inschriften in britischen Städten entlang der Römerstraße (später werden wir mit anderen Daten üben).
Nach dem Laden der Daten in der oberen Menüleiste können Sie verschiedene Vorgänge auswählen. Wenn Sie im Screenshot mit der Maus über die Informationen fahren, wird erklärt, was passiert, wenn Sie die Teilungsoperation auswählen, um die Daten auf den ausgewählten Notenbereich zu skalierenWenn Sie nun verschiedene Registerkarten in der Benutzeroberfläche anzeigen (Dauer, Höhenübersetzung, Dauerübersetzung, Skalierungsoptionen), stehen verschiedene Transformationen zur Verfügung. Bei der Tonhöhenabbildung gibt es eine Reihe von mathematischen Optionen zum Übersetzen von Daten auf eine vollständige Klaviertastatur mit 88 Tasten (bei einer linearen Übersetzung wird der
Durchschnittswert in den Durchschnitt C übersetzt, d. H. 40). Sie können auch den Skalentyp auswählen: Moll oder Dur usw. Zu diesem Zeitpunkt müssen Sie nach Auswahl verschiedener Transformationen die Textdatei speichern. Auf der Registerkarte Datei → Wiedergabe können Sie die Midi-Datei herunterladen. Ihr Standard-Audioprogramm sollte Midi spielen können (häufig werden standardmäßig Klaviernoten verwendet). Anspruchsvollere MIDI-Tools werden in Mixer-Programmen wie GarageBand (Mac) oder
LMMS (Windows, Mac, Linux) zugewiesen. Die Verwendung von GarageBand und LMMS würde jedoch den Rahmen dieses Handbuchs sprengen: Ein LMMS-Video-Tutorial finden Sie
hier , und GarageBand-Tutorials sind online verfügbar. Zum Beispiel eine
großartige Anleitung auf Lynda.com.
Es kommt vor, dass für dieselben Punkte mehrere Datenspalten vorhanden sind. Nehmen wir an, in unserem Beispiel aus Großbritannien möchten wir auch die Berechnung der Keramikarten für dieselben Städte zum Ausdruck bringen. Anschließend können Sie die nächste Datenzeile neu laden, Transformationen und Vergleiche durchführen und eine weitere MIDI-Datei erstellen. Da Sie mit GarageBand und LMMS Stimmen überlagern können, können Sie komplexe Musiksequenzen erstellen.
Screenshot von GarageBand, in dem Midi-Dateien Themen aus John Adams 'Tagebuch sind. In der GarageBand- (und LMMS-) Oberfläche wird jede Midi-Datei mit der Maus an die entsprechende Stelle gezogen. Das Toolkit jeder Midi-Datei (d. H. Track) wird im GarageBand-Menü ausgewählt. Die Titelbezeichnungen wurden geändert, um die Schlüsselwörter in jedem Thema wiederzugeben. Der grüne Bereich rechts ist eine Visualisierung der Noten auf jeder Spur. Sie können diese Oberfläche in Aktion sehen und hier Musik hörenWelche Conversions sind zu verwenden? Wenn Sie zwei Datenspalten haben, sind dies zwei Stimmen. Vielleicht ist es in unseren hypothetischen Daten sinnvoll, die erste Stimme laut als die Hauptstimme wiederzugeben: Am Ende „sprechen“ die Inschriften auf irgendeine Weise zu uns (römische Inschriften beziehen sich wörtlich auf Passanten: „Oh du, vorbei ...“). Und Keramik ist vielleicht ein bescheideneres Artefakt, das mit dem unteren Ende der Skala verglichen oder die Dauer von Noten verlängert werden kann, was ihre Allgegenwart unter Vertretern verschiedener Klassen in dieser Region widerspiegelt.
Es gibt keinen einzigen „richtigen“ Weg, um Daten in Ton umzuwandeln , zumindest noch nicht. Aber auch in diesem einfachen Beispiel sehen wir, wie Bedeutungs- und Interpretationsschattierungen in den Daten und ihrer Wahrnehmung erscheinen.
Aber was ist mit der Zeit? Historische Daten haben oft eine bestimmte Datumsbindung. Daher muss die Zeitspanne zwischen zwei Datenpunkten berücksichtigt werden. Hier wird unser nächstes Tool nützlich, wenn die Datenpunkte zeitlich und räumlich miteinander in Beziehung stehen. Wir beginnen von Scoring (Datenpunkte) zu Musik (Beziehungen zwischen Punkten) überzugehen.
Übe
In der ersten Spalte
des Datensatzes ist die Anzahl der römischen Münzen und die Anzahl der anderen Materialien aus denselben Städten angegeben. Informationen aus dem Portable Antiquities Scheme des British Museum. Die Verarbeitung dieser Daten kann einige Aspekte der wirtschaftlichen Situation entlang der Watling Street, der Hauptroute durch das römische Großbritannien, aufzeigen. Datenpunkte befinden sich geografisch von Nordwesten nach Südosten. Während sich der Ton reproduziert, hören wir Bewegung im Raum. Jede Note repräsentiert jeden Stopp auf dem Weg.
- Öffnen Sie die Sonification-Roman-Data.csv in einer Tabelle. Kopieren Sie die erste Spalte in einen Texteditor. Löschen Sie die Zeilenenden, damit sich alle Daten in derselben Zeile befinden.
- Fügen Sie die folgenden Informationen hinzu:
Anzahl der Stimmen, Name des Textbereichs, Daten des Textbereichs
1, morphBox,
, areaPitch1,
... so folgen Ihre Daten unmittelbar nach dem letzten Komma (wie pltcm ). Speichern Sie die Datei unter einem aussagekräftigen Namen, z. B. coinsounds1.csv
.
- Gehen Sie zur Musicalgorithms- Website (dritte Version) und klicken Sie auf die Schaltfläche "Laden". Klicken Sie im Popup-Fenster auf die blaue Schaltfläche "Laden" und wählen Sie die im vorherigen Schritt gespeicherte Datei aus. Die Site lädt Ihre Materialien hoch und zeigt bei Erfolg ein grünes Häkchen. Ist dies nicht der Fall, stellen Sie sicher, dass die Werte durch Leerzeichen getrennt sind, und folgen Sie sofort dem letzten Komma im Codeblock. Sie können versuchen, die Demo-Datei aus diesem Handbuch herunterzuladen.

Nachdem Sie auf "Laden" geklickt haben, wird dieses Dialogfeld im Hauptbildschirm angezeigt. Klicken Sie dann auf "CSV-Datei laden". Wählen Sie Ihre Datei aus, sie wird im Feld angezeigt. Klicken Sie anschließend unten auf die Schaltfläche "Laden".
- Klicken Sie auf "Pitch Input" und Sie sehen die Werte Ihrer Daten. Wählen Sie zu diesem Zeitpunkt keine zusätzlichen Optionen auf dieser Seite aus (daher gelten die Standardwerte).
- Klicken Sie auf "Duration Input". Wählen Sie hier noch keine Optionen aus . Diese Optionen führen verschiedene Transformationen Ihrer Daten durch, wobei sich die Dauer jeder Note ändert. Fahren Sie fort, bis Sie sich über diese Optionen Gedanken machen.
- Klicken Sie auf "Pitch Mapping". Dies ist die wichtigste Wahl, da Ihre Rohdaten in die Tastaturtasten übersetzt (d. H. Skaliert) werden. Belassen Sie die
mapping
im Teilungswert (andere Parameter sind modulare Übersetzung oder logarithmisch). Der Range
Parameter von 1 bis 88 verwendet die gesamte Tastaturlänge von 88 Tasten. Somit entspricht der niedrigste Wert der tiefsten Note auf dem Klavier und der höchste Wert der höchsten Note. Stattdessen können Sie die Musik auf einen Bereich um das mittlere C beschränken und dann einen Bereich von 25 bis 60 31,34,34,34,25,28,30,60,28,25,26,26,25,25,60,25,25,38,33,26,25,25,25
Die Ausgabe ändert sich wie folgt: 31,34,34,34,25,28,30,60,28,25,26,26,25,25,60,25,25,38,33,26,25,25,25
. Dies sind nicht Ihre Zahlen, sondern die Notizen auf der Tastatur.

Klicken Sie in das Feld 'Bereich' und geben Sie 25 ein. Die folgenden Werte ändern sich automatisch. Stellen Sie im Feld 'bis' 60 ein. Wenn Sie zu einem anderen Feld wechseln, werden die Werte aktualisiert
- Klicken Sie auf "Duration Mapping". Wie bei der Höhenübersetzung verwendet das Programm hier den angegebenen Zeitbereich und verwendet verschiedene mathematische Parameter, um diesen Bereich in Notizen zu übersetzen. Wenn Sie mit der Maus über
i
, sehen Sie, welche Zahlen ganzen Noten, Vierteln, Achteln usw. entsprechen. Behalten Sie die Standardeinstellungen vorerst bei.
- Klicken Sie auf "Skalierungsoptionen". Hier beginnen wir mit dem zu arbeiten, was gewissermaßen dem „emotionalen“ Aspekt entspricht. Normalerweise wird die Dur-Tonleiter als "freudig" und die Moll-Tonleiter als "traurig" empfunden. Eine ausführliche Diskussion zu diesem Thema finden Sie hier . Lassen Sie vorerst 'Skala nach: Dur'. Belassen Sie die Skala bei C.
Also haben wir eine Datenspalte angekündigt! Klicken Sie auf "Speichern" und dann auf "CSV speichern".
Dialogfeld "Speichern"Sie erhalten so etwas wie diese Datei:
Anzahl der Stimmen, Name des Textbereichs, Daten des Textbereichs
1, morphBox,
, Flächenabstand 1,80 128 128 128 1 40 77 495 48 2 21 19 1 1 500 1 3 190 115 13 5 1 3
, dAreaMap1,2 7 1 8 2 8 1 8 2 8 4 5 9 0 4 5 2 3 5 3 6 0 2
, mapArea1.31 34 34 34 25 28 30 60 28 25 26 26 25 25 60 25 25 38 33 26 25 25 25
, dMapArea1.1 5 1 5 1 5 1 5 1 5 3 3 6 0 3 3 1 2 3 2 4 0 1
, so_text_area1.32 35 35 35 25 28 30 59 28 25 27 27 25 25 59 25 25 39 33 27 25 25 25
Die ursprünglichen Daten blieben im Feld 'areaPitch1', und die erstellten Zuordnungen gehen weiter. Auf dieser Site können Sie in einer MIDI-Datei bis zu vier Stimmen gleichzeitig erzeugen. Je nachdem, welche Instrumente Sie später verwenden möchten, können Sie jeweils eine MIDI-Datei generieren. Beginnen wir mit der Musik: Klicken Sie auf "Abspielen". Hier wählen Sie das Tempo und das Instrument. Sie können Ihre Daten in einem Browser anhören oder als MIDI-Datei mit der blauen Schaltfläche 'MIDI-Datei speichern' speichern.
Kehren wir zum Anfang zurück und laden beide Datenspalten in diese Vorlage:
Anzahl der Stimmen, Name des Textbereichs, Daten des Textbereichs
2, morphBox,
, areaPitch1,
, areaPitch2,
Hier sind wir auf der Seite mit den Parametern 'Pitch Input'. Geben Sie oben im Fenster zwei Stimmen an, jetzt auf jeder Seite mit Parametern zwei Fenster für zwei geöffnete Stimmen. Wie zuvor laden wir die Daten im CSV-Format, aber die Datei muss so formatiert sein, dass dort die Werte 'areaPitch1' und 'areaPitch2' angezeigt werden. Die Daten für die erste Stimme werden links und die zweite - rechts angezeigtWenn wir mehrere Stimmen haben, was sollte in den Vordergrund gerückt werden? Bitte beachten Sie, dass bei diesem Ansatz bei unserer Sprachausgabe die Entfernung zwischen Punkten in der realen Welt nicht berücksichtigt wird. Wenn Sie dies in Betracht ziehen, wird dies das Ergebnis stark beeinflussen. Natürlich muss die Entfernung nicht an die Geographie gebunden sein - sie kann an die Zeit gebunden sein. Das folgende Tool gibt diesen Faktor bei der Bewertung explizit an.
Python-Setup kurz
Für diesen Abschnitt des Handbuchs ist Python erforderlich. Wenn Sie nicht mit dieser Sprache experimentiert haben, müssen Sie einige Zeit damit verbringen
, die Befehlszeile kennenzulernen . Siehe auch
Kurzanleitung zur Installation von Modulen .
Python ist bereits auf Macs installiert. Sie können Folgendes überprüfen: Drücken Sie COMMAND und ein Leerzeichen, geben Sie
terminal
in das Suchfeld ein und klicken Sie auf die Terminalanwendung. Der
$ type python —version
zeigt an, welche Version von Python Sie installiert haben. In diesem Artikel arbeiten wir mit Python 2.7, der Code wurde in Python 3 nicht getestet.
Windows-Benutzer müssen Python selbst installieren: Beginnen Sie auf
dieser Seite , obwohl dies etwas komplizierter ist als angegeben. Zunächst müssen Sie die
.msi
Datei (Python 2.7) herunterladen. Führen Sie das Installationsprogramm aus. Es wird in einem neuen Verzeichnis installiert, z. B.
C:\Python27\
. Anschließend müssen Sie dieses Verzeichnis in den Pfaden registrieren, dh Windows mitteilen, wo beim Ausführen des Python-Programms nach Python gesucht werden soll. Es gibt verschiedene Möglichkeiten, dies zu tun. Möglicherweise ist es am einfachsten,
Powershell
auf Ihrem Computer zu finden (geben Sie "Powershell" in die Windows-Suchleiste ein). Öffnen Sie Powershell und fügen Sie an der Eingabeaufforderung Folgendes ein:
[Umgebung] :: SetEnvironmentVariable ("Pfad", "$ env: Pfad; C: \ Python27 \; C: \ Python27 \ Skripte \", "Benutzer")
Wenn durch Drücken der Eingabetaste nichts passiert, hat der Befehl funktioniert. Öffnen Sie zur Überprüfung eine Eingabeaufforderung (hier sind
10 Möglichkeiten, dies zu tun ) und geben Sie
python --version
. Sie sollten eine Antwort sehen, die
Python 2.7.10
oder eine ähnliche Version
Python 2.7.10
.
Das letzte Puzzleteil ist ein Programm namens
Pip
. Mac-Benutzer können es mit dem Befehl im
sudo easy_install pip
Terminal
sudo easy_install pip
installieren. Windows-Benutzer werden etwas komplizierter sein. Klicken Sie zunächst mit der rechten Maustaste und speichern Sie die Datei über
diesen Link (wenn Sie nur auf den Link klicken, wird der Code
get-pip.py im Browser geöffnet). Halten Sie es irgendwo zur Hand. Öffnen Sie eine Eingabeaufforderung in dem Verzeichnis, in dem Sie
get-pip.py
gespeichert
get-pip.py
.
python get-pip.py
an der
python get-pip.py
Eingabeaufforderung
python get-pip.py
.
Wenn Sie den Python-Code haben, den Sie ausführen möchten, fügen Sie ihn in einen Texteditor ein und speichern Sie die Datei mit der Erweiterung
.py
. Dies ist eine Textdatei, aber die Dateierweiterung weist den Computer an, Python zur Interpretation zu verwenden. Es wird über die Befehlszeile gestartet, wobei zuerst der Name des Interpreters und dann der Dateiname angegeben wird:
python my-cool-script.py
.
MITTE
MIDITime ist ein Python-Paket, das von
Reveal News (früher als Center for Investigative Journalism bezeichnet) entwickelt wurde. Repository
auf Github . MIDITime wurde speziell für die Verarbeitung von Zeitreihen entwickelt (d. H. Eine Folge von Beobachtungen, die über die Zeit gesammelt wurden).
Während musikalische Algorithmen eine mehr oder weniger intuitive Benutzeroberfläche haben, ist der Vorteil hier Open Source. Noch wichtiger ist, dass das vorherige Tool Daten unter Berücksichtigung der historischen Zeit nicht berücksichtigen kann. Mit MIDITime können Sie Informationen zu diesem Faktor gruppieren.
Angenommen, wir haben ein historisches Tagebuch, auf das ein
thematisches Modell angewendet wurde. Die resultierende Ausgabe kann Tagebucheinträge in Form von Zeilen enthalten, und in den Spalten wird ein prozentualer Beitrag für jedes Thema angegeben. In diesem Fall hilft das
Hören der Werte, solche Denkmuster aus dem Tagebuch zu verstehen, die in einem Diagramm nicht dargestellt werden können. Hören Sie sofort erkennbare Ausbrüche oder wiederholen Sie musikalische Muster, die auf der Karte nicht sichtbar sind.
MIDITime einstellen
Installation mit einem
Pip- Befehl:
$ pip install miditime
für Mohnblumen;
$ sudo pip install miditime
unter Linux;
> python pip install miditime
unter Windows (wenn die Anweisung nicht funktioniert, können Sie
dieses Dienstprogramm verwenden , um Pip zu installieren).
Übe
Betrachten Sie ein Beispielskript. Öffnen Sie einen Texteditor, kopieren Sie diesen Code und fügen Sie ihn ein:
Speichern Sie das Skript als
music1.py
. Führen Sie es in einem Terminal oder einer Befehlszeile aus:
$ python music1.py
Eine neue
myfile.mid
Datei wird im
myfile.mid
. Sie können es zum Anhören mit Quicktime oder Windows Media Player öffnen (und dort Tools in GarageBand oder
LMMS hinzufügen).
Music1.py
importiert Miditime (denken Sie daran, es zu installieren, bevor Sie das Skript
pip install miditime
:
pip install miditime
). Dann legt das Tempo fest. Alle Noten werden separat aufgelistet, wobei die erste Zahl die Startzeit der Wiedergabe, die Höhe (dh die Note selbst!), Wie stark oder rhythmisch die Note gespielt wird (Attack) und ihre Dauer ist. Dann werden die Noten auf der Spur aufgezeichnet, und die Spur selbst wird in der Datei
myfile.mid
aufgezeichnet.
Spielen Sie mit dem Skript und fügen Sie weitere Notizen hinzu. Hier sind die Noten zum Song 'Baa Baa Black Sheep':
D, D, A, A, B, B, B, B, A.
Baa, Baa, schwarz, Schaf, hast du Wolle?
Können Sie Anweisungen für den Computer schreiben, um eine Melodie abzuspielen (hier ist ein
Diagramm , um zu helfen)?
Übrigens . Es gibt ein spezielles Textdateiformat zur Beschreibung von Musik namens
ABC Notation . Es würde den Rahmen dieses Artikels sprengen, aber Sie können ein Skript schreiben, um beispielsweise in Tabellenkalkulationen zu bewerten und die Werte von Notizen in ABC-Notation zu vergleichen (wenn Sie jemals das Konstrukt IF - THEN in Excel verwendet haben, haben Sie eine Idee, wie dies zu tun ist). Über Websites
wie diese wird die ABC-Notation in eine MID-Datei konvertiert.
Hochladen Ihrer eigenen Daten
Diese Datei enthält ein Beispiel des John Adams-Tagebuch-Themenmodells für die
Macroscope- Website. Hier blieben nur die stärksten Signale übrig, die die Werte in den Spalten auf zwei Dezimalstellen rundeten. Um diese Daten in das Python-Skript einzufügen, müssen Sie sie auf spezielle Weise formatieren. Das Schwierigste ist das Datumsfeld.
Lassen Sie für dieses Tutorial die Variablennamen und den Rest unverändert aus dem Beispielskript. Ein Beispiel dient zur Verarbeitung von Erdbebendaten. Daher kann hier "Größe" als unser "Beitrag des Themas" dargestellt werden. my_data = [
{'event_date': <datetime object>, 'size': 3.4},
{'event_date': <datetime object>, 'size': 3.2},
{'event_date': <datetime object>, 'size': 3.6},
{'event_date': <datetime object>, 'size': 3.0},
{'event_date': <datetime object>, 'size': 5.6},
{'event_date': <datetime object>, 'size': 4.0}
]]
Reguläre Ausdrücke können verwendet werden, um die Daten zu formatieren, und noch einfacher - Tabellenkalkulationen. Kopieren Sie das Element mit dem Themenbeitragswert auf ein neues Blatt und lassen Sie die Spalten links und rechts. Im folgenden Beispiel habe ich es in Spalte D eingefügt und dann den Rest ausgefüllt:
Kopieren Sie dann die unveränderlichen Elemente und fügen Sie sie ein. Füllen Sie dabei die gesamte Spalte aus. Der Artikel mit dem Datum muss das Format (Jahr, Monat, Tag) haben. Nachdem Sie die Tabelle
my_data
, können Sie sie kopieren und in einen Texteditor einfügen, sodass sie Teil des
my_data
Arrays ist. Beispiel:
my_data = [
{'event_date': datetime (1753,6,8), 'size': 0,0024499630},
{'event_date': datetime (1753,6,9), 'size': 0,0035766320},
{'event_date': datetime (1753,6,10), 'size': 0,0022171550},
{'event_date': datetime (1753,6,11), 'size': 0,0033220150},
{'event_date': datetime (1753,6,12), 'size': 0,0046445900},
{'event_date': datetime (1753,6,13), 'size': 0,0035766320},
{'event_date': datetime (1753,6,14), 'size': 0,0042241550}
]]
Beachten Sie, dass am Ende der letzten Zeile kein Komma steht.
Das endgültige Skript sieht ungefähr so aus, wenn Sie das Beispiel auf der Seite von Miditime selbst verwenden (die folgenden Codefragmente werden durch Kommentare unterbrochen, sollten jedoch als einzelne Datei in einem Texteditor eingefügt werden):
from miditime.MIDITime import MIDITime from datetime import datetime import random mymidi = MIDITime(108, 'johnadams1.mid', 3, 4, 1)
Die Werte nach MIDITime werden hier als
MIDITime(108, 'johnadams1.mid', 3, 4, 1)
:
- Anzahl der Schläge pro Minute (108),
- Ausgabedatei ('johnadams1.mid'),
- die Anzahl der Sekunden in der Musik, die ein Jahr in der Geschichte darstellen (3 Sekunden pro Kalenderjahr, sodass Tagebucheinträge für 50 Jahre auf eine Melodie von 50 × 3 Sekunden, dh zweieinhalb Minuten, skaliert werden),
- Grundoktave für Musik (durchschnittliches C wird normalerweise als C5 dargestellt, daher entspricht 4 hier einer Oktave, die niedriger als die Referenz ist),
- und die Anzahl der Oktaven zum Vergleichen der Höhen.
Jetzt übergeben wir die Daten an das Skript, indem wir sie in das Array
my_data
:
my_data = [ {'event_date': datetime(1753,6,8), 'magnitude':0.0024499630}, {'event_date': datetime(1753,6,9), 'magnitude':0.0035766320},
... hier fügen wir alle Daten ein und vergessen nicht
, das Komma am Ende der letzten Zeile von
event_date
zu
entfernen und nach den Daten die letzte Klammer in eine separate Zeile zu setzen:
{'event_date': datetime(1753,6,14), 'magnitude':0.0042241550} ]
Geben Sie dann das Timing ein:
my_data_epoched = [{'days_since_epoch': mymidi.days_since_epoch(d['event_date']), 'magnitude': d['magnitude']} for d in my_data] my_data_timed = [{'beat': mymidi.beat(d['days_since_epoch']), 'magnitude': d['magnitude']} for d in my_data_epoched] start_time = my_data_timed[0]['beat']
Dieser Code legt das Timing zwischen verschiedenen Tagebucheinträgen fest. Wenn die Tagebucheinträge zeitlich nahe beieinander liegen, sind auch die entsprechenden Notizen näher. Schließlich bestimmen wir, wie Daten mit der Höhe verglichen werden. Die Anfangswerte werden als Prozentsatz im Bereich von 0,01 (d. H. 1%) bis 0,99 (99%) angegeben, daher setzen wir
scale_pct
zwischen 0 und 1. Wenn wir keine Prozentsätze haben, verwenden wir den niedrigsten und den höchsten Werte. Daher fügen wir den folgenden Code ein:
def mag_to_pitch_tuned(magnitude): scale_pct = mymidi.linear_scale_pct(0, 1, magnitude)
und das letzte Fragment zum Speichern von Daten in einer Datei:
Speichern Sie diese Datei unter einem neuen Namen und der Erweiterung
.py
.
Für jede Spalte in den Quelldaten erstellen wir ein eindeutiges Skript und vergessen nicht,
den Namen der Ausgabedatei zu ändern ! Sie können dann einzelne MIDI-Dateien zur Instrumentierung auf GarageBand oder LMMS hochladen. Hier ist das komplette
Tagebuch von John Adams .
Sonic pi
Die Verarbeitung einzigartiger Midi in GarageBand oder einem anderen Musikeditor bedeutet, vom einfachen Überspielen zur Musikkunst überzugehen. Dieser letzte Abschnitt des Artikels ist keine vollständige Anleitung zur Verwendung von
Sonic Pi , sondern eine Einführung in eine Umgebung, die die Echtzeitcodierung und -wiedergabe von Daten in Form von Musik ermöglicht (ein Beispiel für die Codierung mit Echtzeitwiedergabe finden Sie im
Video ). Die im Programm integrierten Tutorials zeigen, wie ein Computer als Musikinstrument verwendet wird (Sie geben den Ruby-Code in den integrierten Editor ein und der Interpreter spielt das Ergebnis sofort ab).
Warum wird das benötigt? Wie Sie diesem Handbuch entnehmen können, treffen Sie beim Lesen der Daten Entscheidungen darüber, wie die Daten in Ton umgewandelt werden sollen. Diese Entscheidungen spiegeln implizite oder explizite Entscheidungen darüber wider, welche Daten wichtig sind. Wenn Sie möchten, gibt es ein Kontinuum von „Objektivität“. Einerseits sind geäußerte historische Daten andererseits - eine Idee der Vergangenheit - so aufregend und persönlich wie jeder gut gemachte öffentliche Vortrag. Durch das Ertönen können Sie die in Dokumenten gespeicherten Daten wirklich hören: Dies ist eine Art öffentliche Geschichte. Die musikalische Leistung unserer Daten ... stellen Sie sich vor!
Hier schlage ich ein Code-Snippet zum Importieren von Daten vor, das nur eine Liste von Werten ist, die als CSV gespeichert sind. Vielen Dank an die Bibliothekarin der George Washington University, Laura Vrubel, die ihre Experimente zu klingenden Bibliotheksoperationen auf
gist.github.com veröffentlicht hat .
In
diesem Beispiel gibt es zwei Themen (das aus
der Jesuitenbeziehung generierte thematische Modell). In der ersten Zeile lauten die Überschriften 'topic1' und 'topic2'.
Übe
Befolgen Sie die integrierten Sonic Pi-Tutorials, bis Sie sich mit der Benutzeroberfläche und den Funktionen vertraut gemacht haben (alle diese Tutorials sind
hier zusammengestellt ; Sie können sich auch
ein Interview mit Sam Aaron, dem Erfinder von Sonic Pi, anhören). Kopieren Sie dann den folgenden Code in einen neuen Puffer (Editorfenster) (auch hier sollten separate Fragmente in einem Skript gesammelt werden):
require 'csv' data = CSV.parse(File.read("/path/to/your/directory/data.csv"), {:headers => true, :header_converters => :symbol}) use_bpm 100
Denken Sie daran, dass der
path/to/your/directory/
der tatsächliche Speicherort Ihrer Daten auf dem Computer ist.
data.csv
Sie sicher, dass die Datei wirklich
data.csv
heißt, oder bearbeiten Sie diese Zeile im Code.
Laden Sie nun diese Daten in die Musikkomposition:
Die ersten Zeilen laden die Datenspalten. dann geben wir an, welche Klangprobe wir verwenden möchten (Klavier), und geben dann an, dass das erste Thema (Thema1) gemäß den angegebenen Kriterien gespielt werden soll: Für die Stärke der Note (Attack) wird ein zufälliger Wert von weniger als 0,5 ausgewählt; für Zerfall - ein zufälliger Wert kleiner als 1; für die Amplitude ein Zufallswert von weniger als 0,25.
Sehen Sie eine Linie multipliziert mit hundert (
*100
)? Es nimmt unseren Datenwert (dezimal) und wandelt ihn in eine ganze Zahl um. In diesem Fragment wird die Zahl direkt einer Note gleichgesetzt. Wenn die niedrigste Note 88 und die höchste 1 ist, ist dieser Ansatz etwas problematisch: Wir zeigen hier tatsächlich keine Tonhöhe an! In diesem Fall können Sie Musikalgorithmen verwenden, um die Höhe anzuzeigen, und diese Werte dann an Sonic Pi zurückgeben. Da dieser Code mehr oder weniger Standard-Ruby ist, können Sie außerdem die üblichen Methoden zum Normalisieren von Daten verwenden und anschließend einen linearen Vergleich Ihrer Werte mit einem Bereich von 1 bis 88 durchführen. Für den Anfang ist es schön,
Steve Lloyds Arbeit zu betrachten, Wetterdaten mit Sonic Pi zu äußern.
Und das Letzte, was Sie hier beachten sollten: Der Wert von 'rand' (zufällig) ermöglicht es Ihnen, der Musik ein bisschen „Menschlichkeit“ in Bezug auf Dynamik hinzuzufügen. Wir machen das gleiche für 'topic2'.
Sie können auch den Rhythmus (Beats pro Minute), Loops, Samples und andere von Sonic Pi unterstützte Effekte festlegen. Die Position des Codes wirkt sich auf die Wiedergabe aus: Wenn er beispielsweise vor dem obigen Datenblock platziert wird, wird er zuerst abgespielt. Wenn Sie beispielsweise nach einer Zeile use_bpm 100
Folgendes einfügen:
... du bekommst eine kleine musikalische Einführung. Das Programm wartet 2 Sekunden, spielt das Sample 'ambi_choir' ab und wartet dann weitere 6 Sekunden, bevor es mit der Wiedergabe unserer Daten beginnt. Wenn Sie der gesamten Melodie eine bedrohliche Trommel hinzufügen möchten, setzen Sie dieses Bit als nächstes (vor Ihre eigenen Daten):
Der Code ist ziemlich einfach: das geloopte Sample 'bd_boom' mit dem Soundeffekt von Hall bei einer bestimmten Geschwindigkeit. Die Pause zwischen den Zyklen beträgt 2 Sekunden.Bei der „Echtzeitcodierung“ bedeutet dies, dass Sie Änderungen am Code vornehmen können, während Sie diese Änderungen wiedergeben . Gefällt dir nicht was du hörst? Ändern Sie den Code sofort!Die Erkundung von Sonic Pi kann mit diesem Workshop beginnen . Siehe auch den Bericht von Laura Vrubel über die Teilnahme am Seminar, in dem auch ihre Arbeit in diesem Bereich und die Arbeit ihrer Kollegen beschrieben werden.Nichts Neues unter der Sonne
Und ich wiederhole noch einmal: Es ist nicht notwendig zu glauben, dass wir mit unserem algorithmischen Ansatz an der Spitze der Wissenschaft stehen. 1978 wurde ein wissenschaftlicher Artikel über die „Musikwürfelspiele“ des 18. Jahrhunderts veröffentlicht, in dem Würfelwürfe die Rekombination zuvor geschriebener Musikstücke bestimmten. Robin Newman hat einige dieser Spiele für den Sonic Pi studiert und codiert . Für die Notenschrift verwendet Newman ein Werkzeug, das als Markdown + Pandoc bezeichnet werden kann, und für die Konvertierung in Noten Lilypond . Alle Themen in unserem Blog The Programming Historian haben also eine lange Geschichte!Fazit
Beim Stimmen sehen wir, dass unsere Daten oft weniger die Geschichte als vielmehr ihre Interpretation in unserer Leistung widerspiegeln. Dies ist teilweise auf die Neuheit und den künstlerischen Charakter zurückzuführen, die erforderlich sind, um Daten in Ton umzuwandeln. Dies unterscheidet die Klanginterpretation jedoch stark von der herkömmlichen Visualisierung. Vielleicht werden die erzeugten Klänge niemals das Niveau von „Musik“ erreichen; Aber wenn sie dazu beitragen, unser Verständnis der Vergangenheit zu ändern und andere zu beeinflussen, lohnt sich die Mühe. Wie Trevor Owens sagen würde: "Sounding ist eine Entdeckung des Neuen, keine Rechtfertigung des Bekannten ."Bedingungen
- MIDI : . , ( ). . MIDI- , .
- MP3 : , .
- : ( C . .)
- :
- : ( , , . .)
- :
- : ,