Mozilla
Another week of lockdown, stayed inside, modified some text files in very precise way, did some video calls.
Gecko
Continuing my work to trim AAC-in-MP4 files. It’s of course a lot more
complicated than anticipated, but I’m seeing the end of it. I wrote a lot more
test-cases, and still don’t understand how Safari manages to find the correct
duration of an AAC file produced using the standard tool afconvert
, but I
haven’t spent too much time on it yet. Files produced using ffmpeg
(which
means most files), will soon be sample-accurate in Firefox. This matters a great
deal when decoding and looping files.
The main issue I had this week was that the machine I use for Windows
development is starting to be unusable for work. I don’t know exactly what it is
(maybe the disk? memtest86+
says everything is fine, same for the DELL online
diagnosing utility) but it BSODs quite frequently, and does internal compiler
errors on both rustc
and clang
, so I need to run mach build
four or five
times to get a Firefox build. Thankfully Mozilla’s IT is sending me a
replacement laptop, and I might buy another M.2 NVME drive to reinstall a
Windows and see what’s up with the current one. It’s still a ridiculously fast
machine, but I think we’re hitting the hardware a bit too hard when working, and
it doesn’t last very long.
Specifications
Again, that was the majority of my week. Read some issue comments, wrote some
issue comments. It seems like we’re making progress on the two topics I really
care about: time representation (converging on timestamps in microsecond
int64_t
), and memory access patterns, allowing direct decode of audio data
into a regular ArrayBuffer
or SharedArrayBuffer
, in addition to
AudioBuffer
, that is useful for ergonomic reasons, for folks that use native
Web Audio API nodes.
The Web Codecs editors, of which I am part of, have presented Web Codecs during the W3C Games Community Group’s call. I hope to have the video and slides available, because I think Web Codecs is going to solve lots of problems games developers face. I tried to explain it by contrast with what the Web offers today, drawing from my long experience working on audio standards on the Web, and answering game developers (real) issues with (in particular) the Web Audio API.
Personal
Not much again. I overhauled my personal website, https://paul.cx, to go from a set of hand-written HTML pages to a static site generated using Hugo. The goal was to easily add content of various nature. I’m constantly doing lots of things, but never sharing it outside my close friends circle, and sometimes I find it a bit sad to have worked for quite some times on random things, but never sharing it.
Anyways, I did a new mix, with an emphasis on percussions. It contains only tracks I’ve bought or downloaded recently, with no genre or tempo range constraints. It’s improvised, I literally imported all the music I had wish-listed on BandCamp and bought during their last Friday, and added a couple records I had only on vinyl and downloaded using the little mp3 download card often present in the record sleeve. Traktor analyzed it, I used the double sort by tempo and key, and pressed play on the first track.
It’s called Les percussions du Samedi, clocking in at about 2h, and is available, with the other mixes, at the new https://paul.cx.
Unrelated, I kind of want to code-golf and optimize the animation on the front page. Maybe it’s because I haven’t done any demoscene related coding lately?