2023年5月 この範囲を時系列順で読む この範囲をファイルに出力する
MUSES01DのDI-1のエージングは185時間経過です。
無改造品は80時間時点から変化はありません。高域の詰まり感が減少して伸びる感じが出ているのでエージングは望ましいと思いますが、この辺りが限界なのかな?
MUSES01Dの方は高域の明瞭度が更に良くなり、主旋の裏にある細い音が一層聴こえる様になっています。特に無改造品では聴き取れない高域のリバーブ音が存在感を持って聴こえます。無改造品とはすでに別物です。ただ、「シャー」ノイズが耳に付くような気もします。S/Nが悪くなったのではなく、高域が主張されるのに伴って音源からの「シャー」も大きくなったようです。
良し悪しはともかく、改造によって別物になった意味では現状でもアリだと思いますので、この後はエージングの時間を決めることでしょうか。本番中に音が変わっても困りますからね。変化が落ち着くタイミングを知りたいところです。
#音の世界
無改造品は80時間時点から変化はありません。高域の詰まり感が減少して伸びる感じが出ているのでエージングは望ましいと思いますが、この辺りが限界なのかな?
MUSES01Dの方は高域の明瞭度が更に良くなり、主旋の裏にある細い音が一層聴こえる様になっています。特に無改造品では聴き取れない高域のリバーブ音が存在感を持って聴こえます。無改造品とはすでに別物です。ただ、「シャー」ノイズが耳に付くような気もします。S/Nが悪くなったのではなく、高域が主張されるのに伴って音源からの「シャー」も大きくなったようです。
良し悪しはともかく、改造によって別物になった意味では現状でもアリだと思いますので、この後はエージングの時間を決めることでしょうか。本番中に音が変わっても困りますからね。変化が落ち着くタイミングを知りたいところです。
#音の世界
オレメモです。
PICにおいてPORTx,nに対するbit反転方法。
TMR1のコンペアで割り込みしてPORTの出力を反転すればパルスになりますから、差動バイフェーズで重要です。
; PORTAの3bit目だけ反転させる。
MOVLW 00001000B ; Wレジスタにフィルタ値を定義 3bit目だけ1
XORWF PORTA,SELF ; PORTAの3bit目だけを反転
※ 書式はXC8のPIC-as
データシート読むとPORTxではなくLATxに対して計算を当てるのがいいらしいのですが、ここではわかりやすさのためにあえてPORT相手です。
XORの計算は次の通り。
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
PIC16系にはbit単位の反転命令がありませんので、反転させたいbitだけ1にしたフィルタ値をXORで当てます。
左の値をPORTの現在値、右の値をフィルタ値とすると、2行目と4行目が反転になり、1行目と3行目は非反転になります。
論理演算の基本ちゃ基本ですが、案外忘れてしまうのでメモメモ。
アセンブラに限らずですが、出来るだけ簡単な計算で条件分岐を行うことが大事です。
例えば処理を10回繰り返すとして、0から加算してカウンタが10になったことを判断するより、10から減算して0になったことを判断する方が好みです。PICのアセンブラの分岐処理は計算結果が0かで扱うのが自然だからです。
; 10回繰り返す
MOVLW 10 ; COUNTに10を設定する
MOVWF COUNT ;
LOOP:
~ 10回繰り返す処理をここに書く ~
DECFSZ COUNT,SELF ; COUNTをデクリメント(-1)し、結果が0なら次行の処理を飛ばす
GOTO LOOP ; LOOPを繰り返す
~ 繰り返しの後の処理をここに書く ~
DECFSZはDECFとBTFSSを組み合わせたマクロ命令みたいなものです。
少し蛇足ですが、レジスタの現在値が0であるかを見るには、
; レジスタNUMの値は0か?
MOVF NUM,SELF ; 自分自身へ値をコピー
BTFSC STATUS,ZE ; 計算結果がゼロかどうかで分岐
GOTO NUMisZERO ; ゼロの場合NUMisZEROへジャンプ(CALLでもいいけど)
MOVFで自分自身に値をコピーするとSTATUSのゼロフラグ以外変化しないので便利です。
もちろんWレジスタにコピーしても同じ結果を得られますが、Wレジスタが変化しない方がスッキリまとまることが多いようです。
てな感じで、PICのアセンブラのリハビリをしています。
#PIC
PICにおいてPORTx,nに対するbit反転方法。
TMR1のコンペアで割り込みしてPORTの出力を反転すればパルスになりますから、差動バイフェーズで重要です。
; PORTAの3bit目だけ反転させる。
MOVLW 00001000B ; Wレジスタにフィルタ値を定義 3bit目だけ1
XORWF PORTA,SELF ; PORTAの3bit目だけを反転
※ 書式はXC8のPIC-as
データシート読むとPORTxではなくLATxに対して計算を当てるのがいいらしいのですが、ここではわかりやすさのためにあえてPORT相手です。
XORの計算は次の通り。
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
PIC16系にはbit単位の反転命令がありませんので、反転させたいbitだけ1にしたフィルタ値をXORで当てます。
左の値をPORTの現在値、右の値をフィルタ値とすると、2行目と4行目が反転になり、1行目と3行目は非反転になります。
論理演算の基本ちゃ基本ですが、案外忘れてしまうのでメモメモ。
アセンブラに限らずですが、出来るだけ簡単な計算で条件分岐を行うことが大事です。
例えば処理を10回繰り返すとして、0から加算してカウンタが10になったことを判断するより、10から減算して0になったことを判断する方が好みです。PICのアセンブラの分岐処理は計算結果が0かで扱うのが自然だからです。
; 10回繰り返す
MOVLW 10 ; COUNTに10を設定する
MOVWF COUNT ;
LOOP:
~ 10回繰り返す処理をここに書く ~
DECFSZ COUNT,SELF ; COUNTをデクリメント(-1)し、結果が0なら次行の処理を飛ばす
GOTO LOOP ; LOOPを繰り返す
~ 繰り返しの後の処理をここに書く ~
DECFSZはDECFとBTFSSを組み合わせたマクロ命令みたいなものです。
少し蛇足ですが、レジスタの現在値が0であるかを見るには、
; レジスタNUMの値は0か?
MOVF NUM,SELF ; 自分自身へ値をコピー
BTFSC STATUS,ZE ; 計算結果がゼロかどうかで分岐
GOTO NUMisZERO ; ゼロの場合NUMisZEROへジャンプ(CALLでもいいけど)
MOVFで自分自身に値をコピーするとSTATUSのゼロフラグ以外変化しないので便利です。
もちろんWレジスタにコピーしても同じ結果を得られますが、Wレジスタが変化しない方がスッキリまとまることが多いようです。
てな感じで、PICのアセンブラのリハビリをしています。
#PIC
LTC Generator のファームウェアもボチボチ製作開始です。初期設定から整理を始めています。
まずはPICとプリアンプの確認を兼ねてパルス出力のテストプログラムからでしょうか。これが思惑通りにならないと何も始まりません。
30fps向けの2,400bpsと25fps向けの2,000bpsです。実際は倍の4,800Hzと4,000Hzのパルス生成です。
生成にはTMR1をコンペアモードで使います。
TMR1はタイマと呼ばれるもので、CPUクロックなどをキーにした自動カウンターです。時間の計測に使えます。
コンペアとはタイマが指定の値になったらタイマの値を初期化しつつフラグを立てる機能です。一定の周期を得られます。
周期を動的に調整して1時間あたりの総カウント数を出来るだけ正確にしようというのが今回の肝です。
#PIC #器具の製作 #タイムコード
まずはPICとプリアンプの確認を兼ねてパルス出力のテストプログラムからでしょうか。これが思惑通りにならないと何も始まりません。
30fps向けの2,400bpsと25fps向けの2,000bpsです。実際は倍の4,800Hzと4,000Hzのパルス生成です。
生成にはTMR1をコンペアモードで使います。
TMR1はタイマと呼ばれるもので、CPUクロックなどをキーにした自動カウンターです。時間の計測に使えます。
コンペアとはタイマが指定の値になったらタイマの値を初期化しつつフラグを立てる機能です。一定の周期を得られます。
周期を動的に調整して1時間あたりの総カウント数を出来るだけ正確にしようというのが今回の肝です。
#PIC #器具の製作 #タイムコード
MUSES01DのDI-1のエージングは135時間経過です。
劇的ではないものの、時間経過と共に安定感と明瞭感が増しています。無改造品との違いも分かりやすくなってきました。
今朝感じたことは、アコースティックギターのピックや指が擦れる音が一層明瞭に聴こえてきたことです。そういった音を主張したミキシングではありませんし、パルスに近い音が大きくなったワケでもありませんが、音の向こうの無音が以前より感じられる様になったとでも言えばいいでしょうか。聴こえるということは音が大きくなったかそれを隠す余計な音が無くなったかのどちらかですが、原因は定かでないものの、聴き取り難かった音が明瞭になったことは事実です。
音作りは好みの世界で、低能率やノイズすら「味」や「色」とされることもありますが、ダイレクトボックスは楽器の音をPAに受け渡す入口ですから正確に次に渡すことが役目だと考えています。正確の意味は演奏者が作った音を足しもせず引きもせずということです。
どこからの情報かわからないのですが、MUSES01Dのエージングは300~350時間らしいので半分経過です。
ちなみに無改造品の変化は止まった気がします。そのため改造品と差が開いた印象があるのかもしれません。途中参戦なので少し短いですが、ここまでのエージング時間は約80時間だと思います。
今後も改造品と共にエージングを続けますが、無改造品のエージングは歪み限界から-3dBのピンクノイズを100時間当てる、としておきましょう。
#音の世界
劇的ではないものの、時間経過と共に安定感と明瞭感が増しています。無改造品との違いも分かりやすくなってきました。
今朝感じたことは、アコースティックギターのピックや指が擦れる音が一層明瞭に聴こえてきたことです。そういった音を主張したミキシングではありませんし、パルスに近い音が大きくなったワケでもありませんが、音の向こうの無音が以前より感じられる様になったとでも言えばいいでしょうか。聴こえるということは音が大きくなったかそれを隠す余計な音が無くなったかのどちらかですが、原因は定かでないものの、聴き取り難かった音が明瞭になったことは事実です。
音作りは好みの世界で、低能率やノイズすら「味」や「色」とされることもありますが、ダイレクトボックスは楽器の音をPAに受け渡す入口ですから正確に次に渡すことが役目だと考えています。正確の意味は演奏者が作った音を足しもせず引きもせずということです。
どこからの情報かわからないのですが、MUSES01Dのエージングは300~350時間らしいので半分経過です。
ちなみに無改造品の変化は止まった気がします。そのため改造品と差が開いた印象があるのかもしれません。途中参戦なので少し短いですが、ここまでのエージング時間は約80時間だと思います。
今後も改造品と共にエージングを続けますが、無改造品のエージングは歪み限界から-3dBのピンクノイズを100時間当てる、としておきましょう。
#音の世界
エージングの仕方を少し変え、これまでは抑えめの信号でしたが、歪まないギリギリのところから3dBくらい下げたレベルのピンクノイズを与えることにしました。
海外の某メーカーのテクニカルノートにかなり高いレベルの信号を与えてエージングを行うとの記述があったためです。正解は不明ですが、メーカーが言うならやってみるべきです。
これが功を奏したのかわかりませんが、3時間後にチェックしたところダイナミックレンジが明らかに広がっていました。MUSES01Dはエージングが済むと出力レベルが高めになりダイナミックレンジが広がるとのレポートもありますので、ちょうどそういう変化が起こるタイミングだったのかもしれませんけどね。
これまでは無改造品に比べ少しだけ良い感じが続いていましたが、改造品が徐々に差を広げ始めています。
#音の世界
海外の某メーカーのテクニカルノートにかなり高いレベルの信号を与えてエージングを行うとの記述があったためです。正解は不明ですが、メーカーが言うならやってみるべきです。
これが功を奏したのかわかりませんが、3時間後にチェックしたところダイナミックレンジが明らかに広がっていました。MUSES01Dはエージングが済むと出力レベルが高めになりダイナミックレンジが広がるとのレポートもありますので、ちょうどそういう変化が起こるタイミングだったのかもしれませんけどね。
これまでは無改造品に比べ少しだけ良い感じが続いていましたが、改造品が徐々に差を広げ始めています。
#音の世界
MUSES01Dに換装したDI-1はエージングが110時間ほど経過し安定してきました。昨日の中域が詰まった安っぽい音は解消しています。
無改造品より良いのですが、手間暇お金をかける程の印象はまだありません。
良い点を特筆するなら、生ギターの高音弦やハイポジションは圧倒的に良いことです。弦が擦れる音や細い響きに立体感があります。
ダイレクトボックスの役目は楽器のレベル変換ですし、DI-1の不満点は高域の詰まった感じですから、これはこれで良いのかもしません。
ただ、並列で音を通している無改造品も日に日に良くなってきている印象があります。
上記の特筆点では改造品に負けますが、エージングしたら無改造品でもいいんじゃないか!?という予感もしています。
ちょっと違う分野ですが、次の様なyoutube動画がありました。
「エイジングするとエフェクターの音はどう変わるのか」
MUSES01D化したDI-1はもっと変わります。
#音の世界
無改造品より良いのですが、手間暇お金をかける程の印象はまだありません。
良い点を特筆するなら、生ギターの高音弦やハイポジションは圧倒的に良いことです。弦が擦れる音や細い響きに立体感があります。
ダイレクトボックスの役目は楽器のレベル変換ですし、DI-1の不満点は高域の詰まった感じですから、これはこれで良いのかもしません。
ただ、並列で音を通している無改造品も日に日に良くなってきている印象があります。
上記の特筆点では改造品に負けますが、エージングしたら無改造品でもいいんじゃないか!?という予感もしています。
ちょっと違う分野ですが、次の様なyoutube動画がありました。
「エイジングするとエフェクターの音はどう変わるのか」
MUSES01D化したDI-1はもっと変わります。
#音の世界
LTC Generator の基板をハンダ付け。
表面実装部品の取り付けはオーブントースターを用いたリフローです。手順が決まれば簡単です。
リフローに関する過去記事

