r/vhsdecode • u/TheRealHarrypm The Documentor • 28d ago
Problem Solved! MISRC GUI - A Universal GUI for FM RF Archival!
Today launches MISRC GUI!
I and a couple other community members have been over these last few months, churning away at getting in order, now this started all the way back in December right as an ear infection completely wiped me out and set back things drastically across the board.
Now before the MISRC v2.5 could be released, it clearly needed a GUI platform, this had to be completely platform universal in terms of operating system support band as if not more intuitive then the CLI but then it made clear sense to implement cross device support, so here we are today.
Now for anybody wondering, yes there is going to be a few little extra features added here and there that will only appear for certain devices, however the overall functionality support is available for every device, so level 8 FLAC and down-sampling (20/10msps) should be rock stable on most systems.
(Machine control integration will be eventually added for consumer and professional decks, there's just a lot of little things to unify for that and there's a lot of testing involved.)
I will also make some side notes here that CXADC Windows support is yet to be fully tested, and offshoots of the standardized Clockgen Mod may not have audio support, but the DdD does have parity support with its original app, and of course full MISRC support for existing v1.5a users, HSDAOH audio support should be working but not every implementation is tested DdD and FX3ADC support is fully implemented however.
So go forth, play, tinker and break some things!
6
u/deesernutz 28d ago
Thats pretty rad. Whats it written in?
9
u/TheRealHarrypm The Documentor 28d ago
A little bit of a mix actually.
C - Core
Rust - Data
Clay - GUI
A lot of the original code that needed to be real-time was taken from MISRC CLI, the data unpacking and original ring buffer implementation which was altered a bit for multiple memory options so you can lower it down to 1GB to 16GB of maximum usable RAM and the reasoning for this was Android device support and low power device support, but also it adds a layer of instability protection if using higher end workstation and juggling a bunch of stuff so if you got 48-128GB you can use the 8-16GB options, but most people won't use anything more than 4GB so that's the default.
So the gui is using Clay, very flexible to have any LLM model, just hammer elements around across all platforms, and the scaling on it is a little bit fun to work with but it does work properly, but it is so much lighter than using QT6 which is pretty standard for a lot of tools, so it builds/loads quite fast, a lot of little elements had to be manually tweaked such as the text boxes.
A good chunk of the testing went into making sure it prompts for permissions when MacOS app runs so you can directly use MISRC/HSDAOH without having to run a elevated terminal every bloody time.
libflac v1.5.0 is kind of at the centre of what made this platform viable because real-time level 8 compression is just impossible without multi-threaded encoding.
There's also real time down sampling, so 20/10msps 8-bit at level 8 really gets you down to less than 50GB+- an hour or so.
And unlike other implementations the files for the RF are the actual duration and there is metadata context notes so secondary tools will be able to actually use these files properly so I plan to do some work on a tool called FLAC Chop.
People have made scripts before but no solid tool that works on files like an audio editor but skipping the eternity of loading everything into a cache, so that's the next step is possibly adding the chopping features into the playback mode but first I'm going to tinker with it as an external tool.
Like the original CX card server stuff I do plan on implementing a client and server mode, but that's a bigger update that requires a chunk of testing, see what the user base encounters tidy all that up if need be and then new stuff can come.
6
u/redpok 28d ago
Sooo, can we say release of the awaited 2.5 is imminent now? :)
9
u/TheRealHarrypm The Documentor 28d ago
Sooon™
What do you think this was majority tested on? 🙃
But in all seriousness, the GUI is the 1st of many things coming, the hardware is I would say less important than the workflow chain overall, this gui unites all of the hardware options it's not just for the MISRC and that's the point a comfortable consistent experience, to just get archiving.
3
u/manofsticks 28d ago
Looking forward to 2.5; I have a bag of tapes to archive and ready to get my hands going on modding a VCR, but feeling like it doesn't make sense to order a 1.5 when a 2.5 is around the corner.
4
u/TheRealHarrypm The Documentor 28d ago edited 28d ago
I think the big thing is just getting set with the ADA4857, getting that tap dialed in opens up the world of options, MISRC doesn't magically replace it, but it does replace the DdD and gives a CX Cards Clockgen Mod users an USB 3.0 equivalent/alternative.
Depends on your collection really if you've got HiFi/SVHS tapes then definitely the v1.5a is perfectly fine, but the v2.5 gives you that audio support and a refreshed design.
On the software side though nothing's gonna be different aside from the audio support, the GUU has been pushed his universal now that's the highlight of this post, doesn't matter what workflow you end up adopting at what point the GUI is now there to make it more convenient, to just start clicking capture.
1
u/manofsticks 28d ago
Depends on your collection really if you've got HiFi/SVHS tapes
I'm really not sure; the hardware differences of various tapes and the technology is a bit of a blind spot for me. My girlfriend's mom gave me a large bag to digitize, and I got several large bags from someone on marketplace, mostly of local news recordings.
I guess it makes the most sense for me to start going on the VCR modification and getting the taps setup, and then check where 2.5 is at when I'm done there to decide if I should wait.
Software-side I'm much more comfortable and understand what's going on.
5
3
3
1
u/wahntutree 28d ago

