楽器作りは難しいすな
- カテゴリ:パソコン/インターネット
- 2012/01/14 22:06:25
テルミンもどきと言えども、一応楽器を目指してますです。ただの音を出すプログラムとしてなら、もうまったく問題ないんだが、とても楽器とは言えん。作って試してみる度に仕様が追加されていくよ。orz
Midiドライバーと比べてみると、
・自分のは単なる音の発生器
・Midiは楽音の発生器
なのが、よく判る。
ムーグ先生も始めてシンセサイザー作ったときに、あらあらと思ったんかな~。所謂ADSRは大切で、音を止める時はプツッと止めてはいけないし。ピッチベンドもきちんと出来てるんだけど、マウスを速く動かすと、どうしても処理がコマ落ちするのは避けられず、ポルタメントも付けないといけないのが納得行った。
あ~、もう大変だな~。ここまで踏み込むつもりはさらさら無かったんだけども、どうしたものかな~。
出力する音も、UTAU使いとして、最終的に声も視野に入ってるので、撤退するのも釈然としない。ついに学生時代に落ちこぼれた、フーリエ変換にまで手を出す破目になったし。数学嫌いだ。(T_T)
半年くらい掛ける感じで、のんびり行きたいけど、少しやってないとプログラム忘れてしまうし。ペース配分が難しい。
色んな音が出せる方が良いので、ちょっと波形作成プログラムを作ってみました。色々としょぼいけど、12倍音までで表せる総ての音が作成可能なプログラムですん。稼動確認はWindowsXP,7。Vistaでも動くか判るとうれしいです。別シートの基本波形からデータをコピペすれば、基本波形も簡単に作れます。
http://www1.axfc.net/uploader/Sc/so/309572.xls
pass: en
ところで、こんなちまちまと靴の上から足を掻くようなんじゃなくて、もっとフリーダムに波形を弄りたいならこちらをどうぞ。
●効果音エディタ_D
http://www.geocities.jp/hirogamesoft/
左メニューから選んでDLしてくださいまし。
あんまりカリカリに融通利かずに作ってあるのもどうかとは思うのですが、プアな環境なのにどこの「自作さん」用のコードだよっていう無駄にメモリ要求したり、工夫も無くCPUパワーもって言ったりする組み込み機器ってどうなんだろって思ったり。それも全体をみて作られていればいいんですが、いくつかの機能のために複数のプラットホームが入ってるとか、「移植するとかって考えないの?」とか思ってしまうw素直が一番とはいっても、少しは頭使えよとかw
まぁ、「製品」というより、「おもちゃ」とか、「鑑賞」するには、トリッキーなくらいの設計のほうが興味深く面白いってことで。さすがに世間の風潮が間違ってるとか美しくないなんて、工数とか考えたらいえませんがねw
なんだかんだで、ネイティヴなコードを吐き出すコードですら、コンパイラが頑張ってくれるので、それなりの移植性が保ててるわけで、これはこれで、起こした人凄いなって思うのですけどね。これもまぁ「それなり」って辺りが鬼門だったりするんですが。
Windowsの時とおなじで、ARMか、x86辺りに収束しちゃうのもなんとも面白くないのですよねぇ。柵がない筈の環境なのに、MBRパーティションテーブルの呪いとかw
ただ、「言語」のあり方として、「ぼんやり」つぶやいた言葉が「そこそこ正しく」伝わるのって、なんかねw
どんな特徴的な命令セットがあっても最大公約数みたいなコードに落ち着いて、且つ、特性が生かせてないのに埠頭に「遅いなぁ」って馬鹿にされちゃうのもかわいそうだなぁとかね。
「やってくれれば誰でもいいや」って言葉だけの世界ってあんまり面白くない。
小さな会社でも山のように色んなPCがあったりして、どれでも動くのを作るのは大変だ。携帯電話用のアプリほどでは無いにしても、Win2K~7まで素で対応出来てるのはちょっとしたもんだと思うぞ。使い物になるライブラリを見つけられるのも、腕のうちだわよ。と思う。
同じキーをたたいてることが多いですし。
標準出力とかにぽいっと投げたら動くよりは、初期化して、レジスタ制御して…ってほうが、「誰に向かって物言ってるか」が明確で好きかもしれないです。
勝手に最適化の名目で「意図して要れてあるのにごっそりコードから削られ」たり、実行の順序や、配置が変わってたりするのはなんかなぁ。
本書きたいっていうより、面白い本読みたいだけで、表現したいものはあんまりないのかもしれませんな。
場当たり的な処理に「あー、時間なかったのね」とか「ここ、虫取れなかったのね」とかw
見えないのをいいことにエラーゴロゴロと吐いてると、こいついい加減だなぁとかw
赤い文字のB社製品なんて言ってませんからねっ(何
ものすごい回り道してる気もするので、なんだが。自分でライブラリ作るのも楽しいけど、簡単にドハデな画面が作れるのも、人に見せびらかし易いので、楽しいですよ。
こんな感じで?w
でも、少なからず動作に対する音のリアクションに対して興味は示してる感じがなんともかわいらしい。
ピアノならハープシコードのほうがデジタル。
ピアノは打鍵の強さが音に対してアナログに出るので感情表現が豊かな事もあって、そのあたりがピッチは鍵盤単位で固定でも、生々しさが削がれないのだと。
センサーバーは「本物」を使う手もありますし、工作は特に要らないです。
作ってみるほうが「面白い」でしょうけど。
なんかライブラリとか、インタープリタってあんまり好きじゃない。
命令セットを分解すると設計が見えるような(今じゃ大抵形骸化してるけど。特にx86)もののほうが「動作」が見えて。
間に何かが入ると、生産性は高いし、楽も出来るんだけど、「本当の」動きが見えにくい。
もともと何かを書くよりは、ピタゴラ装置のように動作を見るのが好きなだけかもしれませんな。
なんというか「説明はわかるし、イメージも出来るが、式を書けずにコードにも落ちない」という実に近視な視野しか持ち合わせていないので、実装を見て、形をやっとぼんやりが像を結ぶ。そんな感じ。
フーリエ変換も事実上FFTみたいな扱いだったりしますが、最近だと、手品よりは数学的なセンスがちゃんと生きるようにはなった気はします。
小手先の高速化より、動作をイメージして、素直に実装すればあとは時代に比例してハードウェアが勝手に速くなるというかw
汎用性をもったモジュールは精度重視とか、使いまわし重視とか、目的だけに特化していない部分も「遅い純正コード」にはあったりしますが。
VBAもそうですが、あの規模や構造のものが普通に実用になったりするのはハードウェアも速くなったなぁと思ったりします。
電子工作は楽しいけども、個人で部品や工具の在庫を持てるほど経済的、空間的な余裕が無いのでな~。最近はじっさいに手を使う作業は、車弄りか、キーホルダー作りみたいな手芸的な事しかやってないな。
VBAで始めたのはテノリオンの流れと、他に手持ちのWin開発環境が無かったってのがあるんだよね。C#でも始めようかと思ったんだけど、自分しか使わない作って捨てるプログラムにはエクセル環境は結構便利ですよ。表計算やグラフ表示機能が既に実装済みやからな~。とは言え、開発環境として3Dゲームエンジンが良いんじゃないかと、調べ始めました。
学生時代にラプラス変換やフーリエ変換で落ちこぼれたデス。orz 確かに未だに数式はちゃんと書けないけど、人様の高速フーリエ変換プログラムを書き写して雰囲気が掴めた。まだ文章化は出来ないけど、フーリエ変換て何やってるのか、なんでサンプリング周波数の半分までしか符号化できないのかってのが知識ではなくて、身に付いた気はします。数学的センスのある人ってのは、あの数式、数学語だらけの数学の授業に出てるだけで、こう言う物理的イメージまで持てる人なんだろうなと思った。尊敬するわ。
ちなみに、高速化は考慮してないシンプルなアルゴリズムなのに。エクセルのリフレッシュ関係の制御を、きちんとしただけで、エクセル純正の分析ツールのFFTよりもVBAで書いたFFTルーチンの方が速くなってしまった。ww VBAの素のスピードってのは相当なもんみたい。
http://www.nicovideo.jp/watch/sm1819990
こんなのもありましたな。
WiiRemoteもいろんな入力拾えたような。
エクセル向きじゃなさそうですが、デバイスによってもまた操作感覚は変わるかなぁとか、焚き付けてみる。
数式より、実装されたコードのほうがまだわかりやすい…。
低級言語なほど…ってあたりが頭の悪さを露呈するw
ただ、コード量が増えるとその限りでもなくなるけど。