プチコン3号&BIGまとめWiki

MIC系命令に関するあれこれ

パンくずリスト

プログラム入力や時間計測に大活躍のMIC系命令。音声の入力に使えるという噂も!

注意

簡易ヘルプは適当です。おかしいと思ったら実験しましょう。

とても参考になるリンク

埋もれていて探しにくいので暫定的にリンクしておく。
ミーバースのれい氏のトピック(tanaka氏によるアーカイブ) (一時的なアーカイブのため、リンク切れ / ドメイン失効の可能性をご理解の上お進みください)

サンプリングレートの関係

3DSの基本サンプリングレートは 32728 Hz。これを分周したものがサンプリングレートとして使用できる。
どういうわけか、10単位に丸められている模様。

  • 32730 ÷ 4 ≒ 8180
  • 32730 ÷ 3 ≒ 10910
  • 32730 ÷ 2 ≒ 16360

バッファ長

MICSAVEでゼロ長の配列に読み込んだ後、配列の長さをカウント。

  1. DIM ARY[0]
  2. XON MIC
  3. MICSTART (適した値)
  4. MICSAVE ARY
  5. ?LEN(ARY),MICSIZE
ループモード、8bit

262112 サンプル。MICSIZEと一致。 16bitのときのちょうど2倍。

ループモード、16bit

131056 サンプル。MICSIZEと一致。

  • サンプリングレート × 4 してもサンプルカウントにならない。サンプル数はキリが良いので、時間の方が概算と思われる。
  • 131056 = &H01ff0 - 末端16サンプルは?
  • どうやらモードに依らず一定になるらしい?
秒数指定の場合
  • MICSIZE=バッファ長=サンプリングレート(Hz)*秒数
  • ループモードと異なり、ビット数は影響しない

MICPOSの精度

MAINCNTを観察し、変化したタイミングのMICPOSで測定。

32kHz / 16bitサンプリングの場合、MICPOSは通常16サンプル単位で更新される。つまり、約2kHzのタイマとして使用できる。非常に短い時間間隔の計測には向かないが、フレーム内での処理時間の計測には役立つかもしれない。

1V(= 60Hz)では基本的に544サンプル(34)と560サンプル(35)のどちらかの値を取る。サンプリングはVと同期していないため、値は一定にならない。

負荷の状況によって±αのサンプル増分(530,546,562,...)が観察されることもある。また、サスペンド/レジュームを挟むと録音が停止するため、MICPOSは進行しなかったり極端な増分となることがある。

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 2506 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.063 秒 | このページの最終更新 : 2022/09/20 (火) 12:51:45 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30