Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Development of Infrastructural Sound Programming Language "mimium"

Development of Infrastructural Sound Programming Language "mimium"

情報処理推進機構(IPA)2019年度未踏IT人材発掘・育成事業 成果発表会(MITOU Demo Day) 2020年2月16日 「音楽プログラミング言語mimiumの開発」

発表動画/Presentation Video(In Japanese)
https://www.youtube.com/watch?v=J-K4IWDHgdo&list=PLi57U_f9scIImQqBmvCuXwJqAbpWnyW6u&index=19

Tomoya Matsuura

February 16, 2020
Tweet

More Decks by Tomoya Matsuura

Other Decks in Programming

Transcript

  1. minimal musical medium / a programming language as an Infrastructure

    for sound & music. ԻָϓϩάϥϛϯάݴޠlNJNJVNzͷ։ൃ ۝भେֶେֶӃܳज़޻ֶ෎দӜ஌໵ ະ౿*5ਓࡐൃ۷ɾҭ੒ࣄۀ੒Ռใࠂձ
  2. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ Իָϓϩάϥϛϯάݴޠ -BOHVBHFTGPS$PNQVUFS.VTJD 3PHFS#%BOOFOCFSH 'SPOUJFSTJO%JHJUBM)VNBOJUJFT /PW

    Ճච͸দӜ Overtone Sam Aaron (2011?) Sonic PI Sam Aaron (2012) TidalCycles Alex Mclean (2006~) Chronic Eli Blandt (2002) Kronos Versa Norilo (2015) LC Hiroki Nishino (2013) ixi lang Thor Magnusson (2012) Gibber Charlie Roberts (2014) FoxDot Jean-François Parent (2015) Extempore Andrew Sorensen (2012) impromptu Andrew Sorensen (2010) Common Lisp Music Bill Schottstaedt (1989) SuperCollider- Clients SOUL ROLI (2018)
  3. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ Իָϓϩάϥϛϯάݴޠͷ໨త w ָේσʔλΛίϯϐϡʔλ্Ͱޮ཰Α͘؅ཧ ϚʔΫΞοϓ 

    w ΞϧΰϦζϛοΫ࡞ۂ w Ի৭ͷૢ࡞ͦͷ΋ͷΛ࡞ۂͷཁૉʹ͢Δ w ݴޠࣗମ͕ಛఆͷදݱʹಛԽ w ϥΠϒύϑΥʔϚϯεͷΠϯλʔϑΣʔεͱͯ͠ ͍Ζ͍Ζ͋Δ͚Ͳɾɾɾ ྫϦζϜύλʔϯهड़ʹಛԽͨ͠5ZEBM$ZDMFT ˠԻָͷ৽͍͠ந৅Խͱڞ༗ͷํ๏ΛੜΈग़͢
  4. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ TFMGʹΑΔϑΟʔυόοΫͷදݱ phasor(freq) = +(freq/48000) ~

    %(1); • selfのメモリ確保や読み書きはコンパイラが⾃動でやってくれる fn phasor(freq:float){ return (self+freq/48000)%1 } NJNJVN 'BVTU “フィードバック接続演算⼦”(何やってるのか読みにくい) その関数が最後に出⼒した値を呼び出せる予約語
  5. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ؔ਺ͷ࣌ؒࢦఆ࣮ߦ NJNJVN &YUFNQPSF (define foo

    (lambda () (play-note (now) synth 60 80 *second*) (callback (+ (now) *second*) 'foo))) (foo) fn foo(pitch){ noteOut(pitch,80, 1) foo(pitch)@(now+20000) } foo(pitch)@0
  6. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ػೳൺֱ .BY 4VQFS$PMMJEFS &YUFNQPSF 'BVTU

    $IVD, NJNJVN ৴߸ ଎͍ ॲཧ ˓ .BY ˓ IPHFBS ˓ YUMBOH ˓ ˓ ˓ ϑϧεΫϥον ৴߸ॲཧ ˚ (FO º ˓ ˓ ˚ ֦ு ˓ ੍ޚ ஗͍ ॲཧ ˓ .41 ˓ IPHFLS ˓ 4DIFNF º ˓ ˓
  7. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ϥϯλΠϜ ϞδϡϥʔΞʔΩςΫνϟ ιʔείʔυ ந৅ߏจ໦ தؒදݱ

    LLVM IR ΦʔσΟΦυϥΠό 3U"VEJP λεΫϦετ [{100ɿ&fn1},
 {200:&fn2}…] --7.࣮ߦΤϯδϯ ίϯύΠϥ λεΫΩϡʔ [{100:&fn1},
 {200:&fn2}…] εέδϡʔϥʔ UJDL5JNF ETQ BEE5BTL FYFDVUF5BTL
  8. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ϥϯλΠϜ ιʔείʔυ ந৅ߏจ໦ தؒදݱ LLVM

    IR ΦʔσΟΦυϥΠό 3U"VEJP λεΫϦετ [{100ɿ&fn1},
 {200:&fn2}…] --7.࣮ߦΤϯδϯ ίϯύΠϥ εέδϡʔϥʔ UJDL5JNF ETQ BEE5BTL FYFDVUF5BTL NZETQMM ෼཭ͯ͠ӡ༻ ϞδϡϥʔΞʔΩςΫνϟ λεΫΩϡʔ [{100:&fn1},
 {200:&fn2}…]
  9. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ϥϯλΠϜ ιʔείʔυ ந৅ߏจ໦ தؒදݱ LLVM

    IR ΦʔσΟΦυϥΠό 3U"VEJP λεΫϦετ [{100ɿ&fn1},
 {200:&fn2}…] ίϯύΠϥ εέδϡʔϥʔ UJDL5JNF ETQ BEE5BTL FYFDVUF5BTL ωΠςΟϒόΠφϦ ωΠςΟϒόΠφϦ --7.ඇґଘʢ௒ܰྔʣ ϞδϡϥʔΞʔΩςΫνϟ λεΫΩϡʔ [{100:&fn1},
 {200:&fn2}…] 'VUVSF8PSL
  10. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ϥϯλΠϜ ιʔείʔυ ந৅ߏจ໦ தؒදݱ LLVM

    IR ΦʔσΟΦυϥΠό -JC4OE'JMF λεΫϦετ [{100ɿ&fn1},
 {200:&fn2}…] --7.࣮ߦΤϯδϯ ίϯύΠϥ εέδϡʔϥʔ UJDL5JNF ETQ BEE5BTL FYFDVUF5BTL ϑΝΠϧੜ੒ಛԽ ϞδϡϥʔΞʔΩςΫνϟ λεΫΩϡʔ [{100:&fn1},
 {200:&fn2}…] 'VUVSF8PSL
  11. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ΦʔσΟΦυϥΠό -JC4OE'JMF ϥϯλΠϜ ιʔείʔυ ந৅ߏจ໦

    தؒදݱ LLVM IR λεΫϦετ [{100ɿ&fn1},
 {200:&fn2}…] ίϯύΠϥ εέδϡʔϥʔ UJDL5JNF ETQ BEE5BTL FYFDVUF5BTL 745ϓϥάΠϯ ωΠςΟϒόΠφϦ ωΠςΟϒόΠφϦ ϞδϡϥʔΞʔΩςΫνϟ λεΫΩϡʔ [{100:&fn1},
 {200:&fn2}…] 'VUVSF8PSL
  12. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ϥϯλΠϜ ιʔείʔυ ந৅ߏจ໦ தؒදݱ LLVM

    IR λεΫϦετ [{100ɿ&fn1},
 {200:&fn2}…] --7.࣮ߦΤϯδϯ ίϯύΠϥ εέδϡʔϥʔ UJDL5JNF ETQ BEE5BTL FYFDVUF5BTL 745ϓϥάΠϯ ϞδϡϥʔΞʔΩςΫνϟ λεΫΩϡʔ [{100:&fn1},
 {200:&fn2}…] 'VUVSF8PSL
  13. minimal musical medium / a programming language as an Infrastructure

    for sound & music. Πϯϑϥͱͯ͠ͷԻָϓϩάϥϛϯάݴޠ
  14. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ 7FSTJPO3FMFBTF https://github.com/mimium-org/mimium • 対応OS:macOS(数ヶ⽉以内にWin,Linux対応予定) •

    ライセンス:Mozilla Public License 2.0 • VSCode⽤シンタックスハイライトもあります • コントリビューター、スポンサー募集中!
  15. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ༧ఆ ഑ྻߏ଄ମ   

    Ϟδϡʔϧػೳ Ϋϩε ϓϥοτϑΥʔϜ WϦϦʔε -BOHVBHF4FSWFS *%& ࣮૷ ύοέʔδϚωʔδϟ։ൃ ૒ํ޲ϓϩάϥϛϯά ϏδϡΞϧΤσΟλʔ ϚϧνεϨοσΟϯά ίʔυ Իָ ڞ༗αʔϏε ඪ४ϥΠϒϥϦ੔උ
  16. minimal musical medium / a programming language as an Infrastructure

    for sound & music. ԻָϓϩάϥϛϯάݴޠlNJNJVNzͷ։ൃ ۝भେֶେֶӃܳज़޻ֶ෎দӜ஌໵ɹɹNF!NBUTVVSBUPNPZBDPN ະ౿*5ਓࡐൃ۷ɾҭ੒ࣄۀ੒Ռใࠂձ
  17. ·ͱΊ ໨ࢦ͢ະདྷ ػೳ·ͱΊ σϞػೳղઆ എܠ ݴޠ࢓༷ w ύϥμΠϜɿखଓ͖ܕʴ'31  w

    ੩తܕ෇͚ɺ)JOEMFZ.JMOFS୯૬ܕਪ࿦ όάͬͯΔ  w ։ൃݴޠɿ$   w ґଘϥΠϒϥϦ#JTPO 'MFY --7.