Open comments for this post
obscure ahh formats
shorter devlog for now. i finally fixed the 4 formats that were not working from the previous devlog: .amv, .mpeg, .mpg, and .vob.
.mpeg, .mpg, and .vob were very easy and simply needed me to ensure that the audio bitrate was always to the power of 2 (e.g. 128kbps, 256kbps, etc).
.amv however.. was a bit more interesting. audio bitrate had to be 32kbps, sample rate 22050Hz, and extra arguments were needed. i needed to add the -block_size argument and then calculate the right size by dividing the sample rate (22050) with the FPS. this should be easy - audio to video conversions (using the album art / solid colour as the bg) always use 1 FPS to convert as quick as possible, but I actually had to force 3 FPS because AMV block sizes can only be between 32 and 8192. as such, the lowest FPS I could go was 3 since 22050 / 3 = 7350.
Open comments for this post
obscure ahh formats
shorter devlog for now. i finally fixed the 4 formats that were not working from the previous devlog: .amv, .mpeg, .mpg, and .vob.
.mpeg, .mpg, and .vob were very easy and simply needed me to ensure that the audio bitrate was always to the power of 2 (e.g. 128kbps, 256kbps, etc).
.amv however.. was a bit more interesting. audio bitrate had to be 32kbps, sample rate 22050Hz, and extra arguments were needed. i needed to add the -block_size argument and then calculate the right size by dividing the sample rate (22050) with the FPS. this should be easy - audio to video conversions (using the album art / solid colour as the bg) always use 1 FPS to convert as quick as possible, but I actually had to force 3 FPS because AMV block sizes can only be between 32 and 8192. as such, the lowest FPS I could go was 3 since 22050 / 3 = 7350.
Open comments for this post
i want to crash out
well.. that was the most annoying 2 hours of my life spent there a few days ago. turns out, over 9 months ago a regression was introduced to VERT that was not noticed until now - audio thumbnails wouldn’t display properly.
okay, not that big of an issue. should be a simple fix.. but i spent 2 hours on ts. it was mostly because i had to test a bunch of commits to see when the issue was introduced which took SO long not only for being so long ago.. which was only made worse because:
HELPPPP
basically, i had caching issues relating to Vite’s development server so the commit that i thought was the issue was NOT the issue. i had to restart my little binary searching of commits to find the actual commit that fixed it, all while running bun i && bun run build && bun run preview to install the right dependencies, build VERT for production, run a preview production build, and manually test the build for the issue which added SO much time.
fixing ts
so after finally finding the commit that caused the issue, i saw that it was an update to the package we use for reading audio file metadata, music-metadata, when we updated it to 1.9.0. i initially reported the regression to the developer who was in our discord after not seeing any issues on the GitHub, but when i actually took a look at the code that was reading the data.. what the hell
for some reason, the way the data was being processed was super duper cursed 💔. we were basically initializing a new Uint8Array with the cover image and getting it as an ArrayBuffer, and when generating the Blob we.. generate ANOTHER Uint8array of the same data?? i don’t even know how this worked in the first place, no wonder it broke when we updated. literally we just needed to generate one Uint8array, and pass its buffer to the Blob constructor lmfao (see third image).
imagine you upload a zip file to a program expecting a bunch of images inside, but you accidentally uploaded created a zip archive of the zip archive you just made which contains those images. zip containing a (zip containing many images)–unexpected contents!
Open comments for this post
i want to crash out
well.. that was the most annoying 2 hours of my life spent there a few days ago. turns out, over 9 months ago a regression was introduced to VERT that was not noticed until now - audio thumbnails wouldn’t display properly.
okay, not that big of an issue. should be a simple fix.. but i spent 2 hours on ts. it was mostly because i had to test a bunch of commits to see when the issue was introduced which took SO long not only for being so long ago.. which was only made worse because:
HELPPPP
basically, i had caching issues relating to Vite’s development server so the commit that i thought was the issue was NOT the issue. i had to restart my little binary searching of commits to find the actual commit that fixed it, all while running bun i && bun run build && bun run preview to install the right dependencies, build VERT for production, run a preview production build, and manually test the build for the issue which added SO much time.
fixing ts
so after finally finding the commit that caused the issue, i saw that it was an update to the package we use for reading audio file metadata, music-metadata, when we updated it to 1.9.0. i initially reported the regression to the developer who was in our discord after not seeing any issues on the GitHub, but when i actually took a look at the code that was reading the data.. what the hell
for some reason, the way the data was being processed was super duper cursed 💔. we were basically initializing a new Uint8Array with the cover image and getting it as an ArrayBuffer, and when generating the Blob we.. generate ANOTHER Uint8array of the same data?? i don’t even know how this worked in the first place, no wonder it broke when we updated. literally we just needed to generate one Uint8array, and pass its buffer to the Blob constructor lmfao (see third image).
imagine you upload a zip file to a program expecting a bunch of images inside, but you accidentally uploaded created a zip archive of the zip archive you just made which contains those images. zip containing a (zip containing many images)–unexpected contents!
Open comments for this post
welcome back, VERT.sh
after submitting VERT.sh during Summer of Making (and skipping Flavortown), i’ve decided to submit it again for Stardance.
sadly, i did most of the very interesting features before the event so there won’t be too many interesting things made during the event.
to summarize: i plan for a huge update drop adding local video conversion, per-file/more conversion settings, new formats, and many many QOL/fixes.
the actual stuff here
for the time i spent on this devlog, i mainly focused on fixes for conversion failures i noticed during testing. i added auto-adjustments to settings to ensure that conversions are completed successfully (a warning message pops up with what was changed when necessary), removed some now-incompatible formats, and just made sure conversions all pass again.
most of the failures were regressions due to the conversion settings addition, the main thing fixing it was making sure i didn’t pass the “auto” string to the bit depth setting (instead of a number) 😭
all of the audio-audio conversions pass, while all but 4 audio -> video conversions pass. the last 4 are more obscure formats and i didn’t bother to fix them yet rn. i also prevented some video formats (like .gif) from being shown since they don’t like audio tracks lol
Open comments for this post
welcome back, VERT.sh
after submitting VERT.sh during Summer of Making (and skipping Flavortown), i’ve decided to submit it again for Stardance.
sadly, i did most of the very interesting features before the event so there won’t be too many interesting things made during the event.
to summarize: i plan for a huge update drop adding local video conversion, per-file/more conversion settings, new formats, and many many QOL/fixes.
the actual stuff here
for the time i spent on this devlog, i mainly focused on fixes for conversion failures i noticed during testing. i added auto-adjustments to settings to ensure that conversions are completed successfully (a warning message pops up with what was changed when necessary), removed some now-incompatible formats, and just made sure conversions all pass again.
most of the failures were regressions due to the conversion settings addition, the main thing fixing it was making sure i didn’t pass the “auto” string to the bit depth setting (instead of a number) 😭
all of the audio-audio conversions pass, while all but 4 audio -> video conversions pass. the last 4 are more obscure formats and i didn’t bother to fix them yet rn. i also prevented some video formats (like .gif) from being shown since they don’t like audio tracks lol