Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TidalCycles - Haskell meets Music
Search
cannorin
October 04, 2019
Technology
0
1.3k
TidalCycles - Haskell meets Music
cannorin
October 04, 2019
Tweet
Share
More Decks by cannorin
See All by cannorin
AltJS を作るなら型変換を入れた方がいい
cannorin
0
1k
A Journey to Type-safe Vectors in F#
cannorin
6
11k
Audio Experience is greatly improved in VR: A Worked Example
cannorin
0
1.4k
Making Indian Curries - at Home!
cannorin
2
1.3k
On Space Filling Curves: Its Beauty and Applications
cannorin
0
190
A brief introduction to type inference
cannorin
4
2.1k
Other Decks in Technology
See All in Technology
エンジニアのドメイン知識獲得コストを低減するアプリケーションデザイン
ryo_nagata_
3
160
新入社員 オンボーディング改善プロジェクト - シンプルな仕組みで変革のきっかけを
enpipi
0
480
ゼロからはじめる生成AI〜AWS認定とハンズオンで学ぶ初心者の道〜
kenichinakamura
0
140
本番のトラフィック量でHudiを検証して見えてきた課題
joker1007
2
270
次は君だ。~Japan AWS Jr. Champions 受賞までの奇跡~
fukuchiiinu
0
120
さくっと実践!Postmanを活用した高品質で持続可能なAPI管理
yokawasa
5
360
マルチテナントのサービスインフラに大きなテナントを受け入れるまで
7474
0
790
0x5F3759DF
ykozw
0
340
JAWS-UG 事務局 の「これまで」から みんなで「ここから」を考えよう
miu_crescent
2
140
SOLID - Architecture and Architectural Decisions - Devfest Goa 2024
rivuchk
0
160
RAG: from dumb implementation to serious results
glaforge
0
670
実は仲良し?Amplify Gen2と生成AI
mkdev10
0
150
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Adopting Sorbet at Scale
ufuk
73
9k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Designing for Performance
lara
604
68k
BBQ
matthewcrist
85
9.2k
Designing for humans not robots
tammielis
249
25k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
Testing 201, or: Great Expectations
jmmastey
38
7k
Faster Mobile Websites
deanohume
304
30k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
3
340
Transcript
VRC-LT #5 TidalCycles - Haskell meets Music cannorin (@cannorin_vrc)
2 誰 Study: 数理論理学, プログラム言語の理論 Job: F# プログラマ in VRC:
VOLT Enthusiast, VRC-LT Speaker (#2~)
3 世は大ライブコーディング時代 ライブコーディング a) 勉強会やプレゼンの一環として,その場でプログラム を書きながら解説などを行うこと. b) シェーダ言語や音響合成言語をリアルタイムで書いて パフォーマンスを行うこと.
4 世は大ライブコーディング時代 • 即興性・ライブ性が強く,作品そのものだけでなくそ れが作られる過程も伝える/楽しむことができる • アーティストのプログラミング学習やプログラマの自己 表現の手段となりうる → VRChat
でやるのにとても向いているのでは????
5 ライブコーディングでキックを鳴らしたい • フレンチコアという音楽ジャンルが大好き • 都合のよいことにプログラミングができる → ライブコーディングでフレンチコアしたい! → でもどうやって……?
6
7 TidalCycles との出会い
8 TidalCycles とは • 今最もアツい音響生成用ライブコーディング環境 • Haskell 上の DSL で実装されている(!)
• エディタから GHCi にコードを送ると TidalCycles が 受 け取り音を鳴らす • バックエンドは SuperCollider (別途インストール)
9 コード例1 -- トラックd1: フレンチコアキック d1 $ sound "909" --
TR-909 のキックを鳴らす # up (-2.5) -- ピッチを下げる # shape 0.92 -- ディストーションでぶっとくする # lpf 5000 -- 5000Hz 以上の音を切る
10 コード例2 -- トラックd2: オフビートのベース d2 $ n “[ ~
c ]*2” -- オフビートに鳴らす (~は休符) # sound "supersaw" -- ノコギリ波を鳴らす # crush 4 -- ビットクラッシャーにかける # up (-30) -- ピッチめちゃくちゃ下げる # shape 0.6 -- ぶっとくする # gain 1.15 -- ゲインを調整 # resonance 0 -- ローパスフィルタのクセをなくす # cut 2 -- 音が被らないようにする (2はID)
11 実演タイム?