190 likes | 287 Views
History of Xylph. dendai sie ; Talk Live! 七瀬 2013/12/14. 自己紹介. 七瀬 朋奈 ( Tomona Nanase ) @ nanasetomona @ nanase_coder 長野県北部 に生息 信州大学工学部情報工学科 B4 ( 信大 JK) 来年度から同大大学院. 自己紹介. 使用言語 は 主に C# たまに PHP, JavaScript Minecraft の Bukkit プラグイン 制作で Java nanase_t http://nanase.cc /
E N D
History of Xylph dendaisie; Talk Live! 七瀬 2013/12/14
自己紹介 • 七瀬朋奈(TomonaNanase) • @nanasetomona@nanase_coder • 長野県北部に生息 • 信州大学工学部情報工学科B4(信大JK) • 来年度から同大大学院
自己紹介 • 使用言語は主に C# • たまに PHP, JavaScript • MinecraftのBukkitプラグイン制作で Java • nanase_t • http://nanase.cc/ • https://github.com/nanase
自己紹介 自宅から18kmほど。火山と硫黄で不毛地帯が続く
自己紹介 グンマー国境から車で約1時間、これが長野県の一般的な風景である
きっかけ • 音楽には興味があった • YMOからの強い影響 • B1の夏頃から C# で音が鳴らせないか格闘 • 2010年年末、C# から OpenAL を使って音を鳴らした • それよりも前からシンセサイザを作りたいと思っていた
Pyxy (ピクシー) • 2011年6月ごろ完成 • 完全プロトタイプ、超スパゲッティコード • 独自のバイナリフォーマット • シンセサイザ (波形合成) 部分とシーケンサ (自動演奏) 部分が同一機構 • モノフォニック (1パート1音) • ADSR, LFO • 現在に通じる基礎概念が完成していた • Xylphにソースは後継
Xylph (シルフ) • 2011年8月完成 • バイナリフォーマットを廃止 • テキストファイルで音色と楽曲を記述 • 一種の言語処理系を持っていた。闇の始まり • U-20プロコンに出品「直ちに影響はない」大臣より賞をもらう
Xylphv2.0 • 2011年11月完成 • 言語文法をさらに強化。闇++ • 初めてポリフォニックに対応 • C# の性能の限界が露見 • Xylphからソースを引き継いだため超スパゲッティ化
Xylphv3.0 • 2013年2月ごろ • 概念としての構想が中心 • 言語文法をさらにさらに強化。闇# • コード内に初めて「Compiler」、リファレンスに「MIDI」の単語が出現 • 実際のコードは制作されず
初代 ux (マイクロシルフ) • 2012年9月ごろ • Xylphの内部構成を再構成 • 言語文法の見直し、中間表現の導入。闇+++ • FM音源の実装によりそれまでの波形生成を劇的に変化 • シンセサイザ部とシーケンサ部の一部分離 • MIDI規格への合致 • 動作性能重視のためモノフォニック
そして ux • 2013年5月 • 言語処理系を廃止。闇からの解放 • シンセサイザ部とシーケンサ部の完全分離 • MIDIやSMFの読み込みは外部ライブラリが担当本体はシーケンサ部のみ実装 • 比較的軽い動作 • シーケンサによってポリフォニック対応済 • 最初からMIDI指向MIDIデータがあれば演奏可能
ux • あえて C# で制作する • 非常に整頓されている言語 • 使う側にとっては他に何も必要としない→ すぐに使い始められる • パフォーマンスを出すために少なからず滅茶苦茶なことをしている • 特に FM 音源部分 • まだまだ更新中 (現在 v0.2-dev 開発中)https://github.com/nanase/ux
ux ux.Utils ux 入力 送出 テキスト(ハンドル列の羅列) コンバータ エンベロープ FM音源 送出 SMF(MIDI ファイル) シーケンサ step音源 予約 送出 コンプレッサ MIDI-IN セレクタ 入力
ux++ • Raspberry Pi で動作する uxを作ろう • C++で移植実装 (闇の再来) • 言語習得のため • 動作速度を最優先 • 安定化した uxをベースに制作 • RasPi持ってる奴ならコンパイルの仕方くらいわかるだろう (利用者は上級者) • まだまだ制作途中https://github.com/nanase/uxpp
Xylphの未来 • 未定 • 音源定義XMLファイルが手書きだからエディタがほしい • Web上でMIDIを送ったらMP3で返してくれるようなサービス(それを共有できたら楽しそう) • もっと簡単に「軽い音楽」を楽しみたい • RubyとかPythonとかRubyとかやりたい • 速度を優先しない移植なら面白そう
OSS • このプレゼン資料と紹介したプログラムのソースコードhttp://nanase.cc/bin/hox • 最新の uxと uxppはGitHubを見てねhttps://github.com/nanase