We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Hörbar programmieren mit Sonic Pi

00:00

Formale Metadaten

Titel
Hörbar programmieren mit Sonic Pi
Serientitel
Teil
50
Anzahl der Teile
188
Autor
Lizenz
CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
Programmieren ist abstrakt, mathematisch und rational. Musik ist sinnlich, konkret und emotional. In Sonic Pi kommt beides zusammen. Hörbar programmieren und Programmiertes anhören. Sonic Pi liefert ein unmittelbares Feedback, weil wir den Code/Text, den wir schreiben direkt anhören können. Das macht Spass, gelingt schon 8-jährigen und ist ausbaufähgig - bis hin zu Live-Coding-Sessions, wo Sonic Pi zum Instrument wird und das Publikum zur Computermusik tanzt.
2
Vorschaubild
1:01:39
5
Vorschaubild
57:37
14
52
Vorschaubild
1:00:21
55
Vorschaubild
1:02:36
96
102
Vorschaubild
59:03
115
Vorschaubild
1:01:49
128
148
162
176
185
Finite-Elemente-MethodeHypermediaMicrosoftGewicht <Ausgleichsrechnung>XMLComputeranimationVorlesung/Konferenz
ProgrammiererMomentenproblemVorlesung/Konferenz
ProgrammiererinCodeZahlenbereichNetzadresseVorlesung/Konferenz
BewegungmakeSoftwareCodeSchnittmengeComputeranimation
CodeProgrammiererLaufzeitSoftwareVariableVorlesung/Konferenz
RegelungLinieDatenverarbeitungssystemTeilmengeVorlesung/Konferenz
Aaron <Programm>LINUXWINDOWS <Programm>Klasse <Mathematik>Sound <Multimedia>LINUXLaufzeitsystemWINDOWS <Programm>EditorProgrammierumgebungt-TestDatensatzFunktion <Mathematik>VariableComputeranimationVorlesung/Konferenz
Sampler <Musikinstrument>StichprobeSoundverarbeitungVersion <Informatik>ProgrammierspracheCodeComputeranimation
ExponentVorlesung/Konferenz
ProgrammiergerätCodeProgrammiererSoftwareZahlenbereichBesprechung/InterviewComputeranimation
Sound <Multimedia>ZahlenbereichProgrammiererTor <Netzwerk>ZahlÄquivalenzComputeranimation
SSHCodeKryptoanalyseSchwebungLängeSound <Multimedia>ParametersystemMomentenproblemEbene KurveLösung <Mathematik>BitVorlesung/KonferenzBesprechung/Interview
RAMHilfesystemMittelungsverfahrenEbene KurveMusterspracheVorlesung/KonferenzProgramm/Quellcode
Programm/Quellcode
PULSECodeWINDOWS <Programm>Programm/Quellcode
RAMKonfigurationsdatenbankMAPRAW-FormatLoopEnde <Graphentheorie>StichprobeZufallsfunktionSound <Multimedia>CodeVersion <Informatik>Negative ZahlParametersystemWort <Informatik>BiproduktLaufzeitPILOT <Programmiersprache>PlatteFormation <Mathematik>Computeranimation
LängeGeschwindigkeitMagnettrommelspeicherStichprobeComputeranimation
High Performance FORTRANRAMCDLMAPHidden-Markov-ModellProgrammiergerätTAKT.dosSoundverarbeitungLoopStichprobeEnde <Graphentheorie>Sound <Multimedia>Vorlesung/Konferenz
Kooperatives InformationssystemCodeVariableTAKT.dosProgramm/QuellcodeTabelle
Supremum <Mathematik>Physikalische GrößeOktave <Mathematik>Vorlesung/KonferenzProgramm/Quellcode
Algebraisch abgeschlossener KörperVorlesung/Konferenz
Programm/Quellcode
RAMCodeVariableARM <Computerarchitektur>Große VereinheitlichungProgramm/Quellcode
RAMWeb SiteProgramm/Quellcode
Web SiteAaron <Programm>GoogleStichprobeEigenwertproblemZahlGoogleVersion <Informatik>CodeCoxeter-GruppeWeb SiteRepository <Informatik>Twitter <Softwareplattform>
MIDI <Musikelektronik>Demoszene <Programmierung>StichprobeSchnittstelleVorlesung/Konferenz
CodePrognoseverfahrenLINUXVorlesung/Konferenz
VariableProgrammiererFunktion <Mathematik>StichprobeCodeVorlesung/KonferenzBesprechung/Interview
MicrosoftJSONComputeranimationXML
Transkript: Deutsch(automatisch erzeugt)
So, jetzt geht gleich der nächste Talk los. Wir suchen uns allein Stuhl. Danke. An der nächsten Stunde geht es darum, dass Coding total einfach ist. Und zwar kinderleicht mit Musik, und zwar mit Sonic Pi.
Und das erklärt uns Martin Boots. Seinen Brotjob macht er bei einem IT-Unternehmen in Ulm. Er arbeitet auch als Lehrbeauftragter für verschiedene Universitäten, ist auch Autor fürs Radio. Und jetzt erzählt er uns aber was zu Sonic Pi. Martin, herzlich willkommen und die Bühne gehört dir.
Ja, Grüß Gott oder Moin, wie wir aus Bremen sagen. Genau, Name Martin Boots. Ich bin kein Programmierer.
Ich habe allerdings schon immer Musik gemacht. Und insofern bin ich der richtige Kandidat, um das Coding zu erklären, wenn es um Musik geht. Ich wollte am Anfang mal kurz sagen, was kommt. Ich werde ein bisschen was allgemein zu Sonic Pi sagen.
Ich werde das möglichst kurz halten, um dann überzugehen und das Programm einfach vorzustellen und ein paar Dinge zu zeigen. Am Schluss würde ich mir gerne fünf Minuten nehmen und ein bisschen Musik damit machen, abgesehen von den Beispielen. Und ich wollte jetzt mal fragen, so viele sind im Moment noch nicht da. Wer ist Programmierer oder Programmiererin? Ah, wer von denen kann Ruby?
Das ist gut. Also ich habe drei, die mir helfen können, falls ich hängen bleibe und den Wald vor lauter Bäumen nicht mehr sehe in meinem Code. Gibt es Lehrer oder Lehrerinnen? Keine, die könnten das mit ihren Schulklassen zusammen machen. Und gibt es jemanden, der Sonic Pi schon installiert hat oder ausprobiert?
Das sind zwei. Ich möchte dann weiter anfangen mit drei Zahlen, die sozusagen die Wünsche und Hoffnung wiedergeben. Ich hoffe, dass 70 Prozent der Leute, die hier sind, sich nicht langweilen, sich vielleicht sogar gut unterhalten fühlen und im besten Fall sogar inspiriert werden.
Ich möchte weiterhin das oder wünsche mir, dass 50 Prozent nach der Session hingehen und Sonic Pi installieren und damit arbeiten. Und zehn Prozent davon so begeistert sind, dass sie helfen möchten, dass dieses Programm weiter gedeiht. Diese Adresse zeige ich später nochmal. Da kann man nämlich dabei helfen, Sonic Pi weiterzuentwickeln, eventuell auch finanziell zu unterstützen, zu übersetzen und so weiter.
Gut, Code ist kalt, abstrakt, unverständlich für diejenigen, die nicht programmieren können, ungefähr wie dieses Muster. Und wenn wir weiter denken, was aus diesem Code entsteht, dann werden da langsam konkrete Sachen raus.
Und das hier ist Brian Eno. Brian Eno ist derjenige, der, ich glaube, den meisten würde das sagen, Produzent, selber Musiker, Videokünstler. Und er hat viel mit Software gearbeitet. I'm starting to be able to make things with that system that have real mystery and real personality.
This is always fascinating me that a system dispassionately set into motion will provide outputs that provoke you as listener into imagining compositional structures. Das längere Zitat.
Das ist ungefähr das, was einem mit Sonic Pi passieren kann. Man hat mit Code zu tun, mit Programmieren. Und kann auf sehr einfacher Weise sehr schnell musikalische Ergebnisse erzeugen, die sehr interessant werden können und einen faszinieren können. Wie das funktioniert, kann man sich so vorstellen. Sonic Pi ist ungefähr das, was eine Gitarre ist.
Man kann nur digital und mit Software, man kann schnell Gitarre lernen, drei, vier Akkorde und damit an jedem Lagerfeuer nahezu jedes Volkslied begleiten. Das macht Spaß. Das stiftet Gemeinschaft. Man kann das mit Sonic Pi ebenso machen, sehr schnell Klänge produzieren.
Und das funktioniert so, weil man ein direktes Feedback erhält von dem, was man eingebt, was man direkt hören kann. Man kann weiterhin das während der Laufzeit verändern. Das heißt, den Code, den ich schreibe, kann ich laufen lassen, verändern, hören, was passiert. Und zu guter Letzt ist es genauso wie bei der Gitarre. Wenn ich meine Lernkurve ein
wenig steiler gestalte, dann kann ich sehr weit gehen damit und sehr komplexe musikalische Ergebnisse erzeugen. Kurz zum Kontext. Was ist eigentlich Sonic Pi? Sonic Pi ist entwickelt worden von Sam Aaron an der University of Cambridge. Das ist, glaube ich, ungefähr zwei Jahre her.
Da hat er ein Projekt gearbeitet, wo es darum ging, das britische Curriculum für Grundschulen umzusetzen. Und in englischen Grundschulen muss man frühzeitig, kommt man in Kontakt mit Computern. Man soll aber nicht nur ein Textverarbeitungsprogramm bedienen können, sondern man soll auch richtig programmieren.
Daraus ist Sonic Pi entstanden. Es wird unterstützt unter anderem von der Raspberry Pi Foundation, die das mit gefördert hat. Und es läuft auf jedem Raspberry Pi unter anderem. Es läuft in Ruby oder mit Ruby. Das heißt, es ist ein Subset von Ruby, eine Untermenge von Ruby.
Darunter liegt noch was anderes, das ist nicht so wichtig, aber ich sage es mal, nämlich ein Software-Synthesizer und eine Umgebung zur Produktion von synthetischen Klängen. Super-Collider. Und es läuft auf Raspberry Pi, Mac OS, Windows und Linux. Hier und heute läuft es auf Linux.
Kurz um Sonic Pi einzuordnen. Ich denke, Sonic Pi ist unter anderem ein drojanisches Pferd für pädagogische Zwecke. Sam Aaron beschreibt in vielen Vorträgen, dass er in eine Klasse kommt und ganz fasziniert ist, dass dort ein Tova-Bo herrscht. Da sind 8-jährige, 9-jährige, 10-jährige und man hat ungefähr zwei Sätze Zeit, irgendwas zu sagen.
Und unter diesen Umstellungen soll man erklären, was sind Variablen, was sind Funktionen, vielleicht sogar Threaded Computing. Vollkommen unmöglich. Also muss in den zwei Sätzen was passieren, was die Kids fasziniert, um sie anfangen zu hacken. Und dann werden sie interessiert und es geht weiter. Das funktioniert.
Ich habe es noch nicht gemacht. Ich habe es mit Studenten gemacht. Da habe ich wesentlich mehr Zeit, also mindestens 7 oder 8 Sätze. Sonic Pi ist eine Programmierumgebung. Das heißt, man schreibt Code, man hat einen Editor, man hat eine Runtime-Umgebung, also eine Laufzeit-Umgebung. Das heißt, der Code wird dann verstanden vom Computer und umgesetzt. Man hat natürlich eine Programmiersprache.
Sonic Pi ist sowas wie ein Synthesizer. Das ist nicht ganz richtig technisch gesehen, aber man kann darüber einen Synthesizer ansprechen. Ich habe aktuell in der Version 21039 verschiedene Sounds, Synthesizer und 35 Effekte.
Sonic Pi ist sowas wie ein Sequencer oder ein Sampler. Das heißt jetzt nicht, dass es direkt ein Sequencer oder Sampler ist. Das bedeutet, dass ich musikalische Strukturen, Patterns organisieren kann, ordnen kann, in Loops abspielen lassen kann und dass ich mit Samples arbeiten kann. Ich kann nicht samplen mit Sonic Pi, aber ich kann Samples verarbeiten.
Und für diejenigen, die jetzt nicht ganz genau wissen, was ist eigentlich ein Sample, das ist nichts anderes als eine digitale Tonaufnahme. Kürzer oder länger und die kann ich in Sonic Pi reinladen und wie das funktioniert, zeige ich gleich auch. Sonic Pi ist für mich jedenfalls sowas wie eine musikalische Experimentierwerkstatt.
Man kann, wie das manche auch machen, klassische Musikstücke zusammenbauen, gucken wie funktionieren die, die nachvollziehen, indem man sie eben auf eine eher abstrakte Weise in Sonic Pi umsetzt und abspielen lässt. Und Sonic Pi ist schließlich ein Livecoding Instrument. Dann kommt die Gitarre wieder.
Sam Aaron macht damit ja wirklich Livecoding, man könnte sagen vom DJ zum CJ, also vom Disc Jockey zum Code Jockey. Das ist nur eine besondere Sache und ich mache auch ein bisschen Livecoding heute. Allerdings bin ich nicht so gut wie Sam Aaron, lange nicht. Deswegen habe ich ein bisschen vorbereitet, denn das ist schon sehr anspruchsvoll,
sich hinzustellen, Chor zu schreiben und die Leute dazu tanzen zu lassen. Das ist nicht so, dass es so eine unterkühlte Computervorführung ist, sondern es wird Tanzmusik produziert. Und es gibt immer mehr. Sonic Pi ist nicht das einzige Programm, mit dem das geschieht, aber es ist wahrscheinlich eines, was Livecoding popularisieren wird und schon popularisiert hat.
Okay, let's see. Jetzt muss ich die Brille hochsetzen. So sieht Sonic Pi aus, wenn man es öffnet. Es hat auch ein helles Interface. Ich habe hier das Dunkel eingestellt und ich muss meinen Spickzettel mal hervorholen, damit ich nichts vergesse.
Das Tolle an dieser Software ist, dass sie als ersten Befehl, den man eingibt, Play hat. Also man soll Spaß haben. Und was kann man dahinter schreiben, zum Beispiel eine Zahl?
So, Sam Aaron sagt in Vorträgen immer, was macht man mit Zahlen? Da sitzen dann Programmierer und die sagen, ja, mit Zahlen, keine Ahnung, ich bin kein Programmierer. Da kann man rechnen oder noch kompliziertere Sachen machen. Was macht man mit Zahlen? Irgendwelche Ideen? Das ist ganz simpel. Zahlen gehen rauf oder Zahlen gehen runter.
Wenn ich also hier eine 70 einschreibe, dann habe ich einen höheren Ton. Eine 75 oder nehmen wir mal tiefere, eine 30, ziemlich tief, ein bisschen höher, 40. Ich kann natürlich auch sowas schreiben wie 50,5 oder sowas hier.
Verändert sich nicht viel logischerweise. Ich kann auch sowas schreiben wie zum Beispiel 30 mal 2 plus 4.
Und auch dann kommt ein Ton. Und daran kann man sehen, wenn ich nämlich hier, also jetzt für die Programmierer unter uns, wenn ich mir das aufgeben lasse mit Putz, dann sieht man da auf der linken Seite.
Ist das groß genug im Übrigen? Sonst kann ich das ein bisschen größer machen, zumindest die Kotseite. Und hier auf der linken Seite wird mir die 64 ausgegeben. So was ist jetzt das eigentlich für eine Zahl? Das ist eine Midi-Nummer. Also das ist das Midi-Äquivalent dieser Zahl, die abgespielt wird.
Und für die, die musikalisch ein bisschen bewandert sind, kann man natürlich auch richtige Töne eingeben. Die 60 ist das Midi-Äquivalent für das C, also das mittlere C auf dem Klavier. Das heißt, ich kann auch hingehen und kann hier ein C schreiben.
Das heißt, ich kann auch sowas schreiben wie Play C, dann kann ich schreiben Play E und dann kann ich schreiben Play G. Was passiert da? Die werden alle zusammen abgespielt. Das wollte ich eigentlich gar nicht. Aber ich habe so schon mal C-Dur-Dreiklang.
So, jetzt kommt das zweite Befehl, der eigentlich genauso schön ist wie Play. Der heißt nämlich Sleep. Also ich play ein bisschen und dann mache ich ein bisschen Sleep.
Und dann werden die hintereinander gespielt. Ich kann auch hier eben eine kürzere Zahl eingeben. Und dann läuft das Ganze ein bisschen schneller ab. So, was passiert, wenn ich dann eine Eins eingebe? Im Moment ist die Beats per Minute, die default standardmäßig, bei 60.
Das heißt, eins bedeutet eine Sekunde bzw. ein Beat. Wenn ich hier 25 eingebe, dann haben wir eine Viertelsekunde bzw. ein Viertel Beat.
Diesem Play kann ich bestimmte Parameter mitgeben. Also kann ich zum Beispiel sagen, das klingt jetzt so. Ich möchte das ein bisschen lauter haben und sage Amp gleich zwei.
Amp steht für die Lautstärke. Ich kann jetzt aber auch sagen, ich möchte den Ton ein bisschen verändern. Zum Beispiel soll der länger sein. Was ich damit verändere, ist die sogenannte Höhlkurve. Das ist das, was man bei Synthesizer Klängen braucht, um einen Klang zu beeinflussen in der Länge.
Ich kann dann zum Beispiel auch sagen, den Release, das ist, wenn man so will, die Ausblende. Die soll jetzt auch nochmal ein bisschen länger dauern. Den Sustain mache ich ein bisschen kürzer.
Zwei Beats. Und schließlich kann ich auch noch sagen, den Attack. Das ist, kurz und falsch gesagt, die Einblende. Die soll auch, machen wir den hier ein bisschen kürzer.
So, jetzt kommt die Stelle, wo Sam Aaron immer sagt, jetzt hat man eigentlich alles, was man braucht, um die gesamte westliche Musiktradition in Sonic Pi umzusetzen. Wir haben Play, Tonhöhe und wir haben Sleep, Zeitdauer. Und um das mal tatkräftig deutlich zu machen, habe ich mir einen kleinen Code zurechtgelegt.
Den spiele ich jetzt mal ab.
Play Sleep, Play Sleep, Play Sleep, immer so weiter. Das ist natürlich ein bisschen, wie soll man sagen, ein bisschen langwierig, das alles hinzuschreiben. Ich kommentiere das mal aus. Dazu gibt es dann in Sonic Pi natürlich auch noch weitere Mittel, um das ein bisschen zu verkürzen.
Und zum zweiten habe ich auch noch das Problem, dass ich vielleicht, spätestens wenn die Kids dann ausprobieren und eine Melodie bauen, dann sagen sie, jetzt will ich einen Bass darunter haben. Also wird ganz einfach mal das Thema Threaded Computing eingeführt.
Das heißt, wie kriege ich den Computer dazu, dass er zwei Dinge gleichzeitig macht, unabhängig voneinander. Und dazu gibt es hier das Konstrukt InThreadDo. Das ist jetzt der richtige Augenblick, um dir Hilfe einzuführen, denn InThread, was ist das? Und da unten habe ich noch Play Pattern Timed. Play Pattern Timed fasst mir Play und Sleep einfach zusammen.
Und ich kann jetzt einfach in meinem Fall diese Störung I drücken, kriege unten ein Hilfesystem und da steht dann Play Pattern Notes with specific times und so weiter. Kann ich da nachschlagen. Sehr praktisch. Ich spiele jetzt mal das zweite. Da habe ich im Prinzip noch mal die Ode und mit einer kleinen Bassbegleitung.
Das klingt dann so. Und so weiter. Das kann man natürlich sagen, so richtig Klassik. Ich weiß nicht, ob man das jetzt schon so nennen kann.
Es gibt Leute, die sehr aufwendig in Sonic Pi klassische Musikstücke nachbauen. Und ich zeige einfach mal ein Beispiel. Wenn ich hier die Hilfe aufrufe, dann sieht man links unten, es gibt ein Tutorial, sehr lesenswert, übersetzt in mittlerweile, glaube ich, ungefähr zehn Sprachen.
Auch in Deutsch. Das kann man als erstes durchgehen, aber es gibt auch Beispiele. Und unter den Beispielen habe ich hier unten den Bach. Da sage ich einfach, den kopiere ich mir rein, von hier nach oben, setze den rein, mache die Hilfe wieder weg und spiele einfach mal diesen Code.
Ja, das ist ganz schön, aber ich will jetzt mal, dass das ein bisschen originaler klingt. Deswegen verändere ich mal hier oben was und sage, statt use synth beep, das ist der Standardklang, das ist ein normaler Sinus-Ton. Nehme ich mir jetzt mal das Piano.
Okay, es gibt wahrscheinlich bessere Bach-Interpretationen als die, die man mit Sonic Pi machen kann. Trotzdem ist das interessant, weil in dem Augenblick, wo ich so was nachbaue, fange ich an zu verstehen, was hat denn Bach da gemacht. Nicht für jeden was, aber eine der Möglichkeiten. Ich nehme ein anderes Beispiel.
Wer kennt Clapping Music von Steve Reich? Okay, da gab es jemanden, der hat das im Netz umgesetzt, William Denton,
der hat das in Sonic Pi nachgebaut. Und ganz kurz zur Erläutung für die, die es nicht kennen. Clapping Music besteht aus zwei Klatschmustern. Nämlich ungefähr so, da kommt noch jemand anders.
Also wenn jetzt einer mitmachen könnte, dann könnten wir das hier aufführen. Und das interessante daran ist, dass eben diese Muster viermal wiederholt werden. Und dann wird die untere Zeile, ich habe den ersten Clap markiert, die wird nach links geschoben und der Vorderer hinten dran gesetzt. Das sieht ungefähr so aus. Nach viermal wiederholen wird das untere wieder weiter geschoben
und das sieht dann so aus und so weiter. Bis am Schluss schließlich nach 13 Wiederholungen, die wieder synchron laufen. Und in Sonic Pi klingt das so.
Dann waren wir wieder am Ende. Jetzt kann man sowas nehmen und nachspielen.
Man kann gucken, wie ist der Code gebaut, man kann das nachvollziehen. Aber interessant wird es eigentlich, wo man anfängt so ein Beispiel zu nehmen und zu sagen, okay, ich kenne mich jetzt noch nicht so mit Sonic Pi aus. Ich verändere das mal ein bisschen. Und ich habe das jetzt so verändert, dass ich dieses Klatschmuster insgesamt fünfmal,
sogar sechsmal beieinander gelagert habe und einfach die Verlagerung nochmal ein bisschen, also die verlagern sich sozusagen nacheinander und habe dann einen ganz interessanten Klang-Effekt.
Ich habe ein anderes Muster genommen. Das heißt, ich kann musikalische Ideen aufgreifen und kann anfangen, sie Schritt vor Schritt zu verändern,
den Klang zu verändern, die rhythmischen Muster zu verändern und komme dann zu solchen Ergebnissen. Jetzt wird es wieder etwas einfacher und gleichzeitig spannend. Ich habe das Kapitel grenzenlosen Samplespaß genannt.
Sonic Pi enthält bestimmte Sample und die kann ich mir aufrufen. Und ihr seht, es gibt eine kontextsensitive Hilfe, ich mache das wieder ein bisschen größer,
die mir, sobald ich etwas eingebe, alle Samples auch links anzeigt, die im Programm drin sind. Und den lassen wir mal laufen. Der kennt den Amen Break. Der Amen Break ist sozusagen die Keimzelle des Hip-Hop. Ein Break von einem Stück,
was ursprünglich von den Amen Brothers kam, aus den 60ern, späten 60ern. Und dann später in den 80ern wiederentdeckt wurde und nahezu für jeden Hip-Hop-Song recycelt wurde, neben ein paar anderen Breaks, die zur Verfügung stehen.
Jetzt habe ich hier einen Break, der heißt Loop Amen. Und der heißt Loop Amen, weil man den nämlich loopen kann. Und das mache ich jetzt mal. Ich schreibe einfach ein Loop Do und dann schreibe ich End. Und das geht jetzt total schief, wenn ich das laufen lasse. Und zwar deswegen, weil Sonic Pi denkt, ah, ich soll den unendlich loopen.
Also wir müssen jetzt ein bisschen schlafen zwischendurch, damit der Loop Zeit hat zu spielen. Und danach wieder neu ansetzen kann. Aber woher weiß ich jetzt, wie lange ich pausieren soll? Also jetzt kann ich zum Beispiel mal hier reinschreiben. Sleep 3. Nimm es mal aus.
Ja, das ist jetzt kein richtiger Loop. Die Lösung ist, es muss genauso lange geschlafen werden, wie der Sample auch dauert. Und dafür gibt es so eine Funktion, die sagt mir Sample Duration. Okay, gebe ich den Sample an.
Das ist Loop Amen. Und jetzt kann ich das spielen. Wo es jetzt spannend wird, führ ich etwas ein. Das heißt Live Loop.
Live Loop. Da hat jemand mal in einem Posting, es kann sein, dass ich das sogar war, auf der Sonic Pi Group sich verschrieben und Love Loop geschrieben. Und der andere sagte, das ist schön, das lassen wir so in der Doku, sobald es so leidenschaftlich klingt. So, die Live Loop hat den tollen Vorteil,
dass ich das laufen lassen kann. Und ich kann es jetzt verändern. Rate. 0,75. Hier unten auch.
Hip Hop. Oder vielleicht mal so. Oder vielleicht doch lieber Jungle. Was passiert, wenn ich eine negative Zahl inschreibe?
Der Mann hat eine freie Version von Sonic Pi gewonnen. Okay, es gibt aber noch mehr. Nehmen wir an, ich habe hier einen Sample.
Der heißt Amby Rub. Der klingt so. Glass. Jetzt kann ich beispielsweise sagen, ich möchte gerne, dass das Ding ein bisschen später anfängt
und ein bisschen früher aufhört. Da muss noch was hin. Finish. So, das sind zwei Parameter, die ich diesem Sample übergebe. Und jetzt fängt der 25,75, kann man sich als Prozent denken.
Der ganze Sample geht von 0 bis 1. 0,25 bedeutet, fang nach 25 Prozent des Samples, also der Tondatei, an und hör bei 75 Prozent wieder auf. Und damit kann man dann ganz interessante Sachen machen.
Wenn ich beispielsweise sage, ich mache mir hier wieder eine Live Loop. Die muss da oben hin. Live Loop, die nenne ich Amby. Sage Du. Und hier kommt mein, sagen wir mal, Sleep Dry 3 an End.
Jetzt habe ich mir eigentlich aus diesem Sample, so ein Glas, so einen Ton gemacht, den ich benutzen kann für irgendwas. Und interessant wird es, wenn ich in Sonic Pi dann die Vielzahl der Zufallsfunktionen nutze. Ich stelle eben eine mal vor, wenn ich jetzt sage, die Rate,
das haben wir schon gesehen mit, da kann ich die Geschwindigkeit bzw. auch die Tonhöhe, die Länge des Samples steuern und gleichzeitig auch die Tonhöhe. Und sage jetzt hier mal, ich übergebe drei verschiedene Rates. Also die 25, dann mal die 0,5 und dann mal die 0,75.
Und dann sage ich dahinter, Choose. So, jetzt wird Sonic Pi angewiesen, bei jedem Durchlauf, sich eine auszusuchen, nach dem Zufallsprinzip.
Wenn ich jetzt zum Beispiel die Zeit ein bisschen verkürze, dann fangen die sich an zu überlagern. Nur würde das schon als Ambient-Komposition wahrscheinlich durchgehen lassen.
So, jetzt habe ich gesagt, Sequencer und Drum Computer. Und um das zu zeigen, will ich jetzt mal ein kleines, wie viel Zeit habe ich eigentlich noch? Hallo, wie viel Zeit habe ich noch? Halbe Stunde, super.
Ich möchte mir jetzt als erstes mal eine Hi-Hat bauen. Dann sage ich mir, ich brauche auf jeden Fall eine Live Loop. Die Live Loop heißt Hi-Hat.
Keine Angst, ich tippe nur die Hi-Hat ein, den Rest habe ich dann als Kurzschnitzel, sonst dauert das einfach zu lange. Ich sage Du und jetzt baue ich auf jeden Fall einen Ton. Nehme ich mal das C und der soll auch schlafen. Dann sage ich mal 0,25 und dann sage ich End und probiere das mal aus.
Klingt irgendwie noch nicht wirklich wie eine Hi-Hat. Dann muss ich mal den Synthesizer wechseln. Also dann sage ich use Synth und zur Musik gehört auch Krach, also nehme ich mal Noise.
Es klingt jetzt noch immer nicht wie eine Hi-Hat. Dann sage ich mal, da muss ein Filter hin. With FX und dann nehmen wir einen Hi-Hat-Filter. Der kriegt einen Parameterwert, Cutoff 120.
Das ist mir noch zu lang, wird kürzer gemacht, noch kürzer gemacht, noch zu lang.
Und jetzt klingt das schon etwas besser, also so kann ich sie gebrauchen. Aber das Ganze ist mir viel zu langsam und deswegen schreibe ich obenhin use BPM und sage 120.
Als nächstes brauchen wir jetzt eine Kickdrum.
Da habe ich ein Sample für die Kickdrum und das sieht jetzt so aus. Ich habe hier dann eine Live Loop, die ich brauche. Ich habe einen Effekt und bei den Effekten ist das so, die sind ja einfach zu gebrauchen. Ich habe meine Live Loop und in der Mitte spielt irgendwas und dann sage ich ok, darum kommt der Effekt.
Alles, was drin läuft, wird mit diesem Effekt abgespielt. Mir fehlt noch etwas dazwischen, nämlich ich brauche eine Schleife, die nichts anders tut, als mit die Takte zu zählen. Weil die Bassdrum und alle anderen, die sollen ich irgendwann einsetzen, sondern die sollen dann einsetzen, wenn ein Takt abgelaufen ist.
Die habe ich mir auch vorbereitet, die heißt Live Loop Bar und die macht nichts anderes als vier Takte zu schlafen. So, ich führe das aus und mal gucken, wie es klingt.
Cutoff, machen wir den mal ein bisschen aggressiver. Jetzt kommt dazu noch eine Snare, die ist jetzt ziemlich leise, machen wir die noch ein bisschen lauter.
Und die gefällt mir auch nicht so gut, ich will da gerne einen Effekt drum haben. Die soll ein bisschen mehr Raum bekommen und deswegen nehme ich den Effekt in Reverb. Da sage ich, der soll einen mittleren Raum haben und zur Hälfte gemischt werden mit dem richtigen Klang.
So, das interessante an diesem Live Loop ist noch etwas ganz anderes. Wenn ich das nämlich jetzt ausführe, dann kriege ich da unten einen Fehler ausgeworfen.
Wenn mir jetzt in jedem normalen Programm, würde das Programm stehen bleiben und sagen, ok, war ein Fehler, ich höre jetzt ganz auf. Wenn ich Live Loop benutze, passiert etwas anderes, denn ich will nicht, dass die Leute aufhören zu tanzen. Sonic Pie sagt mir, ok, da ist ein Fehler passiert, guck, wo der Fehler ist, fix den Fehler und dann mal weiter.
Und jetzt haben wir hier einen Hall drauf. Ich kann den auch ein bisschen größer machen, damit man es mal ganz deutlich hört.
So, wo wir jetzt so weit sind, können wir auch noch einen Bass dazu bauen.
Der Bass ist nicht da. Da habe ich jetzt noch ein bisschen was anders gemacht.
Das kann man dann machen, wenn man zwei Tage in Sonic Pie gekodet hat. Dann kann man sagen, ich will mir so eine Bass-Linie zusammenbauen, die als Variable speichern und nachher sage ich dann Play Baseline. Da steht auch noch etwas dahinter, aber das werde ich jetzt nicht erläutern, das macht die Sache ein bisschen zu kompliziert. Und man sieht eben eins, ich habe hier eine, da oben steht Sync.
Das sorgt dafür, dass mein Bass über zwei Takte geht. Auf jeden Fall hört, wann ist dann ein Takt zu Ende gespielt, damit er nicht mittendrin irgendwann anfängt. Und ob das jetzt stimmt, werde ich probieren, indem ich den Code evaluiere.
Dann können wir den Bass auch ein bisschen aggressiver machen. Gut, dann kommen jetzt noch ein paar Akkorde dazu. Ganz einfach, damit das Stück vollständig wird.
Und eine kleine Melodie.
So, das klingt mir jetzt ein bisschen zu langweilig. Ich mache die mal lauter, damit man hört, wie langweilig das klingt.
Die kriegt auch ein bisschen Hall.
Hier können wir auch ganz kurze Funktionen gebrauchen. Denn ich sage dem, der soll nicht immer 0,5 schlafen, also sozusagen jede halbe Note spielen. Sondern er soll sich das auch aussuchen. Und zwar kriegt er 0,25. Er kriegt 0,75 und 0,75.
Und soll sich eins aussuchen. Choose. Fehler gemacht. Threadbath. Was haben wir falsch gemacht?
Hat jemand was gesagt? Okay, ich dachte, da wäre die Hilfe. Mal eben gucken. Zweep on around 73. With FX.
Da muss man natürlich angeben, was für ein FX man haben möchte.
Mal ein bisschen lauter. So, die Melodie, da sieht man ein Konstrukt. Das hatten wir noch nicht in unserem Kurs hier. Da kann man nämlich mit ganzen Skalen arbeiten. Und kann mir auch so eine kleine Skala holen. In dem Fall ist es C auf der Stufe C5.
Das ist am Klavier ungefähr hier. Und er soll eine minor Pentatonik spielen. Jetzt kann ich auch sagen, nimm dir noch ein paar mehr Oktaven, aus denen du aussuchst, in den Oktaven zu springen.
Wie viel Zeit habe ich jetzt noch? 20 Minuten, Viertelstunde? Große. Es ist unklar, wie viel Zeit ich habe. Ich gehe mal davon aus, dass es noch...
Wie viel? 15 Minuten? Super. Ich habe eben im Wintersemester ein Seminar an der Leuphana-Uni gemacht. Und da wollte ich ein Beispiel vorspielen.
Das hat mir so gut gefallen. Und zwar hat eine Studentin, die sollte am Schluss eine Abschlussaufgabe machen, die hat einen Klingelton in Sonic Pipe programmiert. Und zwar hat sie geforscht, weil sie hat das Problem gehabt, dass sie nie aufwacht. Und dann hat sie geforscht, wie muss ein Klingelton sich anhören. Und hat dann herausgefunden, dass der erst ganz sanft anfängt. Und dann soll der unheimlich aggressiv sein.
Und dann soll der wieder ein bisschen ruhiger werden. Und ich wollte das Ergebnis mal gerne vorspielen. Ich hoffe, das läuft hier auch so. Das ist einfach zu schön. Sehr humorvoll.
Okay, das soll reichen. Ich habe sie gefragt, ob sie den benutzen. Sie hat gesagt, ja, sie benutzt den. Das fand ich toll. Sie hat wirklich die Seminarinhalte zusammengebracht mit einer Sache,
die für sie wichtig ist, die sie beschäftigen und das Ganze, in Sonic Pipe umgesetzt. Das ist ein tolles Lernergebnis. Ich würde jetzt gerne noch ein bisschen Musik machen, ohne Erklärung. Und dann vielleicht noch ein paar Minuten für Fragen haben, die letzten drei Folien, wo ich aber auch noch mal Links zeige und so weiter. Ich habe den Code komplett vorbereitet, weil da wäre ich ein bisschen mit überfordert.
Und vor allen Dingen haben wir auch nicht die Zeit, um hier wirklich Live-Coding zu machen. Machen wir ein bisschen größer. Aber ich kann das kurz mal zeigen, wie das aussehen kann. So, wenn ich den ganz klein mache, dann sieht man, okay, so viel Code ist das ungefähr, ein bisschen mehr sogar.
Und hier oben habe ich mir einen Mixer gebaut. Das ist so ein Mixer für Arme. Damit kann ich die Sachen einschalten, ausschalten. Aber ein bisschen werde ich auch in den Code reingehen, ein paar Sachen verändern. Und dann fange ich jetzt einfach mal an damit.
Also die Folie dazu nochmal zeigen. Das steht unter dem Titel Tiny Hommage. Wird, glaube ich, noch mit einem M geschrieben, oder? Egal. Too early Detroit Techno.
Ganz kurz, Links. Es gibt natürlich eine Website für Sonic Pi. Also ich werde diese Präsentationen online stellen, das Twitteren, Blogbite, verbloggen. Und da ist auch der Code dabei. Das kann aber ein paar Tage dauern. Also Website, es gibt natürlich das GitHub Repository, dort wird entwickelt. Dort kann man auch die Developer Version runterladen.
Es gibt Google Groups. Sehr freundlich das Klima in der Google Group von Sonic Pi. Vor allen Dingen, Anfänger sind immer willkommen. Es gibt einen Live Coding Channel von Sam Aaron, der regelmäßig, ich glaube, Donnerstagsabends Live Coding macht. Es gibt das Repository, das ich angelegt habe für den Uni-Kurs. Da gibt es auch einigen Code, den man runterladen kann.
Und unten nochmal, wer Sonic Pi unterstützen möchte. Ich möchte ganz kurz diese Leute zeigen, von denen ich viel geklaut habe, abgeguckt habe, die in der Sonic Pi Community mitmachen. Zum großen Teil auch das Programm entwickelt. Sam Aaron, Robin Newman, das ist der Klassiker, Xavier Riley und andere noch.
Natürlich an die Republikan vielen Dank für die Einladung. Und jetzt wäre noch Zeit für ein bisschen, für einige Fragen, wenn es dann welche gibt. Da hinten ist eine Frage. Da stand eine Zahl hinter Samples. Kann man auch eigene Samples reinladen?
Ja. Man kann alles, was man will, reinladen. Ganze Sample Packs. Ja, kein Problem. WAV und AIFF-Dateien. So steht es. Vielen Dank erstmal für die schöne Demo.
Gibt es eine Möglichkeit, externe MIDI-Daten zu verarbeiten? Also, dass man zum Beispiel ein Instrument hier definiert und das per Keyboard zum Beispiel anspielen könnte? Soweit ich weiß, noch nicht. Ich würde mir gerne ein Monomake kaufen und dann Sonic Pi damit stellen. Das geht noch nicht, aber es wird eine offizielle MIDI-Schnittstelle geben.
Das Problem ist im Moment, dass das Funding ausläuft für Sam Aaron jetzt im August. Und er hat großes Interesse daran, das weiterzuentwickeln. Und es gibt auch viele Leute, es gibt auch schon einige, die haben so eine Alpha-Midi-Schnittstelle zusammengebaut. Denn man kann es definitiv von außen ansprechen.
Also zum Beispiel kann man Sonic Pi ja auch von EMAX aus. Ich kann den Code in EMAX zu schreiben und in Sonic Pi dann laden, aber noch keine offizielle. Vielen Dank. Ja, weil Sie ja anfangs meinten, dass das auf Supercollider gebaut ist.
Wie ist das Verhältnis? Ist das einfach noch mal ein Layer drauf und vereinfacht? Das erste habe ich nicht ganz verstanden, akustisch. Supercollider, was ist für eine Rolle spielt dabei? Supercollider ist für die Klangensynthese zuständig. Das heißt im Prinzip, in Sonic Pi sind kompilierte Supercollider-Skripte hinterlegt.
Und die werden, um die synths zu definieren, und die werden aufgerufen von Sonic Pi aus. Also Sonic Pi nutzt für die Klangproduktion, wenn es nicht gerade sampled sind, Supercollider. Deswegen, der wird allerdings, mittlerweile gibt es auch für Linux ein gepacktes Paket, für EMAX sowieso. Muss man nicht extra installieren, alles zusammen ist lauffähig.
Noch eine Frage. Dann habe ich noch eine. Stehen meine Prognosen vom Anfang, wer wird sich Sonic Pi installieren und es ausprobieren? Ich weiß jetzt nicht, wer es fördern wird.
Und ich gehe mal davon aus, dass sich alle zumindest nicht gelangweilt haben. Vielen Dank für die Geduld. Eine Frage haben wir noch. Hier ist noch eine Frage, ja. Sie haben gesagt, dass Sie in England so 8- bis 9-Jährige damit programmieren lernen. Gibt es da eine Möglichkeit, auch die Variablen und die Funktionen auf Deutsch zu übersetzen für die deutschen Kinder?
Weil für die ist es wahrscheinlich schwieriger. Piano geht vielleicht noch, Sample ist schon ein bisschen schwieriger zu verstehen. Also es gibt die Policy, dass übersetzt wird das Tutorial. Ruby zu übersetzen macht wenig Sinn, weil das ist wirklich Ruby-Code. Abgesehen davon, wer Programmieren lernen will, der muss sowieso vor oder später Englisch lernen.
Xavier Reilly hat das mal gesagt, wenn ein 10-Jähriger das Feature versteht, dann darf es in Sonic Pi rein. Aber Tutorial, sehr sinnvoll, wird übersetzt, laufend. Und das lohnt sich auch durchzuarbeiten. Da wird aber auch sehr vorsichtig mit den englischen Begriffen.
Die werden dann kurz erklärt, warum heißt das denn so und so weiter. Und man kommt sowieso nicht dran vorbei. Okay, gut, danke.