1--- 2title: Intro 3layout: ../../../layouts/MainLayout.astro 4--- 5 6import { MiniRepl } from '../../../docs/MiniRepl'; 7 8# Willkommen 9 10<div className="w-32 animate-pulse md:float-right ml-8"></div> 11 12Willkommen zum Strudel Workshop! 13Du hast den richtigen Ort gefunden wenn du lernen möchtest wie man mit Code Musik macht. 14 15## Was ist Strudel 16 17Mit Strudel kann man dynamische Musikstücke in Echtzeit schreiben. 18Es ist eine in JavaScript entwickelte Version von [Tidal Cycles](https://tidalcycles.org/) und wurde 2022 von Alex McLean und Felix Roos initiiert. 19Tidal Cycles, auch bekannt unter dem Namen Tidal, ist eine Computersprache für algorithmische Muster. 20Obwohl sie meistens für die Erzeugung von Musik eingesetzt wird, kann sie für jede Art von Tätigkeit eingesetzt werden, 21in der Muster eine Rolle spielen. 22 23Du brauchst keine Erfahrung in JavaScript oder Tidal Cycles um mit Strudel Musik zu machen. 24Dieser interaktive Workshop leitet dich spielerisch durch die Grundlagen von Strudel. 25Der beste Ort um mit Strudel Musik zu machen ist das [Strudel REPL](https://strudel.cc/). 26 27## Was kann man mit Strudel machen? 28 29- Musik Live Coding: In Echtzeit mit Code Musik machen 30- Algorithmische Komposition: Schreibe Musik mithilfe Tidals einzigartiger Sprache für Muster 31- Lehren: Strudel eignet sich gut für Lehrende, da keine Installation nötig ist und die Sprache kein theoretisches Vorwissen erfordert. 32- Mit anderen Musik-Anwendungen kombinieren: Per MIDI oder OSC kann Strudel als flexibler Sequencer mit jedem Setup kombiniert werden 33 34## Beispiel 35 36Hier ist ein Beispiel wie Strudel klingen kann: 37 38<MiniRepl 39 client:idle 40 tune={`stack( 41 // drums 42 s("bd,[~ <sd!3 sd(3,4,2)>],hh*8") 43 .speed(perlin.range(.8,.9)), // random sample speed variation 44 // bassline 45 "<a1 b1\*2 a1(3,8) e2>" 46 .off(1/8,x=>x.add(12).degradeBy(.5)) // random octave jumps 47 .add(perlin.range(0,.5)) // random pitch variation 48 .superimpose(add(.05)) // add second, slightly detuned voice 49 .note() // wrap in "note" 50 .decay(.15).sustain(0) // make each note of equal length 51 .s('sawtooth') // waveform 52 .gain(.4) // turn down 53 .cutoff(sine.slow(7).range(300,5000)), // automate cutoff 54 // chords 55 "<Am7!3 <Em7 E7b13 Em7 Ebm7b5>>".voicings('lefthand') 56 .superimpose(x=>x.add(.04)) // add second, slightly detuned voice 57 .add(perlin.range(0,.5)) // random pitch variation 58 .note() // wrap in "note" 59 .s('sawtooth') // waveform 60 .gain(.16) // turn down 61 .cutoff(500) // fixed cutoff 62 .attack(1) // slowly fade in 63) 64.slow(3/2)`} 65/> 66 67Mehr Beispiele gibt es [hier](/examples). 68 69Du kannst auch im [Strudel REPL](https://strudel.cc/) auf `shuffle` klicken um ein zufälliges Beispiel zu hören. 70 71## Workshop 72 73Der beste Weg um Strudel zu lernen ist der nun folgende Workshop. 74Wenn du bereit bist, lass uns loslegen mit deinen [ersten Sounds](/de/workshop/first-sounds).