• 電子工作 12/8 FM音源に手を出してみた、その2(YMF825)

    2017-12-07 21:08
    それでは、FM音源音源の続き
    (えー、一応ですね今回のは「備忘録」と言う事で調べながら書き足していきます、
    足りなかったり多少認識間違いしてたりする事もありますのでご容赦下さい)


    音の波の合成で参考になりそうなツイートを引用
    まあコイツはフーリエなので分解だけど
    シンセサイザーは波を足したり引いたり崩したりで
    変な音を出して楽しむ楽器と言う事で

    YMF825の基本的な波はこんだけ有る
    以下のWSのパラメーター
    それを。次の8種のアルゴリズムで足したり混ぜたりしていく
    グレーの四角が各発信するモジュールでオペレーターと呼ばれてます、
    ちなみに[1]の右から出てぐるっと回って左に入るのはフィードバックの表記です。


    まず、arduino用のサンプルからsetupの一部を
    fbd_spec1.mdのI_ADRの表を参考に

    if_s_write( 0x1D, OUTPUT_power );  OUTPUT_powerは0なら5V、1なら3.3V回路
    if_s_write( 0x02, 0x0E );//Analog Block Power-down control
    delay(1);
    if_s_write( 0x00, 0x01 );//CLKE N
    if_s_write( 0x01, 0x00 ); //ALreset
    if_s_write( 0x1A, 0xA3 ); //soft reset ソフトリセット
    delay(1);
    if_s_write( 0x1A, 0x00 ); //soft reset リセットから復帰
    delay(30);
    if_s_write( 0x02, 0x04 );//Analog Block Power-down controlAP1,AP3
    delay(1);
    if_s_write( 0x02, 0x00 );//Analog Block Power-down controlAP2
                      ここまでが初期化パート

    //add
    if_s_write( 0x19, 0x30 ); マスターボリューム 00〜3F
    if_s_write( 0x1B, 0x3F );//interpolation Sequencer Delay, Recovery Function Setting, Volume Interpolation Setting
    if_s_write( 0x14, 0x00 );//interpolation
    if_s_write( 0x03, 0x01 );// アナログ出力のゲイン設定、0で5dB1で、6.5dB

    if_s_write( 0x08, 0xF6 );//Sequencer Setting
    delay(21);
    if_s_write( 0x08, 0x00 );
    if_s_write( 0x09, 0xF8 );
    if_s_write( 0x0A, 0x00 );

    // if_s_write( 0x0D, 0x22 );//pitch octave


    if_s_write( 0x17, 0x40 );//MS_S Sequencer Time unit Setting
    if_s_write( 0x18, 0x00 );



    次に音色指定
    これは T_ADRは一気にワードで書き込みます
    spiバースト転送って事で
    35バイトですけど、各パラメータは上位ビット下位ビットに混ざって入ってます
    詳しくはドキュメント参照



    unsigned char tone_data[35] ={
    0x81,//header
    //T_ADR 0
    0x00, basic Octave
    0x42, LFO とアルゴリズム
    SR XOF  RR DR  AR SL  TL KSL DAM EAM DVB MLTI DT WS FB
    0x80,   0x7F,  0xF4,  0xFB,   0x00,     0x10,  0x80,  オペレーター1
    0x80,   0xAF,  0xA0,  0x0E,   0x03,     0x10,  0xC0,  オペレーター2
    0x00,   0x2F,  0xF3,  0xFB,   0x00,     0x20,  0xE0,  オペレーター3
    0x00,   0xAF,  0xA0,  0x0E,   0x01,     0x10,  0x40,  オペレーター4
     
    0x80, 0x03,0x81,0x80, 終了コード
    };


    * LFO  Low Frequency oscilator
    * SR サスティーンレート
    * XOF keyoff無視、伸ばし音
    * KSR key scale センシビティARGレート
    * RR  リリース
    * DR  ディケイ
    * AR  アタック
    * SL  サスティン
    * TL  トータルレベル
    * KSL  key scale levelセンシビティ
    * DAM 振幅変調深さ
    * EAM 振幅変調設定
    * DVB ビブラート深さ
    * EVD ビブラートセット
    * MULTI 周波数倍率
    * DT ディチューン
    * WS 波形
    * FB フィードバック


    で、良かったのかな
    これをI_ADRの #07にまとめて書き込み

    音を出す時は #13と#14に音程に当たる数値を入れて
    #15に0x40入れてkeyonです。
    音を止める時は
    #15を0x00でkeyoffです。


    ドキュメント参照って、一覧貼るのも面倒だなあ、どーしようか、
    パラメータの説明だとビット毎だしなあ無いと解りにくい様な気がする


  • 広告
  • 電子工作 12/5 FM音源に手を出してみた(YMF825)

    2017-12-05 21:49
    ども!
    今回のモジュールYMF825は
    FM音源モジュールとしては
    唯一現存販売されている物で
    携帯電話とかに使われているものですけど、
    普段一般には販売されてなくて
    今回ウダデンシ様と最近Maker向けにYAMAHAデバイスを出している方の御尽力でMaker用に販売されましたと

    (ここを見に来たYMF825モジュールを初めて使う方々に先に一言、ボリュームが小さいって話を見ますが、
    サンプルの設定で小さくされていますので
    #25のマスターボリュームをいじって見て下さい
    それとSMDイヤホンジャックのハンダを増量しときましょう)


    今までの資産のFM音源も色々あるんですけど
    何気に敷居が高いと感じていた所、コイツはSPIで接続するだけとか
    Maker向けで簡単に出来ると言う噂だったので

    8月のMakerfaireTokyoの先行販売で速攻で買いに走りましたが(実は2日目)

    3ヶ月塩漬け
    前のエントリーの自転車ライトとか
    メタボ対策で運動時間を作らんとならんかったのよ、

    今は普通にスイッチサイエンス秋月電子等で買えます
    共立ではチップでも買えるとか?

    さて、普通にGithubにある
    サンプルコードでテスト

    それだけじゃ面白くないんで液晶表示も付けてみましたが
    同じSPIなんで連結出来るかと思ったんですけど、
    その前に実は大きい液晶の方で
    単純にArduinoに繋ぐだけ
    試したんだけど
    全部デバイスドライバーのライブラリーが違って単純に点かない使えないとか
    結局シンセパッドで使った事の有る一番小さい1.8inch液晶になってしまったという(ArduinoIDEのTFTライブラリーがそのまま使える奴)
    買ったのが勿体無いし、液晶大きくしたいから、そのうち何とかする
    (その内積み液晶)

    ついでに前にもやった
    互換Arduino量産も
    同時進行、
    シールとミニボードは
    アイテンドーで買って来て
    作る
    「あちゃんでいいの半実装」



    ここで12/2にOFF会が有るって話しが出た
    顔を出す為にはサンプル鳴らすだけではダメだ!!
    何らかの形にして音が鳴らせる様にするには
    時間が足りない
    つー訳で、前のボカロシンセパッドと同じく
    タッチパネルを入力にする事に
    アイテンドーでまた買い物しましたが
    このタッチパネルとSPIのドライバーなんだけど
    このモジュールから出てくるデーターにブレが大きくて
    使いづらいので
    ボカロシンセパッドに使っている共立でAR1010という

    タッチパネルドライバーを買い
    コイツに付け替える、その内、コレもAR1020にしてSPIで繋ぐかな
    今はmySerialで読ませてる

    手書きで回路図を考え
    今回の材料を並べてみた
    さて、そうすると





    他の入力が足りなくなってくる

    黄色のキーパネルが入出力8ポート

    ATMEGA328ArduinoUNOもどきの
    ポート1,2がシリアル
    3,4がタッチパネル用ソフトウエアシリアル

    7-13がSPIでYMF825と液晶
    残った5,6,A0-A5が入力に回せると
    全然余らない、全部SPIにまわしたい

    そんでブレッドボードで試作してみた
    -----------そこらへんのtwitterへの書き込み
    これがOFFの前日だもんなあ詰みかけてる

    大雑把には、こんなもんで、
    パラメーター等は次回にでも書きましょうか


  • 折り畳みミニベロ自転車購入から電子工作も有るよ8/11

    2017-08-11 23:34
    ども、また書き込みに間が開いてしまった、

    さて、一つ目、最近と行ってもGWの話し
    メタボで検診の際言われ続けていたんで
    運動はしないとならん、なんて思って数年
    今年に入ってから面白い自転車を見つけたんで
    CARACLE
    と言います、
    見に行ったのはボカロ界隈では有名なこのお店

    狐塚自転車工房さん




    まあ、見に行ったその日は試乗だけにしてたんだけど、気分はほぼ確定、後日メールで注文




    GW3日には納車、受け取りに行きました、
    車体は白、
    サドルはHMOにも使われてる、GSRのサドル
    この日はこのまま乗って旧読売ジャイアンツ多摩川グラウンド付近から大森まわりで秋葉原まで、ナノラボさんで1時間休憩してからTX八潮駅まで乗りました


    こいつ
    ここまで畳めて



    用意した輪行用のキャリーバッグ
    探しにさがした、リュックサックタイプ
    ブロンプト用なんですけど








    こんなんなります


    こんなんで、片道40キロ程度なら何回か行きました
    都内に住んでた時はBMXで不忍通り、明治通り一周とかウロウロしてたんですけどね
    バイクに乗り始めてからかな
    運動たんなくなったの

    さて、ここから電子工作
    この自転車、最初のオーダー時にフロントタイヤにハブダイナモ付きを
    注文してました、
    純正じゃありません、
    バイオロジックのハブダイナモUSB電源アダプタ
    探してもらいました

    で、何回か使ってみましたが
    スマホの充電には物足りない
    普通にライトも充電の奴買いましたけど、長時間走ってると2回ほど途中で充電切れ
    フロントフォークの脇に付けるダイナモ用のLEDは折り畳むと邪魔になる、ツー事で、この際だから自作してみようか

    つー訳で秋月電子の八潮店です










    ハブダイナモの出力をオシロで見ると、こんなん、目盛りは5Vなので
    P-Pは30V、全波整流で半分の15Vを平滑してレギュレーターにつっこんで12Vを取り出す予定です、

    まあ、普通に
    右からの赤緑がダイナモからの線、色分けしてる意味は有りません、で、
    整流ブリッジ通し
    1000μFで平滑して
    左側の見慣れない塊が
    レギュレーターDCDCです、
    3端子DC/DCレギュレータ 12V BP5293-1
    定格内で使う限り放熱も気にしなくていいらしい
    しかし、入力電圧がちょっと心配、17~26Vなのだが
    頑張って自転車漕がないと光らんのでは無いかと
    こんな感じでピカリ館で買ったLEDリボン(12V用)をつなぎます、
    防水処理で光硬化樹脂で固めます





    テープは粘着付きなので
    フロントフォークに貼り付けて
    脱落防止に
    こんな風にタイラップで括りつけて










    お試し、
    まあまあ成功かな、夜になったら出かけましょう

    こんなかんじで、どうですか
    日中は消える様に何か追加すべきかなあ
    もうね、ちゃんと食事摂りながらダイエットで走り回る訳だけど、
    電子工作の時間の捻出が難しいわー(笑)