全年全月18日の投稿[27件]
2024年3月 この範囲を時系列順で読む この範囲をファイルに出力する
プロセス間通信を大別しますと、SharedMemory(mmap含む)、Pipe、Queueです。左から「速いけど扱いが難しい」→「扱いが簡単だけど遅い」となるようです。
SharedMemoryは初期定義でメモリサイズを指定しなければなりませんが、型の指定は無く、ポインタを使った変数アクセスの要領で使えます。メモリサイズが最初から固定されるので実質的には型が決まった変数となりますが、読み出してもデータが残ることが特性でしょうか。
PipeはマネージされないQueueと思って捉えています。FIFOみたいな挙動で単純な受け渡しをする一時スタックです。
QueueはPipeが高度にマネージされFIFOまたはLIFOとして機能するイメージです。遅いのが難点ですが、速度を求めないなら便利な手段です。
SharedMemoryとPipeはどちらが速いか論争があるようですが、消さなければ残るメモリーと読みだしたら消える一時スタックというそもそもの違いがある上に、転送速度は誤差レベルの違いしか無いように思われますので、用途に合わせて使い分けるだけかなと・・・。
ネットの情報にも教科書にも、これらの違いを一覧してくれる情報がほとんどありません。関数のパラメータや動作特性などのそもそもの説明がなく、どれが速いか遅いかって比較があればましな方です。コピペの様なソースコードに「俺ってスゲーと思わね?」って感じの斜め上の応用を加えたコードが書かれている物ばかり。説明をしてくれる気持ちはありがたいのだけど、中途半端な応用に本筋が埋もれたサンプルコードを誰が喜ぶのかと疑問を感じたりしています。大変勝手な言い方ですが、検索結果が無駄に多くなって分かりやすい情報が埋もれてしまいますので、ガチのプロは見向きもしない、初心者には伝わらない、そんな「俺スゲーでしょ解説」はお控え願いたいものです。斜め上の応用は書く人それぞれのクセであって一般論とは言い難いのですし。
上記はネット検索で迷宮を彷徨ってしまった思いからの愚痴です。わかってんなら書けよとか言われそうですが、人に教えられる程習得出来たら是非書きたいものです。
#C言語
SharedMemoryは初期定義でメモリサイズを指定しなければなりませんが、型の指定は無く、ポインタを使った変数アクセスの要領で使えます。メモリサイズが最初から固定されるので実質的には型が決まった変数となりますが、読み出してもデータが残ることが特性でしょうか。
PipeはマネージされないQueueと思って捉えています。FIFOみたいな挙動で単純な受け渡しをする一時スタックです。
QueueはPipeが高度にマネージされFIFOまたはLIFOとして機能するイメージです。遅いのが難点ですが、速度を求めないなら便利な手段です。
SharedMemoryとPipeはどちらが速いか論争があるようですが、消さなければ残るメモリーと読みだしたら消える一時スタックというそもそもの違いがある上に、転送速度は誤差レベルの違いしか無いように思われますので、用途に合わせて使い分けるだけかなと・・・。
ネットの情報にも教科書にも、これらの違いを一覧してくれる情報がほとんどありません。関数のパラメータや動作特性などのそもそもの説明がなく、どれが速いか遅いかって比較があればましな方です。コピペの様なソースコードに「俺ってスゲーと思わね?」って感じの斜め上の応用を加えたコードが書かれている物ばかり。説明をしてくれる気持ちはありがたいのだけど、中途半端な応用に本筋が埋もれたサンプルコードを誰が喜ぶのかと疑問を感じたりしています。大変勝手な言い方ですが、検索結果が無駄に多くなって分かりやすい情報が埋もれてしまいますので、ガチのプロは見向きもしない、初心者には伝わらない、そんな「俺スゲーでしょ解説」はお控え願いたいものです。斜め上の応用は書く人それぞれのクセであって一般論とは言い難いのですし。
上記はネット検索で迷宮を彷徨ってしまった思いからの愚痴です。わかってんなら書けよとか言われそうですが、人に教えられる程習得出来たら是非書きたいものです。
#C言語
2024年1月 この範囲を時系列順で読む この範囲をファイルに出力する
Windowsで使ったHDDをLinuxに持って行きext4で使おうとすると稀に変なエラーを吐きます。
> Partition #1 contains a ext4 signature.
どうやらスーパーブロックにゴミが残っている模様。
Windowsのdiskpartを使ってcleanするか、Linuxのfdisk(またはgfisk)でパーテーションを消して次を実行するといいらしい。
# wipefs -a /dev/sdx
※ /dev/sdx は該当のデバイス名
wipefs を実行したらfdisk(またはgdisk)でパーテーションを作り mkfs.ext4 でフォーマットすればいいみたい。
#Linux
> Partition #1 contains a ext4 signature.
どうやらスーパーブロックにゴミが残っている模様。
Windowsのdiskpartを使ってcleanするか、Linuxのfdisk(またはgfisk)でパーテーションを消して次を実行するといいらしい。
# wipefs -a /dev/sdx
※ /dev/sdx は該当のデバイス名
wipefs を実行したらfdisk(またはgdisk)でパーテーションを作り mkfs.ext4 でフォーマットすればいいみたい。
#Linux
2023年8月 この範囲を時系列順で読む この範囲をファイルに出力する
先週末、LTC Generator の関数を書いてました。モード値とタイムコード値から送信のバイナリを起こす関数です。
この作業で Python の変数の型である bytes と bytearray の違いようやくわかりました。
突き詰めたらどちらもバイトデータの羅列ってのが第一条件なんですが、コマンドで数値を処理するなら bytearray にしといた方が楽で、デバイスが送受信で扱うのは最終的に bytes ってだけでした。
とかく serial、socket を扱うなら bytes と bytearray がわかってないと不便。bytes にしなくても送信は出来るのですが文字コードの悪魔がちょっかいを出してくるので便利機能に頼るにしても自力で bytes まで持っていくつもりで書いた方がいいし、受信はどこまで行っても bytes なので避けて通れません。アセンブラに慣れきってしまった自分にとって「バイナリのデータが読めるとホッコリするよねぇ~」なんです。
#タイムコード #Python
この作業で Python の変数の型である bytes と bytearray の違いようやくわかりました。
突き詰めたらどちらもバイトデータの羅列ってのが第一条件なんですが、コマンドで数値を処理するなら bytearray にしといた方が楽で、デバイスが送受信で扱うのは最終的に bytes ってだけでした。
とかく serial、socket を扱うなら bytes と bytearray がわかってないと不便。bytes にしなくても送信は出来るのですが文字コードの悪魔がちょっかいを出してくるので便利機能に頼るにしても自力で bytes まで持っていくつもりで書いた方がいいし、受信はどこまで行っても bytes なので避けて通れません。アセンブラに慣れきってしまった自分にとって「バイナリのデータが読めるとホッコリするよねぇ~」なんです。
#タイムコード #Python
本業が忙しい。工作が出来ない。哀しい。
稼がんといけませんので仕方なし。
こんなとき、ちょっとしたアイデアが出るもの。
ジャンク品ですが、5Cクラスと思われるBNC同軸ケーブルと2回路の音声ケーブルが1本になっている複合ケーブル(ジープケーブル)が手元にあります。50mが2本と100mが1本です。
出処は書けませんが、とんでもなく品質の良いケーブルです。もちろん機械強度も高い。
丈夫で長さがあるので音声回線にDMXを通していましたが、考えてみたら同軸ケーブルにEtherでArt-Net通したらよくね?音声回線にはインカムとLTC通したらよくね?
今回は「同軸ケーブルが望ましいので積極採用!」ではなく、ジャンクなケーブルを活かすって意味ですから実用域のアダプタが安く手に入ればアリかな?って話です。
調べてみますと100Mbpsクラスの変換器なら入口出口のセットが1万円くらいで手に入ります。DMXマルチケーブルや屈強なLANケーブルで作ることを考えたら十分に安い。こんなんでもカタログスペックでは数百メートル引き回せるそうですから十分。
これは試すしかありませんのでポチリました。
幸い株で稼いだ分で賄えます。このところ株価の動きがアホみたいに大きいので、たまたま波に乗れたら3週間で原資の8%くらい取れました。巧い人は1年で何倍にもするのでしょうが、博才が皆無な私でも4月から月平均6%くらい取れています。どこに預けても増えるどころか実質目減りですから、損切り上等!で波を読むことを楽しんでます。現物なら目減りしても借金を背負うことはありませんから気楽なものです。運が良ければ持ち金が増える課金ゲームですね。昨年はちょっと負けましたが、自分に対する待ちどころがわかり始めた今年は負け分を取り返して小遣いくらいは稼げてます。自分を相手にポーカーをしているような気分ですけど。
#[Art-Net]
稼がんといけませんので仕方なし。
こんなとき、ちょっとしたアイデアが出るもの。
ジャンク品ですが、5Cクラスと思われるBNC同軸ケーブルと2回路の音声ケーブルが1本になっている複合ケーブル(ジープケーブル)が手元にあります。50mが2本と100mが1本です。
出処は書けませんが、とんでもなく品質の良いケーブルです。もちろん機械強度も高い。
丈夫で長さがあるので音声回線にDMXを通していましたが、考えてみたら同軸ケーブルにEtherでArt-Net通したらよくね?音声回線にはインカムとLTC通したらよくね?
今回は「同軸ケーブルが望ましいので積極採用!」ではなく、ジャンクなケーブルを活かすって意味ですから実用域のアダプタが安く手に入ればアリかな?って話です。
調べてみますと100Mbpsクラスの変換器なら入口出口のセットが1万円くらいで手に入ります。DMXマルチケーブルや屈強なLANケーブルで作ることを考えたら十分に安い。こんなんでもカタログスペックでは数百メートル引き回せるそうですから十分。
これは試すしかありませんのでポチリました。
幸い株で稼いだ分で賄えます。このところ株価の動きがアホみたいに大きいので、たまたま波に乗れたら3週間で原資の8%くらい取れました。巧い人は1年で何倍にもするのでしょうが、博才が皆無な私でも4月から月平均6%くらい取れています。どこに預けても増えるどころか実質目減りですから、損切り上等!で波を読むことを楽しんでます。現物なら目減りしても借金を背負うことはありませんから気楽なものです。運が良ければ持ち金が増える課金ゲームですね。昨年はちょっと負けましたが、自分に対する待ちどころがわかり始めた今年は負け分を取り返して小遣いくらいは稼げてます。自分を相手にポーカーをしているような気分ですけど。
#[Art-Net]
2023年7月 この範囲を時系列順で読む この範囲をファイルに出力する
Pythonでマルチスレッドをする方法を改めて調べていました。
以前は threading を使いましたが、concurrent.futures が便利っぽい。普通の関数を使うのと大差ない手間で使えます。
しかもマルチスレッドだけでなくマルチプロセスも扱えます。マルチプロセスでも fork して管理する作業が無く、マルチスレッドとほぼ同じ書き方で使えるので、どちらかで書いておけば後から変更するのも簡単。
マルチスレッドとマルチプロセスの違いは先達の書き込みが沢山があるので割愛しますが、今回の用途ではマルチスレッドが良さそうです。処理の総量はシングルプロセスでも十分に間に合っているのですが、ウィンドウマネージャーの待ちとシリアル通信の待ちがかみ合わないことへの措置なので軽快なマルチスレッドなワケです。
#Python
以前は threading を使いましたが、concurrent.futures が便利っぽい。普通の関数を使うのと大差ない手間で使えます。
しかもマルチスレッドだけでなくマルチプロセスも扱えます。マルチプロセスでも fork して管理する作業が無く、マルチスレッドとほぼ同じ書き方で使えるので、どちらかで書いておけば後から変更するのも簡単。
マルチスレッドとマルチプロセスの違いは先達の書き込みが沢山があるので割愛しますが、今回の用途ではマルチスレッドが良さそうです。処理の総量はシングルプロセスでも十分に間に合っているのですが、ウィンドウマネージャーの待ちとシリアル通信の待ちがかみ合わないことへの措置なので軽快なマルチスレッドなワケです。
#Python
2023年6月 この範囲を時系列順で読む この範囲をファイルに出力する
LTC Player を試作ってみました。
まだまだ途中ですが、ウィンドウの下半分はこんな感じかなと。音源ファイルを選択して再生出来ます。再生、停止などは当たり前ですが、スライダーで再生位置指示と音量を付けてあります。音量は音源に対するものでシステムの音量は変化しません。上半分にはプレイリストを表示する予定です。
PySimpleGUIはレイアウトの制約が多いのですが、その範囲で並べればいいだけです。自由度を求めるならTkinterやKivyですが、これらはプログラミングが大変過ぎます。PySimpleGUIなら予習2日、製作数時間でここまで出来ました。
ボタンがフォーカス(押してはいないけど選択された状態)されているとスペースキーで押されたことになるので、フォーカスをボタン類から外すか常にPLAYボタンがフォーカスされた状態にするにはどうするかが課題です。
キー入力の取得も簡単でした。ウィンドウを表示コマンドにキーイベントを拾うスイッチを加えるだけです。キーボードで押された文字が戻り値に入ります。日本語入力状態には対策が必要です。
追記
ボタンのフォーカス問題ですが、ダミーボタンを置き、常にこれがフォーカスされる様にしました。
イベントが発生してPySimpleGUI.Window.read()を抜けたらイの一・無条件にダミーボタンをフォーカスするのです。
今はボタンしかレイアウトしていませんのでいいですが、強制フォーカスがダメな時には強制フォーカスの実行に条件を付けましょう。
#Python
まだまだ途中ですが、ウィンドウの下半分はこんな感じかなと。音源ファイルを選択して再生出来ます。再生、停止などは当たり前ですが、スライダーで再生位置指示と音量を付けてあります。音量は音源に対するものでシステムの音量は変化しません。上半分にはプレイリストを表示する予定です。
PySimpleGUIはレイアウトの制約が多いのですが、その範囲で並べればいいだけです。自由度を求めるならTkinterやKivyですが、これらはプログラミングが大変過ぎます。PySimpleGUIなら予習2日、製作数時間でここまで出来ました。
ボタンがフォーカス(押してはいないけど選択された状態)されているとスペースキーで押されたことになるので、フォーカスをボタン類から外すか常にPLAYボタンがフォーカスされた状態にするにはどうするかが課題です。
キー入力の取得も簡単でした。ウィンドウを表示コマンドにキーイベントを拾うスイッチを加えるだけです。キーボードで押された文字が戻り値に入ります。日本語入力状態には対策が必要です。
追記
ボタンのフォーカス問題ですが、ダミーボタンを置き、常にこれがフォーカスされる様にしました。
イベントが発生してPySimpleGUI.Window.read()を抜けたらイの一・無条件にダミーボタンをフォーカスするのです。
今はボタンしかレイアウトしていませんのでいいですが、強制フォーカスがダメな時には強制フォーカスの実行に条件を付けましょう。
#Python
2023年5月 この範囲を時系列順で読む この範囲をファイルに出力する
MUSES01Dが入荷したので我慢出来ず実験。
エージングが済んでいないのにNJM4580Dよりも圧倒的に良い音です。良い音の基準は難しいですが、第一印象は重なって隠れてしまう音が一つも感じられないことです。今まで聞こえなかった音が聴こえるとか、音の向こうの無音まで聴こえてきそうだと書いたら大げさですがそんな感じ。ジャズっぽい音源で試していますが、主旋律は勿論、僅かに入っている伴奏の輪郭や余韻まで明瞭に聴こえ、NJM4580Dではあまり聴こえなかったスネアのブラシにまで存在感があります。粒立ちが良く透明感があるとでも書けばオーディオ評論っぽい?
いかにもJRCの音なのは否定しませんが、これ以上は自分のバカ耳では評価不能かも。凄いの一言です。ちょっと聴いただけで「良い音ぢゃね!?」と思ってもらえるレベルだと思います。
バンドモノの現場で楽器を繋いで試してみたいです。ベースはもちろん、キーボードの音も圧倒的に良くなりそうな期待感があります。
本領発揮には300-350時間のエージングが必要とのこと。本当にここまで必要なのか疑問もありますが、やらないとわかりませんのでエージングを開始。2週間ガンバレ!
ちなみに、どの比較情報を見ても「OPA627」が群を抜いた高評価。形はMUSES01Dと同じDIP8ピンですが、1回路物なので今の基板では使えません。
実売価格は1個6,000円もします。DI-1に使うなら2個必要ですが、ここまでになると良質なダイレクトボックスを買った方が良さそうなので止めておきます。
端っからDI-1の限界に挑戦するつもりは無く、部品代5,000円未満で改善出来るならアリぢゃねってプランですからね。
予想以上に良い経過を得ているので更に上を試してみたい気持ちは捨てきれませんけどwww
余談かもしれませんが、amazonや中華電機には刻印を書き換えた偽物が多いらしいのでご注意を。5,000円以下のOPA627は怪しさ満点だし、MUSESシリーズは秋月電子通商以外で買わない方がいいとのこと。真相を確かめる気はありませんので、ナンとも言えないところですけどね。
オマケとして、今回の基板と外したM5218の記念撮影。
aitendoさんに同じ用途の基板がありました。
0.65-2.54/8P★SIL変換基板(3枚入)
DI-1の基板並みに太くて真っすぐな配線にグランドシールドが過剰にされている物が欲しかったので私には少し違うのですが、これを使えば同様の改造が可能だと思います。
aitendoさんのアイデア商品は売り切りで終わりになる事が多いので、興味のある方はお早めに購入されることをお勧めします。
3枚100円は安い!!
#音の世界 #器具の製作
エージングが済んでいないのにNJM4580Dよりも圧倒的に良い音です。良い音の基準は難しいですが、第一印象は重なって隠れてしまう音が一つも感じられないことです。今まで聞こえなかった音が聴こえるとか、音の向こうの無音まで聴こえてきそうだと書いたら大げさですがそんな感じ。ジャズっぽい音源で試していますが、主旋律は勿論、僅かに入っている伴奏の輪郭や余韻まで明瞭に聴こえ、NJM4580Dではあまり聴こえなかったスネアのブラシにまで存在感があります。粒立ちが良く透明感があるとでも書けばオーディオ評論っぽい?
いかにもJRCの音なのは否定しませんが、これ以上は自分のバカ耳では評価不能かも。凄いの一言です。ちょっと聴いただけで「良い音ぢゃね!?」と思ってもらえるレベルだと思います。
バンドモノの現場で楽器を繋いで試してみたいです。ベースはもちろん、キーボードの音も圧倒的に良くなりそうな期待感があります。
本領発揮には300-350時間のエージングが必要とのこと。本当にここまで必要なのか疑問もありますが、やらないとわかりませんのでエージングを開始。2週間ガンバレ!
ちなみに、どの比較情報を見ても「OPA627」が群を抜いた高評価。形はMUSES01Dと同じDIP8ピンですが、1回路物なので今の基板では使えません。
実売価格は1個6,000円もします。DI-1に使うなら2個必要ですが、ここまでになると良質なダイレクトボックスを買った方が良さそうなので止めておきます。
端っからDI-1の限界に挑戦するつもりは無く、部品代5,000円未満で改善出来るならアリぢゃねってプランですからね。
予想以上に良い経過を得ているので更に上を試してみたい気持ちは捨てきれませんけどwww
余談かもしれませんが、amazonや中華電機には刻印を書き換えた偽物が多いらしいのでご注意を。5,000円以下のOPA627は怪しさ満点だし、MUSESシリーズは秋月電子通商以外で買わない方がいいとのこと。真相を確かめる気はありませんので、ナンとも言えないところですけどね。
オマケとして、今回の基板と外したM5218の記念撮影。
aitendoさんに同じ用途の基板がありました。
0.65-2.54/8P★SIL変換基板(3枚入)
DI-1の基板並みに太くて真っすぐな配線にグランドシールドが過剰にされている物が欲しかったので私には少し違うのですが、これを使えば同様の改造が可能だと思います。
aitendoさんのアイデア商品は売り切りで終わりになる事が多いので、興味のある方はお早めに購入されることをお勧めします。
3枚100円は安い!!
#音の世界 #器具の製作
秋月さんから「MUSES01D」が入荷。
試したいけれど時間が微妙です。
けど、モヤモヤするのでやりましょう!
基本動作だけでも確認します。
#音の世界
試したいけれど時間が微妙です。
けど、モヤモヤするのでやりましょう!
基本動作だけでも確認します。
#音の世界
2023年1月 この範囲を時系列順で読む この範囲をファイルに出力する
秋月電子通商さんでRaspberryPi4Bが販売されていました。
特需ですぐに無くなってしまう?
お金は辛いですが、とりあえず3個発注しました。
#RaspberryPi
特需ですぐに無くなってしまう?
お金は辛いですが、とりあえず3個発注しました。
#RaspberryPi