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



ニコニコ動画で、PC-8801系の動画をいくつか
眺めてて、チップチューンのことをモヤモヤと
思い出した。

Bio100%の潜水艦のゲーム、Super Depth。
http://bio100.jp/game_review/game01.html


ご存知のとおりの、あのSuper Depthなんだけど、
BEEP音(単音)で無理やり和音を出力してるって
いうのもひとつのポイントだったと思うんだけど、
今となっては、やっぱりノスタルジーすら感じる
チープな音色。


で、ノスタルジジイとしては、むしろそのチープ
な感じを、チップチューンの音源にできないかと
妄想し出す。

以前、
http://nekosan0.bake-neko.net/connection_synth1.html
Arduinoで正弦波の8ポリ出力が出来るMIDI音源とか、
http://picavr.uunyan.com/avr_m2_ppsg.html
似非PSG音源とかを作ったんだけど、これとはまた違う
チップチューンで使えそうな、チープな音源を作れ
ないかなぁ?と。


で、手っ取り早くこの手の音源を作るといえば、
やっぱArduinoでサクッと実験。


http://arduino.cc/en/Tutorial/Tone

ArduinoチュートリアルのページのTone関数の
サンプルを弄って、4和音を出してみる。

#include "TimerOne.h"

#include "pitches.h"


int melody[][8] = {
  {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5},
  {NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_C4},
//  {      0,       0,       0,       0,       0,       0,       0,       0},
//  {      0,       0,       0,       0,       0,       0,       0,       0},
  {NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_G5, NOTE_A5, NOTE_B5, NOTE_C6},
  {NOTE_C6, NOTE_B5, NOTE_A5, NOTE_G5, NOTE_F5, NOTE_E5, NOTE_D5, NOTE_C5}
//  {NOTE_C3, NOTE_D3, NOTE_E3, NOTE_F3, NOTE_G3, NOTE_A3, NOTE_B3, NOTE_C4},
 // {NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_F3, NOTE_E3, NOTE_D3, NOTE_C3}
};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4, 4, 4, 4,4,4,4,4 };

int notes[4];


void callback() {
  static int pattern = 0;
  //tone(8, melody[thisNote],noteDuration);

  if (notes[pattern] != 0) {
    tone(8, notes[pattern]);
  } else {
    noTone(8);
  }
  
  pattern++;
  if (pattern == 4) {
    pattern = 0;
  }
}


