単に#include <thread>が抜けてただけだー><
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
単に#include <thread>が抜けてただけだー><
うーん、this_threadの解釈が違うのかなあ。CaudioManagerのメンバ関数なんだからthisっていったらその呼び出し元じゃないのって気がするけど。
/home/uaa/yamvoice/AudioManagerALSA.cpp:117:27: error: 'sleep_for' is not a member of 'std::this_thread'
117 | std::this_thread::sleep_for(std::chrono::milliseconds(300));
|
えー?DebianとかOpenBSDで通るコードがUbuntu(onWSL2)だと何故に?
WSL2上からpulseaudioのsink/sourcesを見るとこうなのか。もう面倒だからdefaultのみしか対応しない、で良いよね?
uaa@DESKTOP-XXXXXXX:~$ pactl list short sources
1 RDPSink.monitor module-rdp-sink.c s16le 2ch 44100Hz SUSPENDED
2 RDPSource module-rdp-source.c s16le 1ch 44100Hz SUSPENDED
uaa@DESKTOP-XXXXXXX:~$
Linuxだともっと長い。
uaa@emeraude:~$ pactl list short sinks
55 alsa_output.pci-0000_00_1f.3.iec958-stereo.2 PipeWire s32le 2ch 48000Hz SUSPENDED
uaa@emeraude:~$ pactl list short sources
55 alsa_output.pci-0000_00_1f.3.iec958-stereo.2.monitor PipeWire s32le 2ch 48000Hz SUSPENDED
56 alsa_input.pci-0000_00_1f.3.analog-stereo.2 PipeWire s32le 2ch 48000Hz SUSPENDED
uaa@emeraude:~$
https://docs.amd.com/r/en-US/pg252-vcu/Determining-Pulse-Audio-and-ALSA-Device-Names
Determining Pulse Audio and ALSA Device Namesにpactl list short sources, pactl list short sinksってあるけど…
uaa@framboise:~$ pactl list short sinks
0 sndio-sink module-sndio.c s16le 2ch 44100Hz IDLE
uaa@framboise:~$ pactl list short sources
0 sndio-sink.monitor module-sndio.c s16le 2ch 44100Hz IDLE
uaa@framboise:~$
長いな。
PulseAudioのデバイス一覧は https://gist.github.com/andrewrk/6470f3786d05999fcb48 みたいなサンプルコードで取れるみたいだけど…APIに指定するデバイス名ってこのサンプルコードでいうNameの項目の名称でいいのかなあ。(default、というデバイスは見当たらないようだけどそれはdefaultの属性とかそういう扱いが付いてるのかな)
Beepyの前にPocket C.H.I.P.とかもあったけど…メーカー無くなっちゃったんだっけ?(でもお店は生きている…?)
https://shop.pocketchip.co/
SQFMI Beepyの日本語化ってこの辺にまとまってるのか https://gist.github.com/charlestsai1995/54ab65a87e2e063ea25eb3aec4193fe1
回路図 https://github.com/sqfmi/beepy-hardware/blob/main/KiCad/beepy-schematic-v1.pdf とか色々見てみるに、SPIで繋いだSHARPのLCDはsharp-drm-driverで制御して、キーボードはBeeper上のRP2040とI2Cで通信する作りなのか。
なので、Raspberry Pi Wが推奨ではあるけど、然るべきドライバをビルドできれば他のSBCで、他のdistroでも使うことはたぶんできる…と。
うーん、なんとなくだけど超漢字開発環境むけにやってるbinutils-2.34、GNU makeでmakeしないとダメ(あと-j5とか付けない)とかそういうアレかもなあ。ビルドし直したらすんなり通るし…っていうかそうじゃなければ絶対誰かが苦情を出す系のツールだもん。
多分きのうはうっかりBSD make使ってた気がする。
OpenBSD-7.6でFLAVOR=athenaなemacsのpackageがportsで作れない件、-currentのportにあるlang/python/3を持ってくると作れた。
===> Building package for emacs-29.4p0-athena
Create /usr/ports/packages/amd64/all/emacs-29.4p0-athena.tgz
>> Broken dependency: lang/python/3 non existent
*** Error 1 in /usr/ports/sysutils/py-packaging (/usr/ports/infrastructure/mk/bsd.port.mk:3726 '_recurse-show-run-depends': @for d in lang/p...)
*** Problem checking deps in "sysutils/py-packaging".
んなことゆーても…
-currentのportsにあるEmacsと、7.6のEmacsは今のところ差が無い…となると、他の部分で問題があるのか。python3がどーのこーのってエラーを出してたような。
超漢字開発環境向けのgcc-9.4.0はclangでもビルドできたけど、なんかwarning多くてヤな感じ。多分動くんだろうけど…
binutilsはegccじゃないとダメだったけど、gccはegcc/eg++だと逆にダメだった(とはいえ今cc/c++でビルド中なのでこれが完走するかはまだ不明)。
あとはapacheの再コンパイル(兼バージョンアップ)をすれば手元のマシンのアップデートはお終いだな。
時間が無いので超漢字開発環境はbinutlis-2.34/gcc-9.4.0をegcc(gcc-8.4.0)でビルドするという方法で逃げます
gtk3 flavorでもmake package通らないっすね…portsのtar ball腐ってるのかも
うーん、超漢字開発環境のツール(databoxとかbzcompとか)のビルドが一苦労だ…warningはともかくエラー潰しがめんどい。
Xを上げない状態でビルドしたので、X上でコンソール開いて色々メッセージを読むべく再ビルド中…gtk2 flavorなemacsって好きじゃない。
OpenBSD-7.6へのアップグレードはしてみたけど、野良ビルドしたバイナリはすべて再コンパイルが必要になるのはいつものこととして…(あ、超漢字開発環境もだ…)portsのFLAVOR=athenaなemacsをインストールできずエラーが出るのが謎。
(デバイス名の取得ができる方、という条件は付けた方が良さそうかなあ)
PortAudioとPulseAudio、OSXやWindowsで使うならどっちが良いのかなあ
とりあえず今日はここで作業を切って、明日頭を冷やしてからコードの見直しだな…
あとはマトモなマイクを用意して(適当なやつはあるけど相当の大音量を入れないと反応しないっぽい)、すでに動いてるmrefdに繋げて誰かとおしゃべりをするというテストが残ってるんだけど…気恥ずかしいしlocalでecho testが動いている時点で十分かな?
mvoiceのsndio対応版(yamvoice)、どうにかsndio対応入ったと思う。
https://github.com/jg1uaa/yamvoice/blob/dev/AudioManagerSndio.cpp
sio_start()し忘れていたのと、sio_write()/sio_read()に指定する値/戻り値はバイト数(サンプル数じゃない)という部分に引っかかってた。
ふーん?Linux上は当然として、OpenBSD上でもalsaならecho testが動いてる(音が出るかどうかはともかく)。ってことはsndio特有の事情でなんか動いてない可能性はあるのか。
なるほど、mvoiceのEcho testって手元でecho testしてくれるのか。ボタンを押してカウントしている間は録音、その後ボタンを押してカウントを止めると再生動作になる。
query(In): PCH
response(In): plughw:CARD=PCH,DEV=0
query(Out): PCH
response(Out): plughw:CARD=PCH,DEV=0
Starting M17 Gateway...
ふむ、登録時のshort_nameが鍵か。
In: short_name default name default desc Playback/recording through the PulseAudio sound server
Out: short_name default name default desc Playback/recording through the PulseAudio sound server
In: short_name PCH name plughw:CARD=PCH,DEV=0 desc HDA Intel PCH, ALC887-VD Analog
Hardware device with all software conversions
Out: short_name PCH name plughw:CARD=PCH,DEV=0 desc HDA Intel PCH, ALC887-VD Analog
Hardware device with all software conversions
contour-terminalの日本語入力on/offの効かない問題をなんとかせんと…(Shift+Spaceが効かないだけで実は全角/半角が生きてたりして…?)