{"id":7750,"date":"2021-11-08T13:19:39","date_gmt":"2021-11-08T13:19:39","guid":{"rendered":"http:\/\/www.gamelab.ch\/?p=7750"},"modified":"2021-11-09T19:50:20","modified_gmt":"2021-11-09T19:50:20","slug":"live-coding-music-and-visuals","status":"publish","type":"post","link":"https:\/\/www.gamelab.ch\/?p=7750","title":{"rendered":"(Live) Coding Music (and Visuals) [Update 9.Nov]"},"content":{"rendered":"\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/merlin_161398722_6c45769a-7664-47a0-af32-cd4c07b3ce8a-superJumbo-1024x683.jpg\" alt=\"\" data-id=\"7751\" class=\"wp-image-7751\" srcset=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/merlin_161398722_6c45769a-7664-47a0-af32-cd4c07b3ce8a-superJumbo-1024x683.jpg 1024w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/merlin_161398722_6c45769a-7664-47a0-af32-cd4c07b3ce8a-superJumbo-300x200.jpg 300w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/merlin_161398722_6c45769a-7664-47a0-af32-cd4c07b3ce8a-superJumbo-768x512.jpg 768w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/merlin_161398722_6c45769a-7664-47a0-af32-cd4c07b3ce8a-superJumbo-1536x1024.jpg 1536w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/merlin_161398722_6c45769a-7664-47a0-af32-cd4c07b3ce8a-superJumbo.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Lange war Coding etwas, was Nerds irgendwie im Stillen gemacht haben. Der Grund daf\u00fcr ist nicht nur kulturell. Source-Code musste oft kompilliert werden, ein teilweise mehrere Minuten langer Prozess \u00fcber mehrere Schritte um eine Exe\/App zu erhalten, die nur so in Echtzeit dann schnell genug lief. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Schnellere Computer und virtual Maschines (VM) <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Zeiten sind mehrheitlich vorbei &#8211; die Computer, die Optimierungen und auch spezielle Sprachen machen es m\u00f6glich: Heute laufen viele Apps sogar jenseits systemnaher Programmierung in Browsern auf VirtualMaschines extrem schnell. Sogar in Sprachen wie Javascript. Der erste MP3-Player rein geschrieben in Javascript markierte hier eine Wende &#8211; zuvor war dies nur in Anwendungen mglich. Sogar die Demo-Scene bietet heute Live-Coding-Battles &#8211; nicht ganz zur Freude der ganzen Scene. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Motto<\/strong>: &#8222;<strong>MAKING MUSIC WITH TEXT (URE)<\/strong>&#8222;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vielleicht kann das Motto von Live Coding auch in <a href=\"https:\/\/slab.org\/music\/\" target=\"_blank\" rel=\"noreferrer noopener\">Alex McLeans <\/a>Claim zusammengefasst werden:<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"604\" height=\"192\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.39.07.png\" alt=\"\" data-id=\"7752\" class=\"wp-image-7752\" srcset=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.39.07.png 604w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.39.07-300x95.png 300w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Was er darunter versteht macht er auch gleich im folgenden Video klar (aus dem ein Teil der Links stammen):<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Introduction to Live Coding Music and Visuals\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/-QY2x6aZzqc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Es geht also um die Magie des Source Codes, der aus Text alles machen. Es kommt allein auf die Interpretation drauf an. Cyberspace ist die Regelwelt von Interaktion \u00fcber Raum bis Music. Und hier interpretieren nicht mehr nur Menschen sondern eben auch Maschinen. Wobei das nat\u00fcrlich nicht ganz korrekt ist: In den Liveperformances kann man mitverfolgen, wie sich der Text aufbaut, was was bedeuten k\u00f6nnte, wie der Code &#8218;klingt&#8216; oder eben was er zeichnet. Es ist eine Art zuschauen und teilweise mitverfolgen des Akt des Codens. Anders als sonst, wird es allerdings hier sicht- bzw. h\u00f6rbar. Hier etwa eindr\u00fccklich beim BYTE BATTLE. Erstelle eine Demo zu einem Thema in 25 Minuten in 256 bytes. Performance garantiert.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Lovebyte 2021 - Byte Battle Quarterfinal: Flopine vs Gasman\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/_JQm46HuDEE?start=227&amp;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Im Lauf der Zeit<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schaut man sich die verschiedenen Eintr\u00e4ge und Tools (und auch die eigene Besch\u00e4ftigung damit) an, so hat man den Eindruck, dass die Szene sehr aktiv war um 1990+ (vorallem universit\u00e4r?) auf Betriebssystemebene, 2000, um 2010 stark gewachsen ist und anschliessend sowohl weniger Tools, weniger Events hatte (etwa auch sichtbar an der Timeline der<a rel=\"noreferrer noopener\" href=\"https:\/\/slab.org\/music\/\" target=\"_blank\"> Auftritte von McLean<\/a> &#8211; inzwischen reicht es auch wieder f\u00fcr Text in der <a rel=\"noreferrer noopener\" href=\"https:\/\/www.nytimes.com\/2019\/10\/04\/style\/live-code-music.html\" target=\"_blank\">New York Times<\/a>) und jetzt wieder zur\u00fcck ist mit vielen neuen Tools, die nun auch im Browser laufen und damit eine ganz andere Reichweite haben, zudem kommen andere Arten von Events hinzu. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Live Visual Coding<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um es vorwegzuschicken: Es gibt viel Tools, viele die kommen interessant sind und wieder verblassen. Hier sei eines vorgestellt, dass auch in Music Coding Tools eingebettet werden kann: Hydra &#8211; einem Live-Webtool von Olivia Jack (<a href=\"http:\/\/cdm.link\/2019\/02\/hydra-olivia-jack\/\" target=\"_blank\" rel=\"noreferrer noopener\">Interview<\/a>).<br><a href=\"https:\/\/ojack.xyz\/articles\/hydra\/index.html\">https:\/\/ojack.xyz\/articles\/hydra\/index.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der interessante Mix zeigt sich hier schon auf der Oberfl\u00e4che des Tools. Code und Resultat sind gleichgestellt bzw. \u00fcberblendet und nicht eingesperrt in verschiedene Fenster. Der Coder* kann schreiben und per Play den Code ausf\u00fchren lassen, der dann im Hintergrund weiterl\u00e4uft, bis zur n\u00e4chsten gewollten Aktualisierung. Ein Stop und Go wie in klassischem Development entf\u00e4llt. Der Coder* wird mit dem letzten laufenden Code belohnt.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"458\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.08.27-1024x458.png\" alt=\"\" data-id=\"7756\" class=\"wp-image-7756\" srcset=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.08.27-1024x458.png 1024w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.08.27-300x134.png 300w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.08.27-768x344.png 768w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.08.27-1536x688.png 1536w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-10.08.27-2048x917.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Das Tool ist also schon in seiner Konstruktion auf Code to Visuals ausgerichtet. Die Generierung arbeitet mit Oszillatoren, die man Modifizieren kann osc().rotate().out(). Dies alles garantiert auch immer schon ein visuelles Resultat. Das Resultat kann dann ver\u00e4ndert, es kann damit experimentiert werden. Und so verwundert es nicht, dass diverse Inputs wie Kamera einfach integriert werden k\u00f6nnen. Es ist letztlich eine Art Jam-Prozess wie in den meisten dieser Tools &#8211; ein <a rel=\"noreferrer noopener\" href=\"https:\/\/cdm.link\/2021\/10\/hydra-is-spectacular-free-live-coding-for-visuals-in-browser-now-on-ios-too\/\" target=\"_blank\">Tryout-SelectionsProzess ohne vordefiniertes Ziel<\/a>. Wie in der Demoscene geht es um etwas m\u00f6glichst Interessantes.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Olivia Jack - Hydra, Live Coding Visuals in the Browser\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/cw7tPDrFIQg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Live Coding Music (Instruments)<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Music ist am Ende ja eigentlich wie Grafik auch immer Coding. So waren die ersten Musiker* auf 8Bit-Computer immer beides Coder* und Musiker*. Dies hat sich letztlich erst mit der Einf\u00fchrung der Tracker oder anders gesagt Synthies ver\u00e4ndert (<a rel=\"noreferrer noopener\" href=\"https:\/\/spielkult.hypotheses.org\/2977\" target=\"_blank\">siehe die Schweizer Game Design Szene und ihre Tools<\/a>). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig war sicherlich am Anfang dieser Entwicklung die Erfindung der DSP. Also der Digital Signalprozessoren, die dies Hardwaretechnisch \u00fcberhaupt m\u00f6glich machten in den 70\/80er Jahren und ihre Verbreitung in den 90er Jahren. <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Digital_signal_processor\" target=\"_blank\">Siehe dazu auch Wikipedia\/DSP<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese alte Zeit kehrt nun zur\u00fcck in den Live-Music-Coding-Ans\u00e4tzen. Dabei gibt es (meiner Ansicht nach) verschiedene Ans\u00e4tze bei der Unmenge von Tools, die es inzwischen gibt. Die einen orientieren sich eher an der Technik (<a rel=\"noreferrer noopener\" href=\"https:\/\/de.wikipedia.org\/wiki\/Max\/MSP\" target=\"_blank\">MaxMSP<\/a> 1980+ &gt; IRCAM und Co) hinter Music also an Oszillatoren (DSPs)  und Co und eine Richtung, die mehr von den Patterns und klassischer Musik her kommt (programmierbare Tracker).  Aber vielleicht ist dieser Unterschied letztlich marginal, da beide Richtungen am Ende Music\/Sound eher Zusammenwachsen als sich voneinander trennen. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beiden gemein ist allerdings nach wie vor, mit Algorithmen &#8222;Music&#8220; zu erstellen, das heisst also die &#8222;Music&#8220;\/Klangerlebenisse per Text zu erstellen. Hier stellt sich selbstverst\u00e4ndlich immer die Frage, was passt zu einem selber, wo arbeitet und wie arbeitet man lieber. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anders als man anfangs denkt, reichen viele der Programme bis in die 90er oder gar in die 80er Jahre hinein. Und es fehlt auch hier sicher die Aufarbeitung, der M\u00f6glichkeiten die etwa in Systemen wie Plato Systems stecken, die selbst schon<a href=\"http:\/\/www.gamelab.ch\/?p=7400\"> musikalische Programmiert<\/a> werden konnten. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Synthetischer Ansatz<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Wurzeln von synthetischem MusicDesign sind deswegen alt angefangen bei Max (1980), PureData (1996+) &#8211; wobei diese vor allem mit Patching\/FlowDiagammen arbeiten. Als Beispiel f\u00fcr den Coding-Ansatz gilt sicher unter anderen SuperCollider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&gt; SuperCollider 1996+<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ist ein Tool\/Instrument zur Generierung (Synthesis) von Sound\/Music durch Algorithmen. <a href=\"https:\/\/supercollider.github.io\">https:\/\/supercollider.github.io<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Beispiel wird hier vorgef\u00fchrt:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Composing Rhythm, Part 3\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/UXudOElfQLE?start=405&amp;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Und so sieht der Code auch dementsprechend aus. Es werden dabei keine vorhandenen H\u00fcllkurven benutzt sondern, der Sound wird direkt &#8222;programmiert&#8220;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ modulate a sine frequency and a noise amplitude with another sine\n\/\/ whose frequency depends on the horizontal mouse pointer position\n{\n        var x = SinOsc.ar(MouseX.kr(1, 100));\n        SinOsc.ar(300 * x + 800, 0, 0.1)\n        +\n        PinkNoise.ar(0.1 * x + 0.1)\n}.play;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Selbstverst\u00e4ndlich gibt es auch hier Ans\u00e4tze, die sich von Plattformen emanzipiert haben und nun auch auf einem Browser laufen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&gt; gibber (2014?)<\/strong><br>Ist ein WebBrowser-Tool. Der Fokus liegt hier nicht nur auf der M\u00f6glichkeit Sound\/Music zu generieren sondern auch das ganze visuell abzubilden. <br><a rel=\"noreferrer noopener\" href=\"https:\/\/gibber.cc\" target=\"_blank\">https:\/\/gibber.cc<\/a><\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"624\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.52.12-1024x624.png\" alt=\"\" data-id=\"7765\" class=\"wp-image-7765\" srcset=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.52.12-1024x624.png 1024w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.52.12-300x183.png 300w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.52.12-768x468.png 768w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.52.12-1536x936.png 1536w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.52.12-2048x1248.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In Aktion kommt dieses Tool dann auch einer  Medienkunst-Musik-Performance recht nahe. <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-vimeo wp-block-embed-vimeo wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Live coding graphics and audio in Gibber 2.0\" src=\"https:\/\/player.vimeo.com\/video\/80745664?dnt=1&amp;app_id=122963\" width=\"640\" height=\"400\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Weitere Tools in diesem Bereich sind etwa Sonic Pi. <a href=\"https:\/\/www.youtube.com\/watch?v=OLLwG_SN8oo&amp;t=2s\" target=\"_blank\" rel=\"noreferrer noopener\">Mehr dazu findet man hier &gt;<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pattern-Ansatz<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e4her am klassischen Musikverst\u00e4ndnis &#8211; zumindests meiner Ansicht nach &#8211; sind die nachfolgenden Ans\u00e4tze. Sie basieren weit mehr auf klassichen Notensystemen und kontrollierbaren algorithmischen Trackersystemen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&gt; CSound 1986+<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.45.22-1024x610.png\" alt=\"\" data-id=\"7764\" class=\"wp-image-7764\" srcset=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.45.22-1024x610.png 1024w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.45.22-300x179.png 300w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.45.22-768x458.png 768w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.45.22-1536x916.png 1536w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-12.45.22-2048x1221.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"180\" height=\"166\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.10.51.png\" alt=\"\" data-id=\"7779\" data-full-url=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.10.51.png\" data-link=\"http:\/\/www.gamelab.ch\/?attachment_id=7779\" class=\"wp-image-7779\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CSound entstand als eine Art Sprache f\u00fcr Music. Was auch auf der Startseite von <a rel=\"noreferrer noopener\" href=\"https:\/\/csound.com\" target=\"_blank\">https:\/\/csound.com<\/a> zu finden ist und auch auf Wikipedia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"Csound is a domain-specific computer programming language for audio programming. It is called Csound because it is written in C, as opposed to some of its predecessors.\" (Wikipedia)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das System kam anfangs ohne Frontend und hat erst nach und nach eine ganze Menge von Frontes bekommen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Codebeispiel sieht etwa so aus:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&lt;CsoundSynthesizer&gt;<\/strong>\n  \n  <strong>&lt;CsOptions&gt;<\/strong>\n    csound -W -d -o tone.wav\n  <strong>&lt;\/CsOptions&gt;<\/strong>\n  \n  <strong>&lt;CsInstruments&gt;<\/strong>\n    sr     = 96000           <em>; Sample rate.<\/em>\n    kr     = 9600            <em>; Control signal rate.<\/em>\n    ksmps  = 10              <em>; Samples per control signal.<\/em>\n    nchnls = 1               <em>; Number of output channels.<\/em>\n\n    <strong>instr<\/strong> 1\n    a1     oscil p4, p5, 1   <em>; Oscillator: p4 and p5 are the arguments from the score, 1 is the table number.<\/em>\n    out a1                   <em>; Output.<\/em>\n    <strong>endin<\/strong>\n  <strong>&lt;\/CsInstruments&gt;<\/strong>\n\n  <strong>&lt;CsScore&gt;<\/strong>\n    <strong>f<\/strong>1 0 8192 10 1           <em>; Table containing a sine wave. Built-in generator 10 produces a sum of sinusoids, here only one.<\/em>\n    <strong>i<\/strong>1 0 1 20000 1000        <em>; Play one second of one kHz at amplitude 20000.<\/em>\n    <strong>e<\/strong>\n  <strong>&lt;\/CsScore&gt;<\/strong>\n\n<strong>&lt;\/CsoundSynthesizer&gt;<\/strong><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Beispiel eines Frontends w\u00e4re: Cabbageaudio (<a href=\"https:\/\/cabbageaudio.com\/tutorials\/\">https:\/\/cabbageaudio.com\/tutorials\/<\/a>)<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"1. Cabbage source files\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/ucteIumYJv0?start=76&amp;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&gt; Tidal Cycles.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">stammt unter anderem von Alex McLean und der Claim hier: &#8222;Live coding music with Algorithmic patterns&#8220;. Hier ist der Fokus ebenfalls auf live music.  Es basiert auf SuperCollider zur Generierung des Sounds.<br><a href=\"https:\/\/tidalcycles.org\">https:\/\/tidalcycles.org<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Lil Data &amp; Rumblesan - TidalCycles Live Coding at London Algorave for TOPLAP15 - 15 Feb 2019\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/Db0QJo1eaoI?start=1576&amp;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei hat Tidal schon sehr viele Instrumente included und man generiert die Musik in Loops.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"806\" height=\"524\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-14.15.44.png\" alt=\"\" data-id=\"7771\" class=\"wp-image-7771\" srcset=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-14.15.44.png 806w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-14.15.44-300x195.png 300w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-08-um-14.15.44-768x499.png 768w\" sizes=\"auto, (max-width: 806px) 100vw, 806px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wobei fast alle MusikCodingTools auf minimale Abk\u00fcrzungen stehen und sich des \u00f6ftern mehr wie Perl also kryptisch lesen, als einfach verstehbar. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Einf\u00fchrung findet sich hier:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"[TidalClub] Tidal interaction - starting and stopping patterns\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/i9Rsn8-BAY4?start=60&amp;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&gt; ORCA<\/strong> (Update-AddOn nach einem Hint eines ORCA-Laser-Fans)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Orca hingegen geht in die Fl\u00e4che (2D) und nimmt die &#8222;Verfl\u00e4chung&#8220; von Trackern wieder auf, wie das etwa <a rel=\"noreferrer noopener\" href=\"https:\/\/isleoftune.com\" target=\"_blank\">Isle of Tune<\/a> vor Jahren vorgemacht hat und kombiniert sie mit der Cryptic der obigen Tools und DwarfFortress. Dabei ist ORCA ebenfalls ein live coding tool f\u00fcr music. Die Selbstbeschreibung lautet nicht ganz unseri\u00f6s: <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>&#8222;Orca is an&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Esoteric_programming_language\">esoteric programming language<\/a>&nbsp;designed to quickly create procedural sequencers&#8220;<\/p><\/blockquote>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Thai Tuning Meditation -- Live Coding with ORCA\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/hOEi7X88PeQ?start=102&amp;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Willkommen in der Welt die aus Operatoren besteht aus den 26 Buchstaben. Man findet das Projekt here: <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/hundredrabbits\/Orca\" target=\"_blank\">https:\/\/github.com\/hundredrabbits\/Orca<\/a> &#8211; auch die Entstehungsgeschichte ist wie bei vielen anderen Tools einen Click wert: <a href=\"https:\/\/100r.co\/site\/orca.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/100r.co\/site\/orca.html<\/a>. Wichtig bei der Installation &#8211; es braucht nat\u00fcrlich etwa einen MidiOutput-Umsetzer\/Instrument (Mac: Die Webversion lief auch in Chrome bei mir nicht (uninstallierbares midiWeb), besser lief die Installation der App mit <a href=\"https:\/\/github.com\/cawlin\/orca-simple-mac-setup\">https:\/\/github.com\/cawlin\/orca-simple-mac-setup<\/a> und <a rel=\"noreferrer noopener\" href=\"https:\/\/asb2m10.github.io\/dexed\/\" target=\"_blank\">https:\/\/asb2m10.github.io\/dexed\/<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hier ein einfaches Drum Beispiel: D triggert einen Takt, dann wird mit : eine Ton abgespielt. <\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"252\" height=\"208\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.10.54.png\" alt=\"\" data-id=\"7781\" class=\"wp-image-7781\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch rechnen l\u00e4sst sich hier. Etwa wie folgt: Addiere 2 + 4, addiere dazu wiederum 1 und dann sind wir beim Resultat. <\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"180\" height=\"166\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.10.51-1.png\" alt=\"\" data-id=\"7780\" class=\"wp-image-7780\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Aber auch Bewegung ist potentiell mit dabei. <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"ORCA Sequencer Intro (Experimental Livecoding!)\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/RaI_TuISSJE?start=893&amp;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Einf\u00fchrung bietet folgende Seite und diverse Youtube-Videos und so sieht ein klassicher Tracker in ORCA aus:<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-9 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"374\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.25.24-1024x374.png\" alt=\"\" data-id=\"7778\" class=\"wp-image-7778\" srcset=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.25.24-1024x374.png 1024w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.25.24-300x109.png 300w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.25.24-768x280.png 768w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.25.24-1536x560.png 1536w, https:\/\/www.gamelab.ch\/wp-content\/uploads\/2021\/11\/Bildschirmfoto-2021-11-09-um-20.25.24-2048x747.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/metasyn.github.io\/learn-orca\/\">https:\/\/metasyn.github.io\/learn-orca\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Die Instrumente und ihre je eigener Zugang<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Ganze entpuppt sich bei ORCA als interessanter Ansatz, zeigt aber auch auf &#8211; wie viele andere Live-Coding-Tools &#8211; dass es sich letztlich auch um eine Art Instrumente handelt f\u00fcr eine Performance. In diesen lassen sich gewisse Dinge schnell und einfach realisieren und andere Dinge sind unendlich kompliziert. Aber darin liegt ja der Witz dieser Instrumente. Sie zwingen zum Spiel mit den Instrumenten und lassen einem neue interessante Wege gehen. Und raus kommt, jeweils eine je eigener Stil bzw. Music oder Klangteppich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Communities<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht zu vergessen sind hier nat\u00fcrlich auch die verschiedenen Communities. Sowohl der Online-Communities rund um die Tools\/Instrumente, wie auch von Musik-Codern und deren Events. Es lohnt sich auf jeden Fall einen Live-Event auch mal selber zu besuchen, denn das &#8218;f\u00fchlt&#8216; sich dann eher wie eine Jam-Session an &#8211; Ausgang offen. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lange war Coding etwas, was Nerds irgendwie im Stillen gemacht haben. Der Grund daf\u00fcr ist nicht nur kulturell. Source-Code musste oft kompilliert werden, ein teilweise mehrere Minuten langer Prozess \u00fcber mehrere Schritte um eine Exe\/App zu erhalten, die nur so &hellip; <a href=\"https:\/\/www.gamelab.ch\/?p=7750\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7750","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/7750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7750"}],"version-history":[{"count":21,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/7750\/revisions"}],"predecessor-version":[{"id":7785,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/7750\/revisions\/7785"}],"wp:attachment":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}