void setup() {
  Timer1.initialize(1000000 / 100);   // initialize timer1, and set a 1/100 second period
  Timer1.attachInterrupt(callback);  // attaches callback() as a timer overflow interrupt

  for (int i=0; i// iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < 8; thisNote++) {

    int noteDuration = 1000/noteDurations[thisNote];

    //tone(8, melody[thisNote],noteDuration);
    for (int i=0; idelay(noteDuration);

    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);

    //noTone(8);
    for (int i=0; ivoid loop() {
}


(ヘッダファイルは、チュートリアルページに
 載ってるので、それをそのままコピペで使用)

D8ピンに圧電素子とか繋げば、それなりに音がでて
くることは判った。


処理方式としては、Toneが当然単音なので、Super
Depthのように、時分割で音程を切り替える方式。
1/100秒ごとに音程を切り替えるようにしてみた
んだけど、とりあえず、オクターブ3以上は問題なく
出てるみたい。

オクターブ2以下は実験してないのでわかんないけど、
1/100秒ごとに切り替えるのと、タイマ割り込みと
微妙に影響しあうと思うので、低音を優先するなら
タイマ割り込み周期を1/50とか、長く設定すれば
よいかと。
(あまり長くすると、音が濁っちゃうけど)


とりあえず、4ポリくらいは、処理能力的には全然
問題ないことが判った。まぁ、そりゃそうだな。
無理があるとすれば、処理能力の方じゃなく、
処理方式に伴う音の濁りの方。

4ポリが出れば、とりあえずセブンスコードくらいは
鳴らせるので、簡単な曲はこれだけでも鳴らせるはず。
http://www.weblio.jp/content/%E3%82%BB%E3%83%96%E3%83%B3%E3%82%B9%E3%83%BB%E3%82%B3%E3%83%BC%E3%83%89


で、音がそれなりに出ることが判ったので、コイツに
MIDIライブラリを組み合わせて、MIDI音源化したら、
チップチューンの音源になりそうかなぁ…と。
メインではなくても、ワンポイントのおかず的に。

MIDI化は、8ポリシンセでやってることの半分なので、
造作ないだろうなと。



https://www.youtube.com/watch?v=Nk6XYuK4QeI
このArduino MIDI音源ライブラリ、詳細が載ってる
ページが見てみたいなぁ。





http://ascii.jp/elem/000/000/943/943505/
へぇ。蛍石を人工的にサクサク作れるようになるみたい。
そしたら、高性能なレンズがジャンジャン作れるように
なるわな。

それは大歓迎としても、蛍石って、経年劣化で曇ったり
変色しちゃうんだよな。人工のでもやっぱりそういう
欠点は継承しちゃうのかな?
あと、硬度が低いから、傷つきやすいとか。最近のは
そうでもないのかな。




http://page13.auctions.yahoo.co.jp/jp/auction/r119536529
あぁ、この8ビットのナツカシPCカタログはお宝だったな。
ちょっと手が出ない値段だったけど。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




引き続き、アクティブスタビライザーまわりを
色々調べ中。

なんとなく、カルマンフィルターを使っている例が
多いので、カルマンフィルターは避けて通れないの
かなぁ、と思って、本屋でカルマンフィルターが
載ってる本を色々眺めてみたんだけど、どうやら
この手の本を読むには、まだオツムが足りていない
っぽい気がしてきた。

でも、一説には、単なる移動平均を採用しても、
アクティブスタビライザー程度なら、それほど
変わらないっぽい感じらしいとも言うので、なら、
まずは移動平均使って、高周波ノイズをオミット
出来ればいいんじゃね?という気もするんだよな。



それにしても、
https://www.youtube.com/watch?v=nnpw6VeMLLM
この空飛ぶ倒立振り子にしても、
https://www.youtube.com/watch?v=1qRtxEC_o5s
慣性ローターを使った倒立振り子にしても、
倒立振り子は見てて面白いな。

倒立振り子だと、地面は常に止まったままっていう
前提でいいんだけど、アクティブスタビライザー
は、取り付けてる元がそもそもグラグラ動くのを
キャンセルする仕組みだからなぁ。



そういえば、慣性ローターを使った倒立振り子を
見てて思ったんだけど、マウント自体は必ずしも
剛体で考える必要はないんだよな。マクロ撮影を
するわけじゃないから、多少の上下左右の動きが
あっても、向いてる方向だけ合ってれば、ほぼ
ぴったり止まって見えるはず。





http://www.astroarts.co.jp/photo-gallery/photo/22144.html
この月食写真、すごいな。複数回の月食を合成して、
地球の大きさと形が綺麗に浮き上がって見える。




http://www.jma.go.jp//jma/press/1410/17a/20141017_himawari8_enters_geostationary_orbit.html
ひまわり8号は、軌道投入成功したみたい。あとは
計測機器がちゃんと動くかどうかだな。





https://twitter.com/HayakawaYukio/status/522878037696589824
んーーーーー。溶岩が上昇してきて噴火の予兆が
見えたとしても、それがどのくらいの規模になる
のかはわからん、ってことだな。そりゃそうだろうな。
そんなんで、もし九州でカルデラ噴火が始まったら、
川内原発がどうなるかは、神のみぞ知るになるな。




http://weekly.ascii.jp/elem/000/000/264/264314/
こういう、物理キーが付いてるスマホって、なんで
出て来ないんだろうなぁ。ブラックベリーがこけた
からかなぁ。

フルキーが付いてなくてもいいんだけど、せめて
ガラケーと同じテンキーが付いてればいいのに。
そしたら、日本語入力とか、いちいち画面注視
させられることもないのに。


http://weekly.ascii.jp/elem/000/000/267/267282/
とうとう、SDカードが512GBに。2枚あれば、今使って
いるPCのHDD1個分。よくこんなちいさい、薄いカード
に、そんだけの容量が押し込めたもんだなぁ。

これにOS入れて、ブート出来るようにしたら、SSDも
要らずに、ちっちゃいPC作れちゃうかなぁ?

http://www.asahi-net.or.jp/~qx5k-iskw/darkside/index.html
いしかわきょーすけさんの日記で触れられてた、
http://liliputing.com/2014/10/windows-compatible-hdmi-tv-stick-intel-bay-trail-cpu.html
Windows-compatible HDMI TV stick with an Intel
Bay Trail CPU。これすごいな。こんなスティックで、
Windowsすら動くようになったとは。







コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする