mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-11 21:58:37 +00:00
56 lines
1.2 KiB
Plaintext
56 lines
1.2 KiB
Plaintext
---
|
|
title: Hydra
|
|
layout: ../../layouts/MainLayout.astro
|
|
---
|
|
|
|
import { MiniRepl } from '../../docs/MiniRepl';
|
|
|
|
# Using Hydra inside Strudel
|
|
|
|
You can write [hydra](https://hydra.ojack.xyz/) code in strudel! All you have to do is to call `await initHydra()` at the top:
|
|
|
|
<MiniRepl
|
|
client:only="react"
|
|
tune={`await initHydra()
|
|
// licensed with CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/
|
|
// by Zach Krall
|
|
// http://zachkrall.online/
|
|
|
|
osc(10, 0.9, 300)
|
|
.color(0.9, 0.7, 0.8)
|
|
.diff(
|
|
osc(45, 0.3, 100)
|
|
.color(0.9, 0.9, 0.9)
|
|
.rotate(0.18)
|
|
.pixelate(12)
|
|
.kaleid()
|
|
)
|
|
.scrollX(10)
|
|
.colorama()
|
|
.luma()
|
|
.repeatX(4)
|
|
.repeatY(4)
|
|
.modulate(
|
|
osc(1, -0.9, 300)
|
|
)
|
|
.scale(2)
|
|
.out()
|
|
|
|
note("[a,c,e,<a4 ab4 g4 gb4>,b4]/4").s("sawtooth").vib(2)
|
|
.lpf(600).lpa(2).lpenv(6)
|
|
`}
|
|
/>
|
|
|
|
There is a special function `H` that allows you to use a pattern as an input to hydra:
|
|
|
|
<MiniRepl
|
|
client:only="react"
|
|
tune={`await initHydra()
|
|
let pattern = "3 4 5 [6 7]*2"
|
|
shape(H(pattern)).out(o0)
|
|
n(pattern).scale("A:minor").piano().room(1)
|
|
`}
|
|
/>
|
|
|
|
You might now be able to see this properly here: [open in REPL](/#YXdhaXQgaW5pdEh5ZHJhKCkKbGV0IHBhdHRlcm4gPSAiMyA0IDUgWzYgN10qMiIKc2hhcGUoSChwYXR0ZXJuKSkub3V0KG8wKQpuKHBhdHRlcm4pLnNjYWxlKCJBOm1pbm9yIikucGlhbm8oKS5yb29tKDEpIA%3D%3D)
|