history of xylph
Post on 07-Feb-2016
33 Views
Preview:
DESCRIPTION
TRANSCRIPT
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/•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 プロコンに出品「直ちに影響はない」大臣より賞をもらう
Xylph v2.0•2011 年 11 月完成▫言語文法をさらに強化。闇 ++▫初めてポリフォニックに対応
▫C# の性能の限界が露見▫Xylph からソースを引き継いだため
超スパゲッティ化
Xylph v3.0•2013 年 2 月ごろ▫概念としての構想が中心▫言語文法をさらにさらに強化。闇 #
▫コード内に初めて「 Compiler 」、リファレンスに「 MIDI 」の単語が出現
▫実際のコードは制作されず
Xylph v3.0
初代 ux ( マイクロシルフ )•2012 年 9 月ごろ▫Xylph の内部構成を再構成▫言語文法の見直し、中間表現の導入。闇 +++
▫FM 音源の実装によりそれまでの波形生成を劇的に変化
▫シンセサイザ部とシーケンサ部の一部分離▫MIDI 規格への合致▫動作性能重視のためモノフォニック
そして ux•2013 年 5 月▫言語処理系を廃止。闇からの解放
▫シンセサイザ部とシーケンサ部の完全分離▫MIDI や SMF の読み込みは外部ライブラリが担当
本体はシーケンサ部のみ実装▫比較的軽い動作▫シーケンサによってポリフォニック対応済
▫最初から MIDI 指向MIDI データがあれば演奏可能
ux•あえて C# で制作する▫非常に整頓されている言語▫使う側にとっては他に何も必要としない→ すぐに使い始められる
•パフォーマンスを出すために少なからず滅茶苦茶なことをしている▫特に FM 音源部分
•まだまだ更新中 ( 現在 v0.2-dev 開発中 )https://github.com/nanase/ux
uxuxux.Utils
FM 音源
step 音源
エンベロープ
コンプレッサ
SMF(MIDI ファイ
ル )
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
top related