「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



最近、PSGとかノイズジェネレータとかチップチューン
とか調べ物してたり、色々ネットの情報をさまよって
いると、いしかわきょーすけさんの日記に時々登場する
YMCKが気になってしまって、「ファミリーミュージック」
を入手。届いてた。

BGMとして掛けてみる。イイ。もっとゲームゲーム
した感じなのかと思ったら、ピチカートファイブとか
の雰囲気にちょっと似てる印象。他のアルバムも
聞いてみたくなったな。



で、ここ数日頭にこびりついて離れないノイズ
ジェネレータ。ちょっと手を動かしてみる。

http://beatnic.jp/takedanote/vol20/
まずは武田さんのタケダノヲトのページにあるソース
を拝見し、ザックリ理解してみる。
ノイズジェネレータの処理方法の微妙なところが
わかった。
PWMとかで乱数を出力(いわゆるホワイトノイズ)
するのとはちょっと違って、0か1を擬似乱数
(線形帰還シフトレジスタ方式)でランダムな
順序で出力する(いわゆる二値出力)ってことみたい。
周波数がマチマチな矩形波がノイズに聴こえるって
ことなのかな?

で、線形帰還シフトレジスタ方式ってのが、
http://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E4%B9%B1%E6%95%B0
こんな風に適当なビット幅のレジスタを用意して
おいて、途中から2ビットとか4ビットとか抜き出し、
xorを取ってローテートシフトさせて行けばいいと。

で、そのときのシフト処理する周期を変化させると
ノイズの平均周波数ってやつが変化させられるみたい。

以前作ったArduino簡易MIDI音源のスケッチを改造して、
最大頻度20000回/秒でこの処理をサクッと書いて
動かしてみることにする。
wikipediaに書かれている計算処理そのものを計算式
に書いてみる。(乱数発生処理関数だけ抜き出し)

武田さんのタケダノヲトのページにあるプログラムとは
似ても似つかない、計算式すら原型を留めない
代物。
しかも武田さんのおよそ60000回/秒と比べると
スペック的には相当低いものしか出来ないだろうと
思いつつ…

int random_num() {
  
  static int seed = 12345;    //random seed
  int random_value;
  
//  random_value = (seed>>1) + (bitRead(seed, 16) xor bitRead(seed, 13) xor 1)*0x8000;
  random_value = (seed>>1) + (bitRead(seed, 13) xor bitRead(seed, 4) xor 1)*0x8000;
  seed = random_value;
  return seed;
}


こんな感じに。
タイマ割り込み回数と可変抵抗からの読み込み値を
比較して、抵抗値に似つかわしい経過時間が経ったら、
この戻り値のLSBを取り出して、デジタル出力ピンに
出力するだけ。

で、無事音が出た。想定どおりの音が出た!

可変抵抗をグリグリするとちゃんとノイズの音が
高くなったり低くなったり。ちょっとウレシイ。
プチタイムトリップして、いまオイラの目の前には
あのチェルシーキーボードがクッキリ見えている。


実は、コメントアウトしてある方の計算式は、
http://d4.princess.ne.jp/msx/psg/
例のこちらのサイトで解析・VHDL化されていた計算
の式をそのままパクッて見たところ、オイラおばか
なことに、int型(16ビット幅)変数なのに
17ビット目(ビット16)を参照してることに気付かず、
ノイズではない微妙な音色で鳴って困った。内緒。

xorに使うビットを他の適当なところに変更して、
それっぽく書き換えてみるとようやく鳴った。
数学的にこれが本当に最長の計算周期になって
居るかどうかは全然わかんないけど、耳で聞いて
見たところとりあえず「ザーーーー」とか
「ジューーーー」とか「ゴーーーー」ってノイズ
に聴こえるのでとりあえずヨシとする。

とりあえずここまで。今度、オシロをあててみて
周期を変えながらFFT掛けてみよう。

ノイズジェネレータだけなんとかなれば、あとは
オイラ謹製パチモノMIDI音源のスケッチと合わせても
いいし、Cかアセンブラでガリガリ書いてTINY2313用
のPSGエミュレータにもっていってもいいな。
まぁ、あとでちゃんと纏め直したいと思います。


http://www.kohgakusha.co.jp/books/detail/978-4-7775-1678-0
見本が手元に届いた。まずは気になっている部分を
ザックリ確認。とりあえずokっぽい感じ。

本当は宿題持ち帰ってきてるんだけど、こっちを
細かくチェックするほうを優先しないといかんかな。
ノイズ出して遊んでる場合じゃないよな。



(追記)
http://nekosan0.bake-neko.net/connection2_noise_gen.html
ページ追加しました。



コメント ( 0 )




http://www.nicovideo.jp/watch/1329017833
相変わらずおっさんホイホイ番組をちらちら見てしまう。
「ファーン」も好きだけど、ゲーグラ用語で一番好きなのは
やっぱり「もっさり」だな。でもまぁ、あれだな。
間違えて覚えて、そのまま使っちゃうことはよくある
ことだな。


ふとヤフオクのトップページを見たら、ボート・漁船
っていう特集が。目を疑うような特集。
http://category.auctions.yahoo.co.jp/list/%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%88-%E8%88%B9%E4%BD%93-%E8%88%B9-%E3%83%9C%E3%83%BC%E3%83%88-%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%84-%E3%83%AC%E3%82%B8%E3%83%A3%E3%83%BC/2084045123/?p=%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%88&tab_ex=commerce&rkf=1&s1=bids&o1=a&slider=0&fixed=0&nockie=1

実際引き寄せられるように眺めてみると、意外とエンジン
付きの和船も結構手が出そうな値段で出てるんだなぁ。
オイラの小型船舶の特定免許ならお客さんのせて商売
出来ることは出来るんだよな。そういえば、今年免許
書き換えだった。今回は殆どボート乗ってないや。


http://blog.goo.ne.jp/sim00/e/130f12de0f80ae65becfab85f936dbb8
simさんのエレキジャックフォーラムinアキハバラ2012
の特集、面白かった。こんな雰囲気だったんだねぇ…。
へぇ。楽しそう。


http://www.youtube.com/watch?v=IQKfQIYzNbY
ホンダの「負けるもんか」。またスポーツカーいっぱい
作って欲しいな。トヨタ86やスバルBRZクラスと
バッティングするようなクルマで、当然負けないやつ。


http://www.astroarts.co.jp/shop/showcase/solar_plate/index-j.shtml
アストロアーツのこの日食観察プレート B5版。
1枚、いや、数枚買っておこうかな。裸眼でファインダー
覗くのはどうなのかわかんないけど、ライブビュー画面
で使うなら114mm径のビクセンR114直焦点でもいける
んじゃないかと。性能はやっぱり高くはなさそうだけど。

http://www.astroarts.co.jp/shop/showcase/tech_holder2l/index-j.shtml
200mmレンズ用にはこのテクニカルホルダーも検討の
余地だな。





コメント ( 0 )