FC2ブログ

名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

PIC電子オルゴールVer5_7で音符データ255個の制限を撤廃

お馴染みのPIC電子オルゴールで、音符データが各パート毎に最大255個の制約を撤廃した。これからは255を超える長い曲も書けるようになった。

【互換対策】
従来の音符データとの互換性を保つために以下の対策を採る。

・音符データのビット構成の違いは音符データの定義マクロの中で吸収する。既定の定義マクロを使っている限り音符データの互換がある。

・SONG_SELやVOICEx_SELなどのAPI、およびSONG_ENDやVOICEx_ENDなどのコールバック関数の機能とインタフェースは従前どおりである。

・orgelエンジン側の制御データを直接覗き見する処理は影響を受ける。パートの実行中ステップを示す変数 「partx_step」 は8ビットから14ビットに拡張されることになり互換が無い。しかし、この変数はアプリケーションから汎用的に使われているため、 「partx_step はパートxの実行中の音符ステップの下位8ビット」 を示すこととし、存続させる。


【内部処理の変更】
音符ステップ(音符データのインデックス値)を8ビットから16ビット(実質は14ビット)で管理するように変更した。

音符データの構成を8ビットから14ビットに拡張した。その目的はリピートや無条件分岐の分岐先オフセットを255以上に設定できるようにするためだ。PIC16Fは1ワードが14ビットだが、従来は1ワードに8ビットの音符データを格納していて、残りの6ビットを無駄にしていた。

音符データを14ビットに拡張したことにより、音符データの構成を 音価6ビット+音高8ビット に変更した。従来は、音価コードや音高コードの数が足りなくなると直指定音符で逃げていたが、今後はそのような小細工が不要になる。


【ダウンロード】
改善後のファームウェアは ここから ダウンロードできる。
関連記事
スポンサーサイト
  1. 2018/05/02(水) 18:45:21|
  2. 電子オルゴール+音声
  3. | コメント:0
<<PIC電子オルゴールのレパートリーと試聴 | ホーム | I2CインタフェースEEPROM(24シリーズ)ライターの製作>>

コメント

コメントの投稿


管理者にだけ表示を許可する

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

本ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

カテゴリ

おもちゃ修理技術 (80)
¦ ・電子オルゴール+音声 (27)
¦ ・音声再生・録音再生 (4)
¦ ・2.4GHzラジコン (27)
¦ ・レガシーラジコン (12)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (3)
ツール製作 (22)
¦ ・プログラマー (15)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (4)
修理事例 (147)
¦ ・マイコン換装 (69)
¦ ・電子・電気修理 (56)
¦ ・メカ修理 (22)
製作記事 (4)
PIC開発 (4)
おもちゃ病院 (8)
ドクター研修会 (2)
未分類 (2)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR