10:15:56 # Life Quick and dirty way to send around audio via network. I wondered if there's a remote protocol for audio sending, but I realized there's a swiss army knife that works reasonably well for p-to-p. To obtain audio from alsa device I can use ecasound and send it out through stdout, then pipe using ssh, and play back on the other end. Should probably use something like rtmp when there's multiple end points but this works now... Raspberry pi sshd is at 14 percent CPU time with 16kHz monaural. Stereo 44.1k probably pushes it to the limit.
remote $ arecord --list-devices # find the input device. remote $ arecord -r 16000 -f S16_LE -D hw:1,0 /tmp/a.wav # find the right format that the audio device supports. $ ssh remote ecasound -B:nonrt -f 16,1,16000 -i alsahw,1,0 -o stdout| ecasound -B:nonrt -f 16,1,16000 -i stdin -erc:1,2 -f 16,2,16000 -o alsahw,0,0
16:57:10 # Life What did I learn about WebRTC in 2020. Because of remote life I needed new tools for every day life, around video and recording. I figured that HTML5 had most of ffmpeg and OBS features that I needed, and thought I could make equivalent tools with just web technology. Learning curve was relatively steep because many of examples on the web that I could find was stale and nonfunctional. Most sample code are still not ES2015. What year is this? This is 2020. Busy rewriting var to const, functions to await.
09:58:09 # Life What's your config for sharing emacs ? In a remote-primary world coding with peers I share my emacs a lot; I think most of the video streams are optimized for 720p which is 1280x720; and tuning emacs config; probably fonts with 10 pixels width each is about right. A frame with 160x50 or 128x40 is probably reasonable.
;; 9px (defun make-frame-video-split () "Create a frame suitable for 720p in the current font config" (interactive) (make-frame '((name . "video-split") (width . 160) (height . 50)))) ;; 10px (defun make-frame-video-split () "Create a frame suitable for 720p in the current font config" (interactive) (make-frame '((name . "video-split") (width . 128) (height . 40))))
12:13:06 # Life I created a video of how to use the web app to record video. Only supports Chrome browser due to the codec. video here. The app itself is here. My wish is that if everyone has this kind of tooling then it's easy to record your hacks and we can share our hacks to each other. This is the new normal.
11:16:42 # Life Added multiple windows and a camera angle. Maybe when I am talking and slides haven't started I want to show my face. I probably have a terminal and presentation to show off. So added a way to toggle between the sources. here.
10:04:49 # Life Learning WebAudio. I wanted to make a multi-track recorder before but I couldn't. This morning I am starting with single track audio recording and play back. here is audio record code.
08:07:28 # Life Been implementing something for pair programming. Sharing the display is probably the most core part and the rest are minor improvements.