Web Audio APIのテスト

今日はwindowsのGoogle Chrome Canary Bulidでアドレスバーにabout:flagsと入力するとWeb Audio APIを有効化できた。ただグリッチが酷くまともに接続音がでない状態にある。例えばテルミンみたいなのものがブツブツ音が途切れる状態だ。先日この機能を有効化…

Android2.3用OpenSL ESを使用するサウンドプログラミングの流れ

(2012 追記)以下の内容は読まずこちらを参考にしてください http://d.hatena.ne.jp/miujun/20120307 エンジンを作る result = slCreateEngine(&engineObject, 0, NULL, 0, NULL, NULL);エンジンを実現する、リアライズってどう訳すのかわからないのだが。 re…

Android2.3だからCだけでテルミンもどきを作った。

(2012 追記)以下の内容は読まずこちらを参考にしてください http://d.hatena.ne.jp/miujun/20120307 (2011 9/30 追記)先ほどHTC EVO WIMAXを2.3にあげて試したのですが残念な結果でした。音は出るし周波数も変わりますが遅延があまりにひどかった。エミュレ…

Firefox4ベータ版でaudio data apiが搭載されてるので記念に音楽ライブラリ未満を書いてみる

(12/6修正)ZeroCrossingWave(10/9修正)TableOsc Sampler Phaser Mixer(9/26)SndOut 前回の記事から間が空き、その間にaudio data apiの仕様が変わりました。詳細は前回の記事に追記しておきます、いずれ!。さて今日はjavascript用の音楽ライブラリ未満を書…

html5でリアルタイムサウンド生成(ある特殊な環境で)

NO MUSIC, NO BROWSER.最近はブラウザだけでちょろっとjavascriptを書いてテルミンのような楽器を作ることが可能である。これはfirefoxの特殊な環境の話なのだが、"20分後の未来"よりも早くすべてのブラウザで実装されると思うし!?、実装されると嬉しい。詳…

Python26用PySndObjの新機能

普段Pythonは25なので26用のPySndObjのチェックが遅れました。 新年も迎えまして、時間もあるので少し書いてみます。さて26用のPySndObjはインストーラ化されました。 これで初心者にも扱いやすくなったと思ったのですが、、、 起動するとNumpyがないとエラ…

CygwinでAndroid NDK

シンセとか作りたいのでCygwinでAndroid NDKをいじろうと試したメモ。 ちなみに環境はvistaです。まずandroid-ndk-1.5_r1-windowsをダウンロードし、またCygwinを入れる。 次に(僕は)cygwin/home/PCUSER以下にndkとリネームして置きました。 それではcygwin…

PitchHiking for Android

