/NextGenMiniatures

A Performance and Testing Framework for laptop pieces.

Primary LanguageSuperCollider

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)