--- title: Synths layout: ../../layouts/MainLayout.astro --- import { MiniRepl } from '../../docs/MiniRepl'; import { JsDoc } from '../../docs/JsDoc'; # Synths For now, [samples](/learn/samples) are the main way to play with Strudel. In the future, more powerful synthesis capabilities will be added. If in the meantime you want to dive deeper into audio synthesis with Tidal, you will need to [install SuperCollider and SuperDirt](https://tidalcycles.org/docs/). ## Playing synths with `s` We can change the sound, using the `s` function: >").s('sawtooth')`} /> Here, we are wrapping our notes inside `note` and set the sound using `s`, connected by a dot. Those functions are only 2 of many ways to alter the properties, or _params_ of a sound. The power of patterns allows us to sequence any _param_ independently: >").s("")`} /> Now we not only pattern the notes, but the sound as well! `sawtooth` `square` and `triangle` are the basic waveforms available in `s`. ## FM Synthesis ### fm ### fmh ### fmattack ### fmdecay ### fmsustain ### fmenv ## ZZFX The "Zuper Zmall Zound Zynth" [ZZFX](https://github.com/KilledByAPixel/ZzFX) is also integrated in strudel. Developed by [Frank Force](https://frankforce.com/), it is a synth and FX engine originally intended to be used for size coding games. It has 20 parameters in total, here is a snippet that uses all: ") // also supports freq .s("") .zrand(0) // randomization // zzfx envelope .attack(0.001) .decay(0.1) .sustain(.8) .release(.1) // special zzfx params .curve(1) // waveshape 1-3 .slide(0) // +/- pitch slide .deltaSlide(0) // +/- pitch slide (?) .noise(0) // make it dirty .zmod(0) // fm speed .zcrush(0) // bit crush 0 - 1 .zdelay(0) // simple delay .pitchJump(0) // +/- pitch change after pitchJumpTime .pitchJumpTime(0) // >0 time after pitchJump is applied .lfo(0) // >0 resets slide + pitchJump + sets tremolo speed .tremolo(0) // 0-1 lfo volume modulation amount //.duration(.2) // overwrite strudel event duration //.gain(1) // change volume .scope() // vizualise waveform (not zzfx related) `} /> Note that you can also combine zzfx with all the other audio fx (next chapter). Next up: [Audio Effects](/learn/effects)...