Diese SuperCollider Klassen werden genutzt um kleine Stücke
für mehrere Laptops (Bildschirme und Lautsprecher) zu entwickeln,
testen und aufzuführen.
Folgende Softwarekomponenten müssen entwickelt werden:
- Kompositions Framework (wie können Laptops angesprochen werden)
--> z.B. EventTypes und ein Interface
- Server (Director), der entweder Nachrichten an die Clients oder an die
Testumgebung weiterreicht.
- Die Testumgebung sollte dem Komponisten ermöglichen ein Stück
mit allen Aspekten möglichst realitätsnah zu simulieren.
- Der Client muss im Moment v.a. die Farben darstellen können.
Eventuell muss noch weiterer, fancy stuff, geschehen?
- Ein Sequencer, der die einzelnen Miniaturen ausspielt. (ToDo)
Dabei ist jede Miniatur erstmal eine SC Funktion, die jedoch
auf alle weiteren Techniken zurückgreifen kann (z.B. eine
Routine erzeugen oder eine Klasse aufrufen).
Ausnahme sollten hier SynthDefs sein. Diese sollten in Extra Dateien
gesammelt werden und vor Beginn des Konzerts auf dem Client ausgeführt
werden. Hiermit ersparen wir uns möglichen Ärger.
Weitere Absprachen:
- Farben als RGB Float zwischen 0 und 1
Probleme:
- OSC ist über WLAN nicht zuverlässig. Wir sollten uns nicht
auf Gated Synths verlassen. Es ist besser, wenn ein Synth
nicht klingt, als wenn er zu lange (oder ewig) klingt.
Es wäre wahrscheinlich das beste mit Envelopes mit fester
Länge zu arbeiten.
Allgemein: Jedes Ereignis muss seine Länge kennen und der
Client muss es selbstständig beenden.
- Ich glaube fast schon, dass der Client fancy Stuff
machen sollen könnte (eventuell auch einfach SC Code ausführen)
Viele Klänge (z.B. granulare) würden sonst relativ viel Traffic
im WLAN erzeugen. Kurzzeitiges "Sendeloch" würde in einem globalen
kurzzeitigen Klangabbruch resultieren.
Der Quelltext der verschickt wird sollte in eine Funktion kompilieren
die als einzigen Parameter das Clientobjekt enthält. Somit
ist auch in der Testumgebung klar was genau passiert.
Interface:
Folgende Aktionen sollten vom Komponisten abrufbar sein. Alle Aktionen
müssen natürlich von Client und Text Umgebung dementsprechend
interpretiert werden können.
- Spiele Synth xyz mit Parametern abc
--> Im Moment durch play
- Setze Farbe auf RGB (color)
- Fade auf Farbe RGB in t Sekunden (fadeColor)
- Führe auf Client Quelltext blub mit Argumetnen klack aus (execute)
- Zeigt für x Sekunden eine Farbe an, geht dann wieder zurück (blink)