tone js

So nach und nach trudeln Teile ein, die sich zu einem brauchbaren C64 System zusammenfügen lassen. In der Zwischenzeit bin ich von einem Freund auf die Möglichkeit aufmerksam gemacht worden im Browser Musik zu erzeugen, was ehrlich gesagt ziemlich cool ist und vll. hilft den bestehenden Webauftritt endlich mal vernünftig zu gestalten. Darüber hinaus ist der Browser eigentlich aus meiner Sicht das wichtigste Werkzeug, und ich finde, bevor – wenn überhaupt – ich mich am PC mit irgendeiner Interpreter oder Compiler Programmiersprache befasse und in ihr den Sinn suche, den ich auf meinem Niveau irgendwo anwenden kann, könnte ich doch erstmal den Browser als Basis nehmen anstelle der Hardware oder des Betriebssystems und mein einfaches HTML durch ebenso glaubwürdige Scripte erweitern, die einen coolen Output haben und zu meiner Überraschung ist das für mich wahrscheinlich sogar verhältnismäßig gut erlernbar und umsetzbar mit einem so genannten Framework wie Tone.js.

Wie der Name vermuten lassen könnte, arbeitet Tone.js mit JavaScript, ist also ohne Umstände im Webbrowser anwendbar eingebunden in HTML.

Ein paar kleine Beispielseiten habe ich lokal schon erstellt und den Eindruck, ich befasse mich hier auch irgendwie mit Objektorientierung, was für mich einfach nur ein rätzelhafter Begriff ist. Es geht um Klassan, Objekte, Funktionen, und mir war nie klar, was ich damit machen soll.

Hier stellt es sich einfach dar als eine Sammlung von bereits bestehenden Scripten, die bestimmte Aufgaben übernehmen. Es besteht also keine Notwendigkeit von Grund auf alles in JavaScript selbst zu strukturieren, zu gestalten und einzutippen, ich habe einfach eine ausgearbeitete Struktur zu Verfügung, die ich nutzen kann und so mich auf meine eigentlichen Ziele konzentrieren wie die Ausgabe von Sound.

Vielmehr kann ich dazu grad nicht sagen. Zum Vergleich, Assembler am C64 Computer ist mehr oder weniger linear, es werden Anweisungen nacheinander abgearbeitet, ob dabei Schleifen entstehen oder Unterprogramme aufgerufen werden, ändert nichts an dem Prinzip, dass pro Takt eine Anweisung ausgeführt werden kann, und das eine Anweisung auf die andere folgt.

Im Browser dagegen wird zuerst die gesamte Seite geladen und ist dann als ganzes verfügbar, und ungeachtet dessen, dass der Prozessor immernoch mehr oder weniger linear arbeitet, können auf der Ebene des Browsers mehrere Events gleichzeitig erscheinen, was ein völlig anderes Denken nötig macht. Das Script ist hier für mich eher ein räumliches gebilde, es ist mehrdimensional, es folgt nicht von sich aus einer bestimmten Zeitlinie, es legt zukünftige Ereignisse schon in der Gegenwart an. Ich weiß nicht, wie ich es anders beschreiben soll, das Prinzip ist so umfassend wie einfach, konventionell werden Interaktionen über z.B. Buttons verwendet, um per Mouseklick ein Event zu starten, was nicht nur konventionell ist, sondern auch hilft, die Events zu organisieren, die ja nicht immer gleichzeitig stattfinden sollen, bzw. ist innerhalb eines solchen Events wie dem Spielen einer Melodie ja auch ein gewisses Timing notwendig, weil Melodien ja im Grunde zeitlich auch lineare Erscheinungen sind, das ist vielleicht problemlos möglich aber eben nicht von Natur aus selbstverständlich.

Ich bin ein bisschen gespannt, wieweit mich diese neu eröffnete Möglichkeit in eine konkret umgesetzte Webpräsenz begleitet.