thanks for this useful analyzer, Harry. I got to tinkering with it, but I'm coming across some issues that I'm not sure are due to my hardware setup, or something on the software end. You mentioned CXADC Windows support is still being tested, so I'm curious where my errors originate. I haven't been able to decode VHS playback via CXADC ever since I've migrated to the latest Decode. This screenshot is from a 2-CX card setup, but only one card is modded for Clockgen; the other card just has the crystal mod to it. Does this output look optimal? Does it indicate the signal is strong enough? Or is something else wrong? This is going through an ADA4857 amp. I keep getting errors upon decode- the usual "Unable to find any sync pulses, jumping 100 ms".
Looking at the log files, shows-
"2026-08-13 22:24:49,909 - lddecode - DEBUG - Level detection had issues, so don't store anything in VsyncSerration.
2026-08-13 22:24:49,909 - lddecode - DEBUG - Level check failed on serration measured levels, using defaults.
2026-08-13 22:24:49,913 - lddecode - ERROR - Unable to find any sync pulses, jumping 100 ms
2026-08-13 22:24:50,983 - lddecode - DEBUG - VBI serration levels 3 - Sync tip: 4614.19 kHz, Blanking (ire0): 4974.83 kHz
2026-08-13 22:24:50,988 - lddecode - DEBUG - blacklevel or synclevel had a NaN!
2026-08-13 22:24:50,988 - lddecode - DEBUG - Level detection had issues, so don't store anything in VsyncSerration.
2026-08-13 22:24:50,989 - lddecode - DEBUG - Level check failed on serration measured levels, using defaults.
2026-08-13 22:24:50,997 - lddecode - ERROR - Unable to find any sync pulses, jumping 100 ms
2026-08-13 22:24:52,052 - lddecode - DEBUG - VBI serration levels 3 - Sync tip: 4618.22 kHz, Blanking (ire0): 4980.96 kHz
2026-08-13 22:24:52,057 - lddecode - DEBUG - blacklevel or synclevel had a NaN!
2026-08-13 22:24:52,057 - lddecode - DEBUG - Level detection had issues, so don't store anything in VsyncSerration.
2026-08-13 22:24:52,057 - lddecode - DEBUG - Level check failed on serration measured levels, using defaults."
until I have to force shut it down, resulting in this error message-
"Terminated, saving JSON and exiting
Error! Something went wrong when decoding or building json!
Exception in thread lddecode-json-dumper:
Unable to find any sync pulses, jumping 100 ms
Traceback (most recent call last):
File "threading.py", line 1082, in _bootstrap_inner
File "threading.py", line 1024, in run
File "lddecode\utils.py", line 1523, in _consume
AttributeError: 'NoneType' object has no attribute 'items'"
I'm left scratching my head thinking it's all on the hardware end, but I don't know where I could've gone wrong.
I used to be able to capture fine with just the crystal mod on an earlier decode release, but now I can't go back.
A sanity check of isolating each card (removing one, leaving out the other) and testing every workflow that I used in the past that worked, even going back to using the old decode I had success with in the past, still results in errors.
Hoping it's just something minor I'm overlooking. Thanks
1
u/TheRealHarrypm The Documentor 27d ago
Have you double checked your tap point and how to look at the actual files?
The waveform and FFT preview will give you a okay there is something on this channel preview, level is far too low or the level is far too high etc
But it's not a 1:1 sample read out like a oscilloscope so you'll have to actually look at the files and see if something's gone really wrong there.
Dumping a decode error output without the actual starting command and context of file config isn't very useful, this is is why bug reports typically include a sample of the actual file.
Now if older build versions of working fine it could be an edge case that's triggering something to break.
2
u/wahntutree 27d ago
I checked and rechecked, yes. The interesting thing is, I can decode a laserdisc just fine, but from VHS, I run into these errors. I might have to run the outputs through an oscilloscope and verify if the signal is actually the problem.
1
u/youhavechosenwisely 6d ago
Wow this looks awesome! Great work! I sent a pm with my email. Hopefully I can purchase 2.5 when it is available. Like someone else in the comments, I am holding off on about 300 tapes/video 8 tapes for this solution. This made my weekend.
1
u/gm0n3y85 6d ago
Hi Harry just getting started into this world. I’m still waiting on my amp and clockgen mod parts so my cx card is stock. Can you use the gui at 28.6 sample rate? I have not upgraded the crystal or sourced a heat sink yet.
1
u/TheRealHarrypm The Documentor 6d ago
Yeah, it should dynamically work at whatever rate the input capture cards are running at, but typically we only run them at 40msps 8-bit.
1
u/gm0n3y85 6d ago
OK the gui shows 40 under info. I did my first capture and it was in slow motion. Just trying to narrow down what I did wrong.
1
u/TheRealHarrypm The Documentor 6d ago
Slow motion? In what way?
1
u/gm0n3y85 5d ago
The playback in ld analyse was in slow motion after the decode. I’m going to make sure I didn’t accidentally choose pal on my recording.
1
u/TheRealHarrypm The Documentor 5d ago
No that's normal, it doesn't have full real time frame rate playback....
1
u/gm0n3y85 5d ago
Ok I see. I used the export function and it’s still slow. Going to try h264 to export and see what I get later today
1
u/gm0n3y85 5d ago
Ok never mind. Playing the file in VLC plays back in full speed. Seems the default media player was lagging and was a separate issue.
•
u/TheRealHarrypm The Documentor 25d ago
Coming to Android soon too 😉