当たり前ですが、KiCADで描いた3D図のままです。
Windows11がCOMとして認識しましたので、Pythonでシリアル通信が出来るハズです。
この後はPICのファームウェアを書きます。MPLABX-IDEも使えるようにしましたので地道に書いていきます。
基板に書いた抵抗値が一部間違ってました。
データは修正しましたが、次の製作では注意が必要です。
#電子工作 #器具の製作 #タイムコード
表面実装部品の取り付けはオーブントースターを用いたリフローです。手順が決まれば簡単です。
リフローに関する過去記事

当たり前ですが、KiCADで描いた3D図のままです。
Windows11がCOMとして認識しましたので、Pythonでシリアル通信が出来るハズです。
この後はPICのファームウェアを書きます。MPLABX-IDEも使えるようにしましたので地道に書いていきます。
基板に書いた抵抗値が一部間違ってました。
データは修正しましたが、次の製作では注意が必要です。
#電子工作 #器具の製作 #タイムコード
DI-1の音が小さくなった原因というか対策ですが、7vくらいになっていた9v電池を新品にしたら治りました。
ファンタム電源で動かしていたので電池は無関係だと思ったのですが・・・。古い機体だから電池の扱いが違うのかな?オペアンプがよくない方向に行ったワケでないことを確認できたのでヨシとしましょう。
現状の音ですが、DI-1特有の高域がモッサリする感じが無くなり、スッキリと上まで伸びて音像は明瞭ですが、どことなく安っぽい音に感じるかもしれません。高域が良くなった半面、中域が細くなって音の分離が弱くなった印象です。手間ヒマお金をかけて改造するレベルかは微妙。
300時間として残り200時間。。。。
#音の世界
ファンタム電源で動かしていたので電池は無関係だと思ったのですが・・・。古い機体だから電池の扱いが違うのかな?オペアンプがよくない方向に行ったワケでないことを確認できたのでヨシとしましょう。
現状の音ですが、DI-1特有の高域がモッサリする感じが無くなり、スッキリと上まで伸びて音像は明瞭ですが、どことなく安っぽい音に感じるかもしれません。高域が良くなった半面、中域が細くなって音の分離が弱くなった印象です。手間ヒマお金をかけて改造するレベルかは微妙。
300時間として残り200時間。。。。
#音の世界
PICのファームウェアを書くのは久しぶりなので最新版のMPLABX-IDEをインストールしました。現時点でv6.10です。
しかし、MPASMが入っていません。アセンブルするためのツールですが、これが無ければアセンブラソースが扱えません。
こりゃ困った。
ネットを徘徊したところ、MPASMが入っているのはv5.35までとのこと。v5.40以降はXC8(Cコンパイラ)のアセンブラを使えってことみたいです。
追記
v5.35をインストールしましたが、MPASMは64bitOSでは使えませんときた。
アセンブルは実行されるのに警告が出ます。
今は動いても将来的に問題がありそうなので、XC8のアセンブラを使うことにします。
追記
MPLABX-IDEはv6.10、XC8はv2.41、アセンブラはXC8のPIC-asにしました。書式が少し違うだけで要領がわかれば簡単です。MPASMをMPLABX-IDEで使っている方なら、細かい設定は先達のサイトを検索して頂けば解決すると思います。
こちらのサイト「XC8 アセンブラの使い方 1(MPASM 移行)」が参考になりました。
私が以前のソースを変更したのは次の3点です。
1)ラベル文字列の最後にコロン「:」を付ける。
2)数値書式を変更。
3)ORGで指定していた開始アドレスの指定方法を変更。
PICの動作は確認していませんが、アセンブルは正常終了しました。
コンフィゲーションビットの設定はソースコードに記述するのがXC8の流儀みたいです。
#電子工作
しかし、MPASMが入っていません。アセンブルするためのツールですが、これが無ければアセンブラソースが扱えません。
こりゃ困った。
ネットを徘徊したところ、MPASMが入っているのはv5.35までとのこと。v5.40以降はXC8(Cコンパイラ)のアセンブラを使えってことみたいです。
追記
v5.35をインストールしましたが、MPASMは64bitOSでは使えませんときた。
アセンブルは実行されるのに警告が出ます。
今は動いても将来的に問題がありそうなので、XC8のアセンブラを使うことにします。
追記
MPLABX-IDEはv6.10、XC8はv2.41、アセンブラはXC8のPIC-asにしました。書式が少し違うだけで要領がわかれば簡単です。MPASMをMPLABX-IDEで使っている方なら、細かい設定は先達のサイトを検索して頂けば解決すると思います。
こちらのサイト「XC8 アセンブラの使い方 1(MPASM 移行)」が参考になりました。
私が以前のソースを変更したのは次の3点です。
1)ラベル文字列の最後にコロン「:」を付ける。
2)数値書式を変更。
3)ORGで指定していた開始アドレスの指定方法を変更。
PICの動作は確認していませんが、アセンブルは正常終了しました。
コンフィゲーションビットの設定はソースコードに記述するのがXC8の流儀みたいです。
#電子工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131