読者です 読者をやめる 読者になる 読者になる

こんにちはマイコン制御

May FORTH be with you.

ミッション・リファクタリング9月分 その他

以下箇条書き

  • 現在書いているプログラムをライブラリとメインに書き直す。
    • 以下のライブラリに切り分ける
      • PWMエンジン
        • スタックから読み出す仕組みに変更
        • トラ技のLPC1114特集号を読んで、割り込みとPWMで扱うデータをfloatからintへ書き直す
          • 上記書き換え以外は恐らく難易度低い
      • dco
        • 内部カウンターを1個増やす
        • 生成する音の周波数について、一つ前のデータを持たせる
          • 周波数の変更があった場合、内部カウンターを一度リセットする(クリップ対策)
          • ポータメントのフラグが立っていたら周波数を滑らかに変化させる
        • こちらも恐らく難易度低い
      • dcoのデータを合成するライブラリ
        • スタックに値を返すよう変更
      • dcfライブラリ
        • スタックに対しての演算ルーティンを作る
        • エンジン部分の作成は多分簡単だが、具体的なエフェクトを作るのが多分大変
          • とりあえずは移動平均によるLPFを実装
          • 線形予測法によるルーティンは勉強と平行して進める
      • 音程表記を周波数に変換するライブラリ
        • 手間がかかるだけ。簡単
      • ADSRライブラリ(用はENVセクション)
        • 多分簡単だが優先順位低め?
          • でもADSRを可変抵抗で変更できると気分が出るかも?
  • 音周りの変数と配列は、判りにくくならない程度にグローバルにする
  • C言語の勉強も進める
    • 頭とからだで覚えるCの基本も図書館に返していたけど、手元においておくべく買いました
      • 頭とからだで覚えるCの基本から特に汲み取るべき項目
        • ポインタの効果的な使い方あたり
        • ライブラリの切り分け方
  • ここまでを10月半ばぐらいまでに終わらせたい
    • 就職活動の話のネタにするため
    • ここですでにチップのメモリがいっぱいいっぱいならば先にSPIを使ってチップ間通信を実現しないといけない
      • とは言っても就職活動に間に合わなくてもそれはそれだろう
    • RC回路のローパスフィルターをきちんと設計する
      • カットする周波数と抵抗&コンデンサーの値をちゃんとマッチングさせる
  • 次にVMを移植する
    • サウンド周りが手詰まったら気分転換にこちらを先にちょっと進めてもいい
    • 一から作るのではなく、何かを参考にしてVMを作る
    • スタック式コンピュータ・CPUを採用する
    • 凄く小さい規模のものにする
    • VM用のアセンブラでサウンド周りのコントロールを書けるようにする
  • VM用のアセンブラでForthを書く
    • このForthでまず実現したいこと
    • その後少しずつ育ててちゃんとしたForthにする
      • SDカードとか付けてセーブできるように
      • SPIで2チップにしてForthのRAM領域を増やす(最大で4Kだけど)
  • 職業訓練所のPLCの勉強、かなり本格的になってきた。ほとんどマイコン