Skip to content

Commit

Permalink
add polyphonic midi synth example
Browse files Browse the repository at this point in the history
  • Loading branch information
felixroos committed Jun 15, 2024
1 parent b8e3ac8 commit beea5bf
Showing 1 changed file with 2 additions and 14 deletions.
16 changes: 2 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ compilation strategy / graph format based on <https://noisecraft.app/>
- [acid machine + drum thing](https://felixroos.github.io/kabelsalat/#Ly8gbWF4aW1lY2IgLSB0aGUgbGl0dGxlIGFjaWQgbWFjaGluZSB0aGF0IGNvdWxkCi8vICsgbWF4aW1lY2IgZHJ1bSBtYWNoaW5lCi8vIGNvZGUgYnkgZnJvb3MKLy8gbm9pc2VjcmFmdCAtPiBrYWJlbHNhbGF0Ci8vIGh0dHBzOi8vbm9pc2VjcmFmdC5hcHAvNDcKCmxldCBraWNrID0gZ2F0ZSA9PiBnYXRlLmFkc3IoMCwuMTEsMCwuMTEpCiAgLmFwcGx5KGVudiA9PiBlbnYubXVsKGVudikKICAgIC5tdWwoMTU4KSAvLyBmcmVxdWVuY3kgcmFuZ2UKICAgIC5zaW5lKGVudikKICAgIC5kaXN0b3J0KC44NSkKICApCgpsZXQgc25hcmUgPSBnYXRlID0+IGdhdGUuYWRzcigwLC4xMSwuMSwuMSkKICAubXVsKG5vaXNlKCkpLmZpbHRlciguNzgsLjI5KQoKbGV0IGMgPSBjbG9jaygxNjApCmxldCBub3RlcyA9IGMuY2xvY2tkaXYoOCkKLnNlcSgyNywyNywzOSw1MSwwLDAsMjcsMjcsNDIsMjcsNDAsMCwzMSwzMSw1Niw1MSkKCmxldCBlbnYgPSBub3Rlcy5hZHNyKDAsLjMsLjM0LC41OSkKCm5vdGVzCi5hcHBseTIoaG9sZCkgLy8gaG9sZCBmcmVxIGFib3ZlIDBzCi5taWRpbm90ZSgpCi5zbGlkZSgKICBzaW5lKC4yMSkucmFuZ2UoMCwxKQopCi5wdWxzZSguNDgpCi5tdWwoZW52KQouZmlsdGVyKAogIGVudi5tdWwoc2luZSguMDkpLnJhbmdlKC41NSwxKSksIC8vIGN1dG9mZgogIHNpbmUoLjIyKS5yYW5nZSgwLC4zNSkgLy8gcmVzCikKLmRpc3RvcnQoCiAgc2luZSguMTgpLnJhbmdlKDAsLjg1KQopCi5tdWwoMC41KQoubXVsKGMuY2xvY2tkaXYoMTYpLnNlcSguMjUsMSkpIC8vIHNpZGVjaGFpbgouYWRkKGMuY2xvY2tkaXYoMzIpLnNlcSgxLDEpLmFwcGx5KGtpY2spKQouYWRkKGMuY2xvY2tkaXYoMzIpLnNlcSgwLDEpLmFwcGx5KHNuYXJlKSkKLm91dCgpCg==)
- [plucky feedback delay](https://felixroos.github.io/kabelsalat/#Ly8gbGV0J3MgY3JlYXRlIHNvbWUgbm90ZXMKbGV0IG5vdGUgPSBjbG9jaygxNTApIC8vIGNsb2NrIGF0IDE1MGJwbQouY2xvY2tkaXYoMzIpIC8vIGRpdmlkZSBjbG9jayBieSAzMgouc2VxKDY0LDAsMCw2NywwLDAsNjIsMCkgLy8gdXNlIGNsb2NrIGZvciBzZXF1ZW5jZQoKLy8gdXNlIHRoZSBub3RlcyB0byB0cmlnZ2VyIGFuIGVudmVsb3BlCmxldCBlbnYgPSBub3RlCi5hZHNyKAogIC4wMSwgLy8gYXR0YWNrCiAgc2luZSguMSkucmFuZ2UoLjEsIC4zKSwgLy8gbW9kdWxhdGVkIGRlY2F5CiAgLjUgLy8gc3VzdGFpbgopCi5tdWwoLjc1KSAvLyBldmVsb3BlIGFtb3VudAoKbm90ZQouaG9sZChub3RlKSAvLyBob2xkIG5vdGVzIGFib3ZlIHplcm9lcwoubWlkaW5vdGUoKSAvLyBjb252ZXJ0IG1pZGkgbnVtYmVycyB0byBmcmVxCi5wdWxzZSguMikgLy8gcHVsc2Ugd2F2ZSB3aXRoIC4yIHdpZHRoCi5maWx0ZXIoCiAgc2luZSguMSkucmFuZ2UoLjcsLjgpLm11bChlbnYpLCAvLyBtb2R1bGF0ZWQgY3V0b2ZmCiAgZW52Lm11bCguNSkgLy8gcmVzb25hbmNlIHdpdGggZW52ZWxvcGUKKQoubXVsKGVudikgLy8gYW1wbGl0dWRlIGVudmVsb3BlCi5hZGQoCiAgLy8gZmVlZGJhY2sgZGVsYXkKICB4PT54LmRlbGF5KHNpbmUoLjAzKS5yYW5nZSguMSwuNSkpIC8vIG1vZHVsYXRlZCBkZWxheSB0aW1lCiAgICAgIC5tdWwoLjkpIC8vIGZlZWRiYWNrIGFtb3VudAopCi5tdWwoLjUpIC8vIG1hc3RlciBsZXZlbAoub3V0KCkgLy8gc2VuZCB0byBvdXRwdXQ=)
- [drone](https://felixroos.github.io/kabelsalat/#Ly8gU3luYyBhbmQgVW5zeW5jIE15IEhhcm1vbmljcyAob3NjIG9ubHkpCi8vIGh0dHBzOi8vbm9pc2VjcmFmdC5hcHAvMTYxNQoKbGV0IGZyZXEgPSBwdWxzZSguMDIpLnNlcSg4MCkuc2xpZGUoMTAwKQpsZXQgb3NjID0gcHVsc2UoZnJlcSkKCmFkZCgKIHNpbmUoMC4wMSkucmFuZ2UoMSwxMikubXVsKGZyZXEpLnNpbmUob3NjKSwKIHNpbmUoMC4wMSkucmFuZ2UoMSwxMikubXVsKGZyZXEpLnNpbmUob3NjKSwKIHNpbmUoMC4wMikucmFuZ2UoMSwxMikubXVsKGZyZXEpLnNpbmUob3NjKSwKKQouc2xpZGUoLjAxKQouYWRkKHg9PnguZGVsYXkoLjI1KS5tdWwoLjYpKQoub3V0KCk=)
- [midi bass](https://felixroos.github.io/kabelsalat/#CmxldCBlbnYgPSBtaWRpZ2F0ZSgpLmFkc3IoLjAxLC4yLC43NSkubXVsKC43NSkKCm1pZGlmcmVxKCkuZGl2KDQpCi8vZnJlcS5hcHBseTIoaG9sZCkubWlkaW5vdGUoKQouc2F3KC40KQouZmlsdGVyKAogIHNpbmUoLjEpLnJhbmdlKC43LC44KS5tdWwoZW52KSwgCiAgZW52LmRpdigyKQopCi8vLmRpc3RvcnQoc2luZSguMDIpLnJhbmdlKDAsLjEpKS5tdWwoLjUpCi5tdWwoZW52KQovLy5hZGQoeD0+eC5kZWxheShzaW5lKC4wMykucmFuZ2UoLjEsLjUpKS5tdWwoLjkpKQoubXVsKC41KQoub3V0KCk=)
- [monophonic midi synth](https://felixroos.github.io/kabelsalat/#CmxldCBlbnYgPSBtaWRpZ2F0ZSgpLmFkc3IoLjAxLC4yLC43NSkubXVsKC43NSkKCm1pZGlmcmVxKCkuZGl2KDQpCi8vZnJlcS5hcHBseTIoaG9sZCkubWlkaW5vdGUoKQouc2F3KC40KQouZmlsdGVyKAogIHNpbmUoLjEpLnJhbmdlKC43LC44KS5tdWwoZW52KSwgCiAgZW52LmRpdigyKQopCi8vLmRpc3RvcnQoc2luZSguMDIpLnJhbmdlKDAsLjEpKS5tdWwoLjUpCi5tdWwoZW52KQovLy5hZGQoeD0+eC5kZWxheShzaW5lKC4wMykucmFuZ2UoLjEsLjUpKS5tdWwoLjkpKQoubXVsKC41KQoub3V0KCk=)
- [polyphonic midi synth](https://felixroos.github.io/kabelsalat/#bGV0IGVudiA9IG1pZGlnYXRlKCkuZm9yayg4KS5hZHNyKDAuMDEsIDAuNCwgMC43LCAwLjEpOwoKc2F3KG1pZGlmcmVxKCkuZm9yayg4KSkgLy8gOCBzYXcgdm9pY2VzCiAgLm11bChlbnYpIC8vIGFtcCBlbnZlbG9wZQogIC5maWx0ZXIoZW52LnJhbmdlKDAuMiwgMC44KS5tdWwoZW52KSkgLy8gZmlsdGVyIGVudmVsb3BlCiAgLm1peCgpIC8vIG1peCB0b2dldGhlcgogIC5hZGQoKHgpID0+IHguZGVsYXkoMC4yKS5tdWwoMC40KSkgLy8gZmVlZGJhY2sgZGVsYXkKICAub3V0KCk7)
- [fm with feedback](https://felixroos.github.io/kabelsalat/#Ly8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vd3d3LmNoYXJsaWUtcm9iZXJ0cy5jb20vZ2VuaXNoL3R1dG9yaWFsL2luZGV4Lmh0bWwjZm1tRmVlZGJhY2sKTm9kZS5wcm90b3R5cGUuZm0gPSBmdW5jdGlvbiAoYzJtID0gMSwgaW5kZXggPSAzLCBmYiA9IDAuMDUpIHsKICBsZXQgY2FycmllciwKICAgIGZyZXEgPSB0aGlzOwogIG11bCgoZmVlZGJhY2spID0+IHsKICAgIGNvbnN0IG1vZHVsYXRvciA9IGZlZWRiYWNrCiAgICAgIC5tdWwoZmIpCiAgICAgIC5hZGQobXVsKGZyZXEsIGMybSkpCiAgICAgIC5zaW5lKCkKICAgICAgLm11bChmcmVxLCBpbmRleCkKICAgICAgLmFkZChmZWVkYmFjaykKICAgICAgLm11bCgwLjUpOwogICAgY29uc3QgZW52ID0gZnJlcS5hZHNyKDAuMDAxLCAwLjUsIDAsIDApLmFwcGx5MihtdWwpLmFwcGx5MihtdWwpOwogICAgY2FycmllciA9IG1vZHVsYXRvci5hZGQoZnJlcSkuc2luZSgpLm11bChlbnYpOwogICAgcmV0dXJuIG1vZHVsYXRvci5tdWwoZW52KTsKICB9KTsKICByZXR1cm4gY2FycmllcjsKfTsKCnB1bHNlKDQpCiAgLnJhbmdlKDEsIDApCiAgLnNlcSg1NSwgMTEwLCAxNjUsIDIyMCwgMjc1LCAzMzAsIDM4NSwgNDQwKQogIC5mbSgxLCAzLCAwLjA1KQogIC5vdXQoKTsK)
- [equalizer](https://felixroos.github.io/kabelsalat/#Tm9kZS5wcm90b3R5cGUuYmFuZCA9IGZ1bmN0aW9uIChtaW4sbWF4KSB7CiAgcmV0dXJuIHRoaXMuZmlsdGVyKG1heCkuc3ViKHRoaXMuZmlsdGVyKG1pbikpCn0KCk5vZGUucHJvdG90eXBlLmVxID0gZnVuY3Rpb24gKGxvdz0xLG1pZD0xLGhpPTEpIHsKICByZXR1cm4gYWRkKAogICAgdGhpcy5iYW5kKC43NCwxKS5tdWwoaGkpLAogICAgdGhpcy5iYW5kKC4zMSwuODcpLm11bChtaWQpLAogICAgdGhpcy5iYW5kKDAsLjMyKS5tdWwobG93KQogICkKfQoKc2F3KDU1KS5lcSgKIHNpbmUoLjUpLnJhbmdlKDAsMSksCiBzaW5lKDEuMzEpLnJhbmdlKDAsMSksCiBzaW5lKDIuMTcpLnJhbmdlKDAsMSkKKS5vdXQoKQ==)
- [insect buzzing by luiiuuuiiiii](https://felixroos.github.io/kabelsalat/#c2luZSgxMjExMSkKLmZvbGQoc2luZSguNTEpLnJhbmdlKDAsIC4zKSkKLm11bCgKICBzaW5lKAogICAgbig3KS5tdWwoCiAgICAgIHNpbmUoMC41KS5yYW5nZSgxLDMpCiAgICApCiAgKS5yYW5nZSguMCwuMSkKKQoub3V0KCk=)
Expand Down Expand Up @@ -118,19 +119,6 @@ sine(220)
noise().range(55, 880).hold(pulse(2)).sine().out();
```

### midi

```js
let env = midigate().fork(8).adsr(0.01, 0.4, 0.5, 0.1);

saw(midifreq().fork(8)) // 8 saw voices
.mul(env) // amp envelope
.filter(env.range(0.2, 0.8).mul(env)) // filter envelope
.mix() // mix together
.add((x) => x.delay(0.2).mul(0.4)) // feedback delay
.out();
```

## feedback

to get feedback, simply pass a function instead of a node. The input of the function is the return value of its previous iteration! The snake bites its tail:
Expand Down

0 comments on commit beea5bf

Please sign in to comment.