奇妙な音楽用インターフェイスというのをこじらせて、Python言語風の音楽用インターフェイスを作ってみた。 ゲームボーイ風な8bitサウンドを奏でられますよ。 それからAndroid実機で試せてないので、エミュレータで楽しんでおります。使い方(フルスクリーン…

ONE BIT JUNK BEAT

さて、Androidでダイナミックに音が生成できると聞いたので、1bit音楽が、0と1の世界が楽しめる「ONE BIT JUNK BEAT」を作ってみました。使い方 感想 実機で試せてないので、実際動くか分からない。よって、まだ完成途中ではあります。またAndroidはまだ音周…

8ビット

ノイズを8ビットで生成。 (quantize (noise) 127)あるゲーム機などの三角波は4ビットと聞きましたので (quantize (osc-tri 100) 7)ずいぶんとギザギザです(ギザギザギザス、ちがうか)。

ステレオ入力音

ステレオサウンドの右側だけとか、その逆だけ処理したいときがあります。 とりあえず右側の音(aref s 1)を消すには (vector (aref s 0) (mult 0 (aref s 1)))ポイントはvectorは第1引数を左として返します。ですから、左右を取り替えッ子すると (vector (are…

ドラムマシーン未満

別のことをやろうと思ったが時間切れ。 ということで、今まで覚えた技術で音を作り連続させる。 (defun snare() ;スネア風 (mult (pwl 0 0.5 0.15) (lp (sim (noise) (osc-tri (pwl 0 50 0.15))) 2000))) (defun hihat() ;ハイハット風 (mult (pwl 0 1 0.05)…

入力音と4分音符(休符)

入力音はsでした。ここで気づいた人もいるかもしれませんが、7/29の日記で4分音符(休符)をあらわす組み込み定数のsがうまくない使えない理由がこれです。sは入力音ということですから、4分音符(休符)の組み込み定数がどうしても必要ということなら、ここから…

入力音

録音した音やサウンドサンプルなどオーディオ・トラックに読み込んだサウンドにローパス・フィルタを。 (lp s 1020) ;s がサウンド。トレモロでも (mult s ;入力音s (sim ;ここは振幅変調と同じです (const 0.5) (scale 0.25 (hzosc 5)) ) )

初期設定ファイル

Audacityフォルダ(ディレクトリ)にnyquistフォルダがあります。ここには拡張子lspのファイルがたくさんあります。1番最初に読み込まれるファイルはinit.lspになります。ここで読み込まれていないファイルは、このフォルダに置いてあったとしても'すぐには'…

音価

音価とは音の長さ。既に以前の日記で幾つか述べていたのですが、風の便りで間違えを訂正することになりました。音の長さをあらわす組み込み定数qdを4分音符と書きましたが以下のように訂正します。 sd 付点16分音符(休符) id 付点8分音符(休符) qd 付点4分音…

関数

ローパス・フィルタのカットオフ周波数を変調させたいが、同じ処理を何度も繰り返すときは自分で関数を作ってもよいと思う。例えば簡単な掛け算をしてみましょう。 (* 3 4)Nyquistプロンプトは計算の結果を返して12と出力する。さてオペレータ * もなんら普…

周波数変調

ある波形(キャリーア)の周波数を別の波形(モジュレータ)で変調させる。ポイントは本来モジュレータの振幅は1なのでこの強さを変えることでキャリーアの周波数をかえる。 (hzosc (sim (const 440) ;キャリーア (mult (hzosc 6) (const 220)) ;モジュレータの…

ドラムのキック音を

今まで説明してきた機能を使って、キック音を作ってみる。 (mult (pwl 0 1 0.2) (lp (osc-tri (pwl 0 110 0.2)) 1000 ) )ドラム音はノイズを使うことが多いですが、キックの場合は低い周波数帯が必要なのでピッチ感がでるように三角波(osc-tri)を使います。…

フィルタ

フィルタはCsoundに倣ったものが多いです。それらを参考にしてみてください。ではでは ローパス・フィルタ (lp (noise) 1020) ;カットオフ周波数より高い周波数をカットハイパス・フィルタ (hp (noise) 1020) ;カットオフ周波数より低い周波数をカットレゾナ…

エンベロープ

実は時間を指定する必要はあまりない。エンベロープを利用してみる。 (mult (env 0 0 0 1 1 0 1) ;振幅を時間で変化。 (hzosc 440) )1秒の間に線形に減衰します。envの引数は以下のようです。 (env アタック時間 ディケイ時間 リリース時間 アタック値 ディ…

時間

引数に時間を指定できるもの (osc A4 1)時間は1秒です。これやりました。じゃ、こちらは (hzosc 440 1) ;エラーになります。残念ながらコチラには時間を指定する仮引数がありません。デフォルト時間になるといったらいいでしょうか。(大幅に修正 7/29)さて組…

振幅の変調

波形同士を乗算しています、結果的に振幅を変調させているのですが、リング変調といわれるものです。 (mult (hzosc 440) (hzosc 1)) ;multは乗算AM変調といわれるものを、これちょっと難しいです。 (mult (hzosc 440) (sim ;simは波形を加算 (const 0.5) ;一…

和音

ドミソ (sim ;加算です。sumでもよいようです。 (osc C4) (osc E4) (osc G4) )これは少しよくありません。なぜなら振幅の合計が3になりました。よってスケールしましょう。 (scale 0.333 ;スケールする (sim ;以降は上と同じ (osc C4) (osc E4) (osc G4) ) )

無音

無音は振幅の値がずっとゼロの状態なので (const 0)時間も指定してみる (const 0 30)

基本的な波形(その2)

C4やA4などの組み込み定数をstep-to-hzで変換せず、直接あつかうことができます。サイン波 (osc A4)さて、他の波形なのですが、少しややこしい。のこぎり波 (osc A4 1 *saw-table*)少し引数が増えました。2つ目の引数は時間です、1秒。3つ目の引数が、サイン…

MIDI番号やC4のような組み込み定数

周波数440hzと441hzのサイン波を連続して再生する、前回の続きです。 (seq (hzosc 440) (hzosc 441) )再生してみて音の高さが変わったと感じたら超人ですね。 しかし、ドの音とレの音が連続していれば誰でも聞き違えることが出来ます。 (seq (hzosc (step-to…

基本的な波形を順に並べる。

上のすべての波形を順に並べてみたい場合、マウスで選択して命令を1つ実行していくこともできるが、1度の命令で出来るほうがよいでしょう。 (seq (hzosc 440) (osc-saw 440) (osc-tri 440) (osc-pulse 440 0) (noise) )入れ子にすることも出来ますよ。結果は…

基本的な波形

サイン波 (hzosc 440)のこぎり波 (osc-saw 440)三角波 (osc-tri 440)矩形波 (osc-pulse 440 0) ;第2引数はパルスの幅ノイズ (noise)ちなみにコメントアウトは上記にあるようにセミコロン(;)。

AudacityのNyquistプロンプトで正弦波

Audacityは1.3.2 (beta)と1.2.6 (stable)の主に2つのバージョンが存在する。バージョンの異なりで多少の違いがある。準備(オーディオトラックを作る)-----------1.3.2 (beta) 1. (メニューの)Tasks >> Add New >> audio track 2. 音を置きたいトラックの位置…