タグ

dtmとhaskellに関するnodatのブックマーク (1)

  • Haskell Advent Calendar 13日目: シンセサイザーで理解するArrowプログラミング - モナドとわたしとコモナド

    Haskell Advent Calendar 13日目の記事です。 ごきげんよう。 今年も音楽の冬がやってまいりました。Haskellより音楽のほうに力を注いでいる気がするこの頃ですが、ふとこう思いました――「Haskellでシンセサイザーを作たらとても楽しいのではないか?」 シンセサイザーの仕組みは、たとえばFM・減算式ならこうなります: しかし、これが実装出来てもあまり嬉しくない、というのはわかっていただけるのではないでしょうか――そう、ただのシンセサイザーではなくどんなシンセサイザーでも作れるフレームワークが欲しいのです。 部品を作る部品 -Artery- まず、私は、部品同士を「配線」できるようにするため、arteryというパッケージを作りました。 ArteryはArrowとしてのインターフェイスを持っています。Arrowはごく簡単に表現すると、以下のようなクラスで表現されます(

    Haskell Advent Calendar 13日目: シンセサイザーで理解するArrowプログラミング - モナドとわたしとコモナド
  • 1