I’m loser, baby.

So why don't you kill me?

Propellerで音は出たものの(2)

プロペラチップのC言語からPWMで音を出す方法について本家のフォーラムで尋ねたところ、ドイツのハンドルネームKURONEKOさんから早速、指定が間違ってるよと指摘を頂いた。

カウンタのモード指定をしていると思っていた箇所について、モード指定は前半だけで良くて、後半の指定で出力させるピンを指定しなくてはいけなかったらしい。KURONEKOさんありがとうございました!

 

 

で、早速書き換えたところ、音量は小さいけどやっとPWM経由で音が出せた!やった!

あとは微調整だとばかりに、ソースを手直ししてみるけれど、音程を変えるはずの変数をイジっても音程が変わらない?あれー?

引き続きソースをイジっていると、自分としては音量を変化させるはずの変数をいじると音程が変わる。どういうことなのか。長嶋先生のHPをもう一度みてみると、一番キモの部分はアセンブラなので、よく判らない。しばらく他のソースも見てみて考えたがやっぱり判らないので、またフォーラムに質問を書いてみて、ただいま待ちの状態。

本当はきちんと理解するにはやっぱりアセンブラ理解しないとダメなんだろう。

でも、音がちゃんと出たということで、モチベーションがグッと上がる。

 

前にも書いたけど、とりあえずCの勉強はpforthの移植を目標にして続けて、音出しはPropForthに音関連のオブジェクトを組み込むことを目標にしてSPINをちょっとだけやってその後はFORTHからイジってみて、その先でCでDSP+forthを目指すことになるのかな。

そう思ってPropForthのソースを見てみたら、アセンブラの記述がかなりの部分を占めていた。

MSXでいうと、メイン以外はすべてPEEKとPOKE命令のBasicプログラムみたいな感じ。

 

プロペラチップについてはチップに依存することは最小限だけにして、CとかFORTHとか汎用的なところだけやって、目的を達成しようとしていたけれど、これはじっくり腰を据えてプロペラチップと付き合わないといけないのか。