 Guten Abend. Aufgrund von technischen Schwierigkeiten und nicht der Gesamtsituation haben wir leider keinen Herald. Deswegen sage ich mich selber an. Zu mir gibt es eigentlich nicht viel zu sagen. Ich wollte eigentlich nur ein bisschen was zu erzählen über Musik, naja, für Hacker vielleicht. Also Leute, die unter anderem ganz gerne Code schreiben und nicht nur mit Musikinstrumenten im klassischen Sinne zu tun haben. Also ohne große Vorrede fange ich mal an. Noch funktioniert die Technik bei mir, das ist hervorragend. Mal sehen, wie das sich weiterentwickelt. Also, worum geht das ja eigentlich? Ist eine bestimmte Supercolleider, ist hier das Mittel der Wahl. Es gibt viele andere Sachen, der ein oder andere kennt, so was wie pure Data beispielsweise, MaxMSP, wie auch immer, Chuck, Faust. Supercolleider ist eine Plattform für Audiosynthese, algorithmische Kompositionen. Also irgendwie so ein Ding, mit dem man nicht nur Audio herstellen kann, sondern auch Audio im allerweitesten Sinne in der Zeit anordnen kann. Klänge, Geräusche, Töne, die in der Zeit angeordnet sind, werden ja postmodernerweise meistens als Musik bezeichnet. Insofern passt also der Titel des Talks auch hier. Wer benutzt das Ganze? Natürlich Musiker, bestimmte Arten von Musikern, die vielleicht ein bisschen experimenteller unterwegs sind oder die bestimmte Möglichkeiten brauchen, die ihnen andere Lösungen, vielleicht eine Gitarre oder ein Klavier oder ein Synthesizer nicht bieten. Künstler im weitesten Sinne, denn Supercolleider bietet auch Möglichkeiten beispielsweise über Netzwerk oder auch, wenn man das auf bestimmte Hardware-Plattformen bringt, mit der Außenwelt in Interaktion zu treten, um Installationen zu machen, nebenbei an, man hat irgendwie so Lichtinstallationen, die könnte man da einbinden oder man könnte vielleicht auch mit so was wie OBS sprechen. Das habe ich jetzt hier nicht vorbereitet, weil mir dann wahrscheinlich das Ganze hart weggreschen würde. Naja, und zu guter Letzt, Forscher, die irgendwie mit Sound arbeiten, nichts von alledem bin ich wirklich. Ich benutze es trotzdem, warum? Es macht einfach unglaublich viel Spaß. Ich schreibe ab und zu schon mal ganz gerne Code, ich mache auch ganz gerne mal Musik in meiner Freizeit und was liegt da näher, als ich mal mit einer Lösung zu beschäftigen, die nicht nur kostenlos, sondern auch noch Open Source ist und die auf allen wesentlichen Plattformen, jetzt mal abgesehen von diesem ganzen Tablet-Betriebssystem läuft. Ganz kurze Einordnung, woraus besteht das eigentlich? Ich habe jetzt mir schamloserweise mich an der Dokumentation bedient, denn die Dokumentation ist richtig gut. Das ist nicht selbstverständlich bei solchen Programmen. Hier ist extrem viel Liebe und Arbeit reingeflossen und es wird sehr gut weiter gepflegt. Also ich würde allein wegen der Dokumentation ganz klar empfehlen, wer sich mal mit so programmiertechnischen Ansätzen auseinandersetzen will, um Musik zu machen, um Kunst zu machen, der sollte sich tatsächlich super-colleide anschauen. Ist eine ziemlich modulare Architektur, besteht aus dem Server genannt SC Synth, das ist ein eigenes Binary, was dann da aufgemacht wird und eine Interpreter-Komponente, die eine bestimmte Programmiersprache, die auch super-colleider heißt, heißt die alles super-colleider, damit man auch ja nicht durcheinander kommt, interpretiert. Das Ganze ist angebunden über Open Sound Control, OSC, dem einen oder anderen, der sich schon mal so im Musikumfeld mit Elektronik auseinandergesetzt hat, wird das ein Begriff sein. Das Schöne daran ist, an dieser Modularität, ist, man kann diesen Server, der die ganze Audio-Synthese macht und die Organisation von Klängen und Events in der Zeit austauschen, oder man kann ihn einfach verwenden und einen eigenen Kleintran flanschen. Man braucht also gar nicht unbedingt diese Programmiersprache benutzen und diesen Interpreter benutzen und diesen Bytecode, der da irgendwo dahinter steckt. Man kann auch, und das wird auch gemacht von manchen Leuten, sagen, ich programmiere gerne in Lisp zum Beispiel. Und dann baue ich mir irgendwas, was in Lisp eingebettet ist und das spricht dann OSC, das schickt dann hier die entsprechenden Nachrichten, die der Server versteht und der Server macht dann das, was typischerweise relativ unsexy ist bei diesem ganzen Audio-Ding, nämlich die Synthese und vor allen Dingen die Echtzeitverarbeitung. Wer so was schon mal versucht, als selber zu programmieren, weiß, dass es nicht unbedingt ein Geschenk. Naja, aber hier in diesem Talk will ich mich mal darauf konzentrieren, das wirklich so zu machen, wie die Entwickler von Super Collider sich das vorgestellt haben. Das heißt, wir benutzen das ganze Paket, das ist eingebettet in einer Applikation, einer Integrated Development Environment, die gar nicht so furchtbar ist. Früher war das mal mit Emacs gelöst. Mittlerweile geht man ja in vielen Bereichen, ob das Isabell ist oder ob das eben hier Super Collider ist weg von irgendwelchen Emacs basierten Oberflächen und baut das alles selber. Auch das hier, genauso wie die Dokumentation, ist meines Erachtens ziemlich gut gemacht und eindeutig satisfaktionsfähig. Aber man könnte viel sagen, das ist relativ uninteressant. Eigentlich geht es ja hier darum, dass man mal ein bisschen krach macht. Was haben wir hier? Ein Bild, Sinus Oscillator, so ein bisschen das Hello World, eigentlich der Audioprogrammierung der digitalen Signalverarbeitung, wenn man jetzt nicht gerade mit irgendwelchen Filtern direkt einsteigen will. Und dem meisten wird das vertraut sein, da gibt man sowas rein wie eine Amplitude. Das heißt, also die Auslenkung dieser Sinuswelle und eine Frequenz. In diesem Fall wird das dann wahrscheinlich ein Herz sein und am Ende kommt dann hier irgendwie so eine Wellenform heraus. Wie würde das jetzt in Super Collider aussehen? Ungefähr so. Bevor ich jetzt gleich in den hoffentlich funktionierenden Live-Teil des Talks reingehe, erkläre ich mal das hier ganz kurz auch an den Slides. Wir haben hier so ein Block, der in geschweiften Klammern eingeschlossen ist. Das ist eine Funktion. Der eine oder andere wird sagen, Funktion, anonym, deklariert. Das ist doch relativ angenehm. Das hat tatsächlich funktionale Programmierungsanteile hier diese Sprache, was es mir relativ sympathisch macht. Und hier dieses Punkt Play, da wird irgendwie so eine Methode aufgerufen, die diese Funktion mitbringt, die Play heißt. So ein bisschen objektorientiert ist das offenbar auch. Hier haben wir diesen Sinus Oscillator. Das ist auch so ein Objekt, so eine Klasse. Da wird so eine Methode auch aufgerufen, AR. AR steht für Audio Rate. Das wird also mit der Rate, mit der Audio generiert wird. Typischerweise ist das so was wie 44,1 Kilohertz oder in diesem Fall, weil wir ja professionelles Broadcasting hier betreiben, 48 Kilohertz ein Signal generiert. Und man kann jetzt dieser Methode noch ein paar Argumente übergeben. Da gibt es so eine Keyword-Syntax, die vielleicht auch aus anderen Programmiersprachen bekannt sein könnte. Hier sagt man, da gibt es eine Frequenz. Das ist jetzt mal einfach zufälligerweise 230 Hertz. Und hier gibt es ein Argument, das sagt, macht das mal bitte nicht so laut, macht das mal mit halber Lautstärke, also nicht gleich Vollstoff auf die Ohren, weil sonst fangen die vielleicht an zu bluten. So, das ist jetzt auch schon tatsächlich die letzte Folie, die ich habe. Ich würde mal direkt reingehen und versuchen, das nicht nur seh- und erklärbar zu machen, sondern auch hörbar. Dazu schalte ich das mal hier um, gehe mal selber in dieses Fenster rein. So, jetzt sehen wir hier diese Supercolleide-IDI. Ich habe das schon mal alles gestartet, weil ich das hier mit Jack verbinden musste, damit ihr das auch hoffentlich im Stream hören könnt. Was haben wir hier? Wir haben einmal ein riesiges Textfeld. Da kann man dann Dinge eingeben, Code. Wir haben hier so ein Help Browser. Da könnte man jetzt irgendwas suchen. Weiß ich nicht, wer man jetzt wissen will, was ist eigentlich dieser Sinus-Oscilator da. Geh mich mal Suchtext ein. Ah, ein interpolierender Sinus-Wave-Table-Oscilator, also wahrscheinlich hohe Qualität. Ha, generiert eine Sinus-Welle. Wer hätte das gedacht? Da hat man dann hier so Klassenmethoden, irgendwie so abgeleitete Methoden. Beispiele, die sind immer sehr hilfreich, weil an Beispielen lernt man ganz gut. Die Dokumentation ist echt so gut, man braucht kein Stack Overflow dafür. Man kann einfach mit der Dokumentation programmieren, und das funktioniert in den meisten Fällen hervorragend. Hier unten hat man dann noch so ein Fenster, wo man dann Output hat, wie man das vielleicht kennt bei irgendwelchen interaktiven Programmierlösungen, weiß ich nicht, Lisp, Python, Ruby, keine Ahnung, ist das interaktiv, kann wohl sein. Naja, programmieren wir mal was. Ich mach das mal ein bisschen größer, damit man das hier auch vernünftig sieht. Hello World geht natürlich, und jetzt sieht man hier unten, Hello World wurde ausgegeben, und der Rückgabe wird es auch Hello World, aber wir wollen ja nichts sehen, wir wollen was hören. Also mache ich mal hier das ungefähr das Beispiel, was ich auf den Folien hatte. Höhnliche Frequenz, 230, und jetzt sage ich ihm hier, dupliziere das bitte mal, weil wir sind in Stereo, normalerweise würde ich einfach nur Mono machen, das heißt, ihr würdet das Signal nur auf einem Kanal hören, und das ist relativ unspannend. So, jetzt habe ich hier diese Funktion, die also ein Sound generieren soll, und jetzt muss ich hier noch sagen, spiel das mal bitte ab, und jetzt kommt der Moment der Wahrheit, wo es uns dann hoffentlich nicht um die Ohren fliegt. Jetzt müsst ihr was hören, ich höre auf jeden Fall was, ich sehe auch, dass es im Stream rausgeht, also soll das wohl klappen. Wunderbar, das möchte aber keiner auf die Dauer hören, weil das relativ uninteressant ist, und auch ziemlich nervig und ungesund, deswegen machen wir mal was anderes, Störgeräusche. Vielleicht passt das ja zu dem, was hier im Anschluss noch kommt. Dieser Unit Generator, wie man so im DSP-Sprech sagt, der generiert, wie man hier in der Doku sieht, random impulses, denkt einfach sowas wie Geigerzähler, und der generiert das so mit so einer Rate von 20, was auch immer das heißen wird. Wir hören uns das mal an. Na ja, da hat man auch schon überzeugendere Sachen gehört. Was könnte man denn nochmal mal damit machen? Man könnte vielleicht sagen, ich möchte das Ganze filtern. Bei so einem Synthesizer wird man jetzt vielleicht sagen, ich habe so eine feste Struktur. Alles ist schon vorkonfiguriert, fest verschaltet, oder ich habe vielleicht so eine Modulationsmatrix, oder ich habe vielleicht ein physikalisches Modularsystem, irgendeines Herstellers, und kann dann so Kabel reinstecken. Hier macht man das einfach, indem man Funktionsaufrufe verknüpft. Wir wollen mal schauen, wie das aussieht. Hier, das ist ein Bandpassfilter. Da wird also so ein Segment aus dem Audiospektrum rausgefiltert. Das soll jetzt mal hier bei, weiß ich nicht, 600 Hertz liegen. Dann haben wir noch so ein Q-Factor, das ist so ein bisschen wie schmal eigentlich dieses Band ist. Hier schmäler das Band ist, desto tonaler wird das Ganze. Das können wir eigentlich mal ausprobieren. Ich lasse das jetzt mal hier auf dem Default-Wert 1.0 stehen. Und das müsste man jetzt eigentlich auch schon ausführen und hören können. Relativ leise das Ganze, ziemlich weggefiltert. Wir machen das mal schmäler hier, dieses Band. Und vielleicht soll West tatsächlich etwas lauter machen, damit man es auch dann hören kann. Spannender wird das eigentlich, wenn man jetzt anfängt, nicht nur Sachen so statisch da reinzuschreiben, sondern ein bisschen Dynamik reinzubringen und etwas Größeres zu programmieren. Vielleicht mit ein bisschen Zufall. Machen wir uns mal so eine Variable hier auf. Oder wartet mal einfach. Ich habe das doch alles hier vorbereitet. Muss ich das nicht alles live hier tippen. Dieses hier soll mal ein Beispiel sein, wie man mit relativ einfachen Mitteln relativ viel Krach machen kann. So, jetzt kann man das auch hier vernünftig im Stream sehen, hoffentlich. Hier wird jetzt so eine Variable aufgemacht. Beschaffen uns mehrere Funktionen. Da wird irgendwie so zufällig so random Impulse es generiert. Die werden dann gefiltert, auch wieder so bei einer zufälligen Frequenz. Und die werden zufällig im Stereospektrum gepannt, also ob die mehr links oder mehr rechts sind. Und das Ganze machen wir dann 23 mal, weil man braucht einfach manchmal so Magic Numbass. Nun ja, das ist Rauschen. Man könnte noch relativ viel mehr sagen darüber, wie eigentlich man hier Dinge programmieren kann. Aber ich wollte jetzt als nächstes eigentlich mal zum Thema kommen, wie kann man jetzt eigentlich die Dinge in der Zeit anordnen? Wie kann man eigentlich mit diesen relativ einfachen Sachen, wir haben gesehen, man kann irgendwelche Töne, man kann Geräusche erzeugen, man kann die irgendwie filtern, man kann die Anordnen im Stereospektrum, also so einfache Sachen, wie kann man damit eigentlich Musik machen? Da gibt es mehrere Möglichkeiten. Man könnte jetzt hier auch sich irgendwelche Routinen programmieren, die dann Events generieren, die in der Zeit angeordnet sind. Und all das ist möglich. Und auch durchaus praktisch nehmen wir an, man möchte mal irgendwie eine eher mathematische Idee ausprobieren. Davon, wie klingt eigentlich irgendeine Zahlenfolge, wenn ich die Elemente dieser Folge mappe auf Tonhöhen oder auf irgendwelche anderen musikfaktoriellen Parameter? Das sparen wir uns jetzt hier mal. Wir gehen mal rein in das, was so mehr dieses Live-Coding-Ding ist. Der ein oder andere hat es vielleicht schon mal gehört. Man programmiert also Just-in-Time-Dinge. Dafür habe ich jetzt gerade nicht so ganz die Zeit und die Muße ehrlich gesagt wirklich alles Just-in-Time zu machen. Das würde ein bisschen zu lange dauern. Deswegen habe ich auch da wieder was vorbereitet. Das ist schon fast wie so eine Kochsendung hier. Ich mache mir mal hier so ein Mixer auf. Der wird gleich noch hilfreich sein. Und jetzt sehen wir hier, macht das mal ein bisschen größer. Das ist nicht so ganz seltsam umbrochen ist. Eine Abstraktion, die ganz hilfreich ist, nämlich um sich so Synthesizer, also irgendwie so Audio-Generatoren selber zu definieren mit diesem Synth-Dev-Aufruf hier. Ich gebe dir im Namen dieses Backslash. Sagt einfach nur, das ist ein Symbol. Das ist ein bisschen so wie Symbole aus Programmiersprachen, die man vielleicht kennt. Die sind irgendwo global bekannt in der Umgebung, in der sich das alles abspielt. Hier haben wir jetzt eine Funktion drin, die die eigentliche Aufgabe der Klangerzeugung oder Klangverarbeitung auch übernimmt. Die hat Argumente, da gibt es so eine Argumentsyntags mit so Pipesymbolen, auch das Anlehnung an andere Programmiersprachen. Das Konzeptvariablen haben wir ja schon gesehen. Hier wird jetzt irgendwie so ein Signal generiert, da wird irgendwas mit so einem Tiefpassfilter gefiltert, so eine Rechteckschwingung, mit der definierten Frequenz. Das Ganze hat eine Hülkurve, die hier dann noch drauf liegt und noch ein paar andere Parameter. Das kann man alles, wenn man möchte, hier in der Dokumentation nachlesen, was das alles für Parameter sind. Das könnte auch dann mal selber zu Hause machen. Wir haben ja jetzt alle relativ viel Zeit zu Hause. Da ist das doch die ideale Gelegenheit, mal ein bisschen was Neues zu lernen. Und dann haben wir hier noch so eine Hülkurve für die Lautstärke des Ganzen, so wie man das von einem Synthesizer gewohnt ist. Also irgendwie ein Oscillator, Filter, Filter-Hülkurve, Hülkurve für die Amplitude des Ganzen und am Ende wird das dann ausgegeben, wird noch im Stereo-Panorama verteilt und dann war es das. So relativ einfache Geschichte. Da haben wir noch so ein paar andere Sachen. So eine Art Kickdrum, so eine Art Hi-Hat. Vielleicht erkennt ja sogar jemand, wo diese Zahlen herkommen. Die habe ich mir natürlich nicht selber ausgedacht, sondern das ist angelehnt an ein relativ bekanntes Gerät mit einer numerischen Bezeichnung eines japanischen Herstellers. Dann haben wir noch so ein paar andere Instrumente. Na ja, das ist so irgendwie so eine Sache, die man dann mal machen kann. Wenn man so anfängt, man definiert sich also erstmal so ein paar Instrumente. Und die muss man jetzt dem Server bekannt machen. Ich führ das aus. Das hat offenbar funktioniert. Das ist sehr gut. Die sind jetzt auf dem Server bekannt. Die kann ich da also dann verwenden. Hier haben wir jetzt noch ein paar Effekte, weil so ganz trocken ist es ja auch blöd. Da haben wir irgendwie so ein Reverb, das mit einer Quellenangabe, wie sich das gehört, einfach mal was nachprogrammiert. Das Schöne, was ich persönlich wirklich an Supercolleider extrem genieße, ich sehe irgendwo ein DSP-Effekt. Ich sehe irgendwo eine musikalische Idee, die eher technisch beschrieben ist. Für meine Begriffe kann ich die hier relativ einfach umsetzen. Die Programmiersprache ist ideal darauf ausgerichtet. Und die Klassenbibliothek, die dahinter steckt, sowieso solche Dinge zu tun. Man muss sich da nicht großartig verrenken. Wer schon mal ein Reverb von innen gesehen hat, der wird sagen, ach ja, das kommt mir hier so ungefähr bekannt vor. Das ist jetzt ein relativ Standardansatz, um so ein Reverb herzustellen. Da haben wir hier noch so ein anderes Reverb. Sachen, die auskommentiert sind, die können eigentlich weg. Und da ist eine Frage natürlich, in jedem Code stehen auch irgendwie so Fragen drin. Vielleicht hat jemand die Antwort auf die Frage. Ich glaube, die Antwort ist ja, es funktioniert. Das ist meistens das Wichtigste. Es geht hier ja nicht darum, dass wir irgendwie Produktionscode generieren, der irgendwo dazu dient, Geld zu verdienen und Menschen glücklich zu machen, sondern es ist Kunst. Und man darf wirklich auch Dinge mal so hinschreiben, wie sie einem in Sinn kommen, ausprobieren. Und wenn es funktioniert, ist das das Erfolgskriterium, das man da heranziehen möchte. So, jetzt haben wir uns also Dinge definiert. Wir haben Instrumente, Synthesizer, wir haben Effekte. Und jetzt kommt die Aufgabe, die spannende Aufgabe, wie ordnen wir das eigentlich jetzt an, um damit so eine Art Musik zu machen. Dafür gibt es auch verschiedene Ansätze. Ich habe mal hier den Ansatz gewählt über Patterns. Da gibt es eine reichhaltige Sprache, die Supercolleider zur Verfügung stellt. Wir haben hier die Möglichkeit, solche Patterns zu definieren. Wir sagen eigentlich, nimm mal dieses Instrument hier, spiel da mal Tonmaterial aus einer Skala. Das ist jetzt hier der späten vorgerückten Stunde angemessen. Ganz einfach. Moll, ich glaube, die häufigste Tonart in Techno ist immer noch Moll oder sowas in der Richtung. Hier haben wir dann zufällige Auswahl in Skalentönen. Da wird so ein Pattern generiert, das sich unendlich oft wiederholt. Dann würfeln wir so ein bisschen mit so einer Normalverteilung, ein Decaywert, damit das Ganze ein bisschen aufgelockert ist. Dann haben wir hier noch so ein Pattern, das sich einfach wiederholt für die Dauern, dass wir so eine ansatzweise wiedererkennbare rhythmische Struktur da drin haben, die nicht komplett gewürfelt ist, weil das ist so eine Sache bei algorithmischer Komposition. Wenn man bestimmte Aspekte komplett random würfelt und dann nicht Constraints drauf packt, dann klingt das hinterher oft sehr, sehr seltsam. Deswegen manchmal ist weniger Zufall, echt mehr Musik. Und zu guter Letzt sagen wir noch, mach das mal bitte nicht zu laut, mach mal hier nur ein Drittel Lautstärke. So, jetzt nehmen wir uns das her und machen Varianten davon. Wir legen das mehrmals übereinander hier mit so einem Pattern, das sagt, nimm das eigentlich mal, was hier jetzt so kommt, spiel das parallel ab und spiel das auch mit Zeitversatz ab. Also das Original-Pattern startet dann bei 0, dann gibt es eins, das variiert wird, wo so ein bisschen die, das im Grunde von den Dauern rückwärts gespielt wird, das setzt dann bei Zeitpunkt 3 ein, dann leicht versetzt eins, was so ein bisschen um eine Quinte runtertransponiert ist und dann gibt es irgendwie noch eins, was so ein bisschen hochtransponiert ist, was dann auch noch mal da ansetzt und hier gibt es noch weitere Variante und das ganze jagen wir dann mit so einem weiteren Pattern, das sagt, machen wir mal so ein Effektbus auf durch dieses Schimmer-Reverb durch und dann haben wir hier eigentlich schon so ein relativ komplexes Pattern, dann haben wir noch ein komplett einfaches Pattern, so Stumfe for the floor bass drum, ups, aber irgendwie noch so ein, nicht komplett Stumpfes, aber auch nicht wirklich kreatives Hi-Hat-Pattern, haben wir irgendwie noch so ein Bass, der ist natürlich auch ungefähr passend vom Tonmaterial her und da haben wir noch ein weiteres Pattern hier. So, wenn ich das jetzt ausführe, sollte ungefähr Folgendes passieren, es sollte erstmal nichts zu hören sein und es kam auch kein Fehler, das ist also sehr gut. Jetzt seht ihr leider den Mixer nicht, den ich hier habe, weil ich das Fenster streame und nicht dieses andere Fenster, jetzt müsst ihr euch vorstellen, ich habe hier so ein Mixer, wo diese Patterns angezeigt werden und ich kann die Staaten stoppen und in der Lautstärke verändern. Also ich muss nicht alles rein programmatisch machen, kann ich, aber ich finde das gar nicht so schlecht, einfach mal so Dinge auch ganz klassisch zu machen. Es wird ein bisschen was programmiert und dann kann man hinter Teile der Ausführung auch so machen, als würde man mit klassischen elektronischen Musikinstrumenten oder klassischer Studiotechnik arbeiten. Wollen wir mal schauen, ob das so weiter funktioniert hier. Okay, jetzt haben wir hier so ein relativ einfaches Pattern. Jetzt können wir da noch eins drauf geben, unglaublich spannend. Muss ihr mal so ein bisschen die Pegel im Blick haben, dass mir das nicht explodiert, einem Stream hinterher nur noch Grütze ankommt. Das ist etwas tricky. In einer echten Live-Situation hätte man dann natürlich ein bisschen direkteres Feedback. So sehe ich niemanden und ich höre auch nicht wirklich was. Also nicht von einer Soundanlage. Der Schöne ist diese Pattern, die ist auch nicht unbedingt statisch, die kann ich auch verändern. Eine einfache Veränderung wäre, ich sage mal hier, ich ändere Cut-Off-Frequenz von dem Bass. Jetzt hat es Ihnen anscheinend aufgehängt. Jetzt bin ich wieder da. Oder auch nicht. So richtig weiß ich das nicht. Ja, jetzt versuche ich mal hier, den Server in dem Programm neu zu starten, weil der hat sich anscheinend weggehängt. Das funktioniert nicht. Aber vielleicht, wenn ich die nochmal versuche, alle zu killen unter Neustarte, funktioniert es. Wahrscheinlich muss ich jetzt hier auch gleich die Verbindung von meinem Jack nochmal neu setzen. Oder auch nicht. Ich habe so den Leisen verdacht, dass das hier gerade auch mit dem OBS sich alles beißt. Ich würde sonst fast mal sagen, lassen wir es dabei bewenden. Hiernach soll ja sowieso irgendwie der Systemabsturz kommen. Vielleicht ist das auch eine ganz passende Überleitung und ich würde dann mal gucken, ob wir irgendwelche Fragen haben. Ich weiß nicht, wie das ohne Herald funktioniert. Hat da irgendjemand Ideen von der Regie? Ja, ja. Da machen wir das doch mal. Hallo, ich hoffe... Hi, ich hoffe, ihr könnt mich sehen, beim Lindwurm gab es händische Probleme. Jetzt springe ich ein und helfe zumindest beim Q&A von diesem hoffentlich großartigen Vortrag von Semiton. Die erste Frage, die ich habe aus dem PAD von euch... Was sind denn die Unterschiede zu Sonic Pi, zu dem vorgestellten Projekt? Vielleicht einmal kurz, das sind eine ganze Menge Fragen. Also ich höre hier gerade nichts mehr. Ich weiß nicht, ob das so gedacht ist. Oh, ich glaube, das Publikum hat meine Frage verstanden. Aber du, lieber Semiton, ich habe es nicht gehört. Ich habe wieder meine Anmoderation und noch meine Frage verstanden. Hallo, sorry. Die erste Frage aus dem Publikum ist, was sind die Unterschiede zu Sonic Pi, zum vorgestellten System? Oh, Sonic Pi. Das ist eine sehr gute Frage. Ich glaube, Sonic Pi ist irgendwie sowas in Python eingebettetes. Ich hoffe, mich schlägt keiner tot, wenn das falsch ist. Ich habe mich gesagt, nie auseinandergesetzt mit Sonic Pi. Das ist ein System, das vergleichsweise neu ist, glaube ich. Und irgendwo habe ich mal ein Cut-off gemacht und gesagt, ich gucke mir jetzt nicht noch wieder was Neues an. Aber ich glaube, es ist durchaus ähnlich und wahrscheinlich sogar teilweise davon von diesem hier inspiriert, genauso wie diese Super-Colei da auch von anderen Systemen, was inspiriert ist. Okay. Das Publikum fragt weiterhin, hast du den Code irgendwo veröffentlicht, irgendwo auf eine übliche Repository? Man will das nicht alles abtippen? Ist nicht veröffentlicht, könnte ich mal machen bei Gelegenheit, weiß nicht, ob man dann noch mal irgendwo URL oder so nachreichen könnte. Müsste ich mir noch mal überlegen, ob ich das am besten hinschmeiße? Im Moment habe ich ein privates Git-Repository da. Mehr auch nicht. Okay. Ansonsten einfach beim nächsten Event noch mal einen Lightning-Talk einreichen und kurz sagen, jetzt ist es release, guckt hier, tut damit Dinge. Oder ich habe gehört, Twitter eignet sich auch ganz gut, um so anzukündigen, dass es sich jetzt guckt. Das ist Twitter gerade ein guter Punkt. Es gibt auf Twitter irgendwie so was, wie man das Supercollider-Code als in Twitter-Format auch ausbringt. Das ist relativ interessant. Das wird man relativ leicht finden über die üblichen Suchmaschinen. Okay. Die nächsten beiden Fragen kann man, glaube ich, miteinander sehr gut verbinden. Und zwar ist die Frage, was hast du damals schon Cooles gemacht und die zweite Frage ist, wie robust das Supercollider für Live-Anwendungen? Ich glaube, wenn man die beiden Fragen verbindet, dann ist die Anäckdote deinerseits. Ja, die Anäckdote, die hatten wir ja jetzt gerade, wobei ich sagen muss, die Robustheit könnte darunter gelitten haben, dass ich hier einen Vergleichsweise für meine Begriffe komplexe Setup fahren musste mit dem OBS. Also aus Supercollider raus in Jack aus Jack raus in OBS. Dann läuft hier ja parallel noch ein Mumble, das ich dann mit Regie und Harold verbunden bin. Da gibt es interessante Interaktionen, sagen wir das mal so. Für ein normales Setup, wo man wirklich nur den Supercollider laufen lässt, sehe ich die Robustheit durchaus gegeben. Man sollte natürlich gucken, dass man eine vernünftige Soundkarte hat, die ordentlich unterstützt wird. Man sollte Jack und Supercollider im Scheduling laufen lassen. Das muss man halt gucken, wie man das auf dem Betriebssystem der Wahl vernünftig einrichtet. Ist ein bisschen technisch, ist aber glaube ich durchaus den meisten Leuten, die hier bei solchen Veranstaltungen zuhören und sehen, zu trauen. Was habe ich damit schon Cooles gemacht? Ehrlich gesagt, ich würde nicht so weit gehen und sagen, ich habe damit irgendwas Cooles gemacht. Für mich persönlich ist es ein Werkzeug, um schnell Dinge ausprobieren zu können. Die mir entweder einfallen oder die mir über den Weg laufen. Ich lese vielleicht irgendein Paper oder lese irgendwas in einem Buch und kann das hier im Vergleich zu allen anderen Systemen, die ich mir mal so angeschaut habe, am schnellsten umsetzen. Würdest du sagen, dass die Software stabil genug ist für Live-Anwendungen? Definitiv. Dann habe ich noch eine ganz kurze Ja- oder Nein-Frage. Ist es möglich, was Files als Samples zu verwenden? Waveforms? Ja. Sehr gut. Und dann möchte ich das Polikum wissen, ob man auch Mikrofone verwenden kann als Input für Supercolleider. Jegliche Audioquellen, die man reinkriegt, kann man da auch verwenden. Gut. Kommen wir jetzt zu den Interfaces. Was geht da? Das Polikum fragt, ob man zum Beispiel MIDI-Geräte oder USB-Rötzungen für haptischen Interfaces oder ganz fancy Shit. Was geht da? Alles. Es geht MIDI, es geht eine Maus, es gehen Gamepads, es geht, wenn man auf bestimmten Plattformen unterwegs ist, auch General Purpose-IOs, Analog-Digital-Wandler oder umgekehrt. Es geht natürlich so was, so ein Old-School-Kram, wie TCP und UDP oder halt darauf aufsetzen, so was wie Open Sound Control, das ist ja nativ da drin. Das Ganze ist nach allen Seiten hin komplett offen und gut dokumentiert. Ich glaube, es gibt nichts, was man technisch machen kann, was man mit diesem System nicht machen könnte. Wow, das klingt nach einem sehr, sehr hackable System. Viel mehr Fragen gibt es jetzt hier gerade auch nicht. Einen großartigen virtuellen Applaus für Semitone und seinen großartigen Vortrag zu Supercollider.