Ntsc-rs – open-source video emulation of analog TV and VHS artifacts
Posted by gregsadetsky 3 days ago
Comments
Comment by npunt 3 days ago
"Whatever you now find weird, ugly, uncomfortable and nasty about a new medium will surely become its signature. CD distortion, the jitteriness of digital video, the crap sound of 8-bit - all of these will be cherished and emulated as soon as they can be avoided. It’s the sound of failure: so much modern art is the sound of things going out of control, of a medium pushing to its limits and breaking apart. The distorted guitar sound is the sound of something too loud for the medium supposed to carry it. The blues singer with the cracked voice is the sound of an emotional cry too powerful for the throat that releases it. The excitement of grainy film, of bleached-out black and white, is the excitement of witnessing events too momentous for the medium assigned to record them." - Brian Eno
Comment by harrall 3 days ago
Instead it’s about chasing the era. For example, the 80s/90s seemed like a happier time, for both those who grew up in it and those who don’t, and imperfections like VHS artifacts put the viewer in that mindset.
Comment by bruce511 3 days ago
For those born after an era it can be easy to romanticize an era. And for those who lived through it, it can be easy to remember the good, and forget the bad.
Growing up in the 80s with no cell phones meant it was much harder to co-ordinate schedules, events, social events etc. No "I'm outside, where are you?"
Ultimately each era is different. Some good, some bad. But in 20 years expect your kids to be idolizing the "20s". "Such a simpler time than now..."
"You got to stay home for a year? What fun...."
Comment by pezezin 3 days ago
I disagree with this, the lack of cellphones meant that once people agreed to a plan, they stuck to the plan. "Meet next Saturday at 17:00 at the main square", and everybody would be there.
Nowadays people keep arguing and changing plans until the very last minute, it's exhausting.
Comment by bensyverson 2 days ago
Comment by BretonForearm 3 days ago
I bet the first viewers of VHS were busier with marveling at color, compactness and convenience instead of thinking of the new medium as something ugly and nasty. New technology that gets very popular usually starts as state of the art and impressive, and it's only in retrospect that people think of it in condescending way.
Comment by phire 3 days ago
But the quality/color was always a noticeable downgrade from broadcast quality video (and that was a noticeable downgrade from film). But the sacrifice was absolutely worth it.
It is notable that LaserDisc only came out two years after VHS (and before it reached mass adoption), and it could produce (and often exceed) prefect broadcast quality video. Anyone could see the improvement.
Yet LaserDisc never had much success outside of enthusiasts, simply because it couldn’t match the convenience of VHS. Well… it was mostly the lack of recording, but that’s an aspect of convenience too.
Comment by donw 3 days ago
The lack of recording was also a killer, if you went with VHS you could record and watch home movies if you had a camera, read videos at the video store, record from broadcast TV, it was much more versatile.
Comment by giantrobot 2 days ago
Many TVs people already had in the 80s didn't have RCA connections so VCRs were connected via twin lead to F connector adapters. They had the same noise as the antenna or cable input. So your commercial tapes usually looked about as good as broadcast. If you actually read the instructions with your VCR to set the timing correctly recorded broadcasts in SP mode also tended to look pretty good.
In absolute terms the VHS video was worse than the original broadcast but on the TVs we had it was hard to notice.
This definitely changed through the 90s. Larger and brighter tubes made the deficiencies of VHS more noticeable. Moving to cable TV from antenna was also very noticeable and made VHS quality more apparent.
If you happened to see a LaserDisc video as a comparison to VHS then the quality difference was stark. As much as VHS and DVD by the late 90s and early 00s. However I think that direct comparison was out of reach for most people.
Comment by osullivj 3 days ago
Comment by ahartmetz 3 days ago
DVD resolution seemed fine to me at the time - it does not seem fine anymore.
Cassettes were not great, not terrible compared to CDs. That is still the case because stereo audio doesn't get much better than CDs.
Conclusion: Whether something seems good at the time depends on availability of something similar but better.
Comment by unleaded 2 days ago
Comment by flir 3 days ago
Comment by nikau 3 days ago
Comment by npunt 3 days ago
Comment by achairapart 3 days ago
Comment by dylan604 3 days ago
Comment by npunt 3 days ago
Comment by breezybottom 2 days ago
Comment by Animats 3 days ago
Comment by myself248 2 days ago
Comment by sharperguy 2 days ago
Comment by reactordev 2 days ago
Yes, yes we will. And we'll throw random ad breaks in there in the middle of the dialog just for shits and giggles, unskippable of course, at a +10db volume too.
Yes, just like we make remakes of Windows 95 in typescript, we will make retro video streaming platforms with spinners and buffering effects.
Comment by WhrRTheBaboons 2 days ago
now, i am not so optimistic we will get there, however.
Comment by stgo 3 days ago
- Every new medium obsolesces the previous one - which then becomes the content, or the art form, of the new medium.
- Once the old ground becomes content of a new situation, it appears to ordinary attention as aesthetic figure. At the same time, a new retrieval or nostalgia is born
Comment by Kaliboy 3 days ago
I was watching a live worship session on Youtube and it was beautiful, kept my mind at peace.
Now mind you at the same time I was also a perfectionist, which means you tend to see imperfections in others.
Now at a certain point the singer's voice broke as she was hitting a high note. But before I could mentally register the imperfection I heard or felt such a clear gentle voice that said: "that was the most beautiful part".
In an instant it reframed the imperfect into perfect for that moment and thus forever.
And that's what your quote encompasses. Good read, thanks for sharing.
Comment by npunt 3 days ago
Related is that a lot of cultures embrace intentional imperfections in art for spiritual reasons, as it conveys authenticity and humility in the face of perfection. E.g. Persian flaw [2].
[1] https://en.wikipedia.org/wiki/Gimme_Shelter
[2] https://en.wikipedia.org/wiki/Persian_carpet#cite_note-68
Comment by flir 3 days ago
At about 1:30, just after the "I was very nervous" line, Haley pushes her voice until it breaks. I found it a lovely little grace note, emphasizing the lyric.
Comment by QuackyTheDuck 3 days ago
Comment by jeffreygoesto 3 days ago
Comment by 101008 3 days ago
Comment by ErroneousBosh 2 days ago
In Islamic art, the artist often leaves a mistake in a pattern, or a little blob, or some error somewhere in it, because only God is perfect.
In Japan, craftsmen will leave a tiny scratch on an immaculately polished piece of wood, to show how perfect the rest is.
Comment by PowerElectronix 3 days ago
But there are also certain qualities in analog audio or video that were lost or severely degraded in the technologies that came after. For example, you need an extremely high bitrate mp3 to get to the fidelity of a vinyl (CDs can achieve it without issues, though) and in crts image clarity in movement is still unmatched in modern displays, and will probably always be due to the sample and hold nature of modern displays.
Comment by BobbyTables2 3 days ago
Hmm. Now that we have 1 terabyte 1000MB/s NVme drives, we can really be nostalgic about the 1.44Mb 3.5” floppy drives that have about 30KB/s throughput…
Might even be practical with the latest trends in storage pricing…
Comment by breezybottom 2 days ago
Comment by exsysadmin 2 days ago
https://en.wikipedia.org/wiki/Quantization_(signal_processin...
Comment by breezybottom 2 days ago
Comment by bel8 3 days ago
Comment by qubex 3 days ago
Comment by pipes 3 days ago
Comment by IshKebab 3 days ago
What?
Comment by picofarad 2 days ago
Maybe. I lived through the 90s as a cd purchaser and I tend to agree, CDs were real nice, but different. By the time I had a cd player, tapes had exotic coatings and EQ-trickery to mask the hiss and whatnot of tape media.
Comment by hackernulls 3 days ago
Comment by xahrepap 3 days ago
Comment by BigTTYGothGF 3 days ago
Comment by superdisk 3 days ago
Comment by jmbwell 3 days ago
Comment by zephen 3 days ago
Comment by RgrTheShrubbr 3 days ago
Comment by doubletwoyou 3 days ago
Comment by picofarad 2 days ago
Comment by gregsadetsky 3 days ago
I was also looking into https://codeberg.org/fsphil/hacktv which generates a variety of different analog tv signals (meant to be broadcast using HackRF) - but yes, I want the opposite - an analog-receiver-emulator...? And one that would be "ok" with incorrect signals // fail like an analog TV would... :-)
Comment by picofarad 2 days ago
It can't be that hard for someone with skill and determination!
Comment by ErroneousBosh 2 days ago
I'd donate heavily to one that would actually let you send decodable teletext pages in the output ;-)
Comment by genewitch 2 days ago
Comment by ErroneousBosh 2 days ago
For teletext it would display 40x25 text with eight colours (the colour control codes took up a character space) and simple block graphics, which was stored in the first 25 lines or so above the top of the screen.
In the UK, the BBC ran Ceefax and ITV ran Teletext, which you could access with a button on your TV remote. These days it's actually possible to recover them from VHS recordings with really careful analysis (the bandwidth wasn't really there for it to work with a naive data slicer). During the day BBC2 ran "Pages from Ceefax" with some library music behind, when it didn't have Test Card F up (making Carole Hersee the most broadcast face on British TV, probably even to this day).
Comment by zellyn 3 days ago
I also ported it to JavaScript (linked from above page)
Comment by gblargg 3 days ago
Comment by JdeBP 3 days ago
And of course PAL and Hanover bars.
Comment by stevesimmons 3 days ago
Comment by reaperducer 3 days ago
See also: Picture At Last!
See also: System Essentially Contrary to the American Method
Comment by ReptileMan 3 days ago
Comment by cf100clunk 2 days ago
NTSC = ''never twice same colour''
SECAM = ''système électronique pour confondre les americaines.''
Comment by LeFantome 3 days ago
Comment by grishka 2 days ago
Though in my case the purpose was to digitize my video tapes and teach myself about DSP.
Comment by throwaway2046 2 days ago
Comment by grishka 2 days ago
It's not "VHS footage" though, but it can generate all kinds of analog video signals, some of which my decoder can decode.
Comment by alok-g 3 days ago
Comment by Ylpertnodi 2 days ago
Comment by peacedrone 3 days ago
Comment by liampulles 3 days ago
Comment by devindotcom 3 days ago
Comment by nemomarx 3 days ago
Comment by devindotcom 3 days ago
That said, I would not be surprised to see camcorders, DV or VHS or whatever, rise up as a Polaroid-like alternative to smartphone cameras! Old digital point and shoots are already popular that way.
Comment by xattt 3 days ago
I ended up reaching CFTO (CTV Toronto), and took the footage over to Channel 9 Court. What happened next took me by complete surprise.
The flagship station of a national network had no deck in the building that would play HDV mini DV tapes. I hadn’t brought my camcorder or my MBP either, so I couldn't quickly convert it into a format that they could use.
I ended up going home, and exporting via FCP and burning onto a DVD. It worked, I got to see the inside of a news station and I got $135 for it. The news broadcast later that day showed about 10 seconds of my footage, which by extrapolation, was the highest-ever hourly rate I’ve ever earned: ~$48,600/hour.
The lesson here was that DV and DV-adjacent workflows were difficult in a pro context even when they were mainstream in the consumer market.
Comment by kraussvonespy 3 days ago
Comment by ClikeX 3 days ago
As for your second point. A friend of mine's little sister asked him for help setting up the vintage camera she bought. And it was an early 00s digital point & shoot.
Comment by danaris 3 days ago
Give the idea that this is something from another reality.
Comment by bufordsharkley 3 days ago
The model (HDRCX405) is wonderful, 30x optical zoom a real value-add over smartphones, but also I just love the ergonomics in general, very easy to pick it up, and start a video within a second.
That said, Sony discontinued the low-end handicam line last year (this model went from $200 new to $800 used), which is really unfortunately, right as I hope this niche might gain momentum.
Comment by numpad0 3 days ago
The imaging device used in electronic camcorders before the transition to CCD had visibly gray whites. They weren't so great by any standards. Hence very few chases it, with nostalgia being the sole reason to do it.
Comment by Yeask 3 days ago
Comment by MycroftJones 3 days ago
Comment by myself248 2 days ago
Comment by 1bpp 3 days ago
For ham radio-like sounds, maybe use SDR software like SDR++ and just pipe in a regular audio input, then mess with the decoding settings like LSB/USB.
Comment by atum47 3 days ago
Some day I might try it again using modern css
Comment by rpastuszak 3 days ago
You mind reader you
Comment by gregsadetsky 3 days ago
I'll email you. sorry everyone, just two pal's pall'ing around xx
Comment by agentifysh 3 days ago
Comment by esafak 3 days ago
Comment by BobbyTables2 3 days ago
I wish my VCR was that good in LP mode back then!
Comment by ClikeX 3 days ago
Comment by mgaunard 3 days ago
Comment by grishka 2 days ago
Comment by emayljames 3 days ago
Comment by mgaunard 3 days ago
Except PAL/SECAM don't have any of the color issues of NTSC.
Comment by cf100clunk 2 days ago
Comment by mgaunard 2 days ago
The 30fps of NTSC is actually associated with "cheap-looking" video.
Comment by cf100clunk 2 days ago
Comment by sillywalk 3 days ago
Comment by zzo38computer 3 days ago
Comment by throwaway2046 3 days ago
Comment by zzo38computer 2 days ago
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAU (6.283185307179586476925286766559005768394)
static unsigned char head[16];
static float fopt[127];
static int iopt[127];
static float*tab;
static float*buf;
static float y,i,q,v,phase;
static int n,s,width;
#define R(a) ((a)>=0?buf[a]:0.0)
#define C(a) (tab[((a)+iopt['t']+(int)fopt['m'])%iopt['t']])
int main(int argc,char**argv) {
fopt['1']=0.966882;
fopt['2']=0.623557;
fopt['3']=-0.274788;
fopt['4']=-0.635691;
fopt['5']=-1.108545;
fopt['6']=1.709007;
iopt['y']=12;
iopt['i']=iopt['q']=24;
fopt['y']=12.0;
fopt['i']=fopt['q']=24.0;
fopt['l']=-11.0;
fopt['h']=92.0;
fopt['c']=0.009574;
fopt['s']=0.8;
fopt['a']=fopt['m']=fopt['p']=fopt['f']=0.0;
fopt['t']=12.0;
iopt['t']=12;
iopt['v']=0;
iopt['z']=0;
fread(head,1,16,stdin);
width=(head[8]<<24)|(head[9]<<16)|(head[10]<<8)|head[11];
for(n=1;n<argc;n++) if(argv[n][0] && argv[n][1]=='=') {
iopt[argv[n][0]&127]=strtol(argv[n]+2,0,10);
fopt[argv[n][0]&127]=strtof(argv[n]+2,0);
}
buf=malloc(width*sizeof(float));
tab=malloc(iopt['t']*sizeof(float));
if(!buf || !tab) {
fprintf(stderr,"Allocation failed\n");
return 1;
}
while(fopt['m']<=0.0) fopt['m']+=fopt['t'];
while(fopt['p']<=0.0) fopt['p']+=fopt['t'];
if(!iopt['v']) iopt['v']=(3*iopt['t'])/4;
for(n=0;n<iopt['t'];n++) tab[n]=sinf(fopt['f']+TAU*((float)n)/fopt['t']);
fwrite(head,1,16,stdout);
if(iopt['z']) for(;;) {
if(!s) y=i=q=fopt['a'];
n=fgetc(stdin);
if(n==EOF) break;
n=(n<<8)|fgetc(stdin);
buf[s]=v=(fopt['h']-fopt['l'])*((float)n)/65535.0+fopt['l'];
fgetc(stdin); fgetc(stdin); fgetc(stdin); fgetc(stdin); // unused input channels
y+=v-R(s-iopt['y']);
i+=v*C(s)-R(s-iopt['i'])*C(s-iopt['i']);
q+=v*C(s+iopt['v'])-R(s-iopt['q'])*C(s+iopt['v']-iopt['q']);
// Red
v=fopt['s']*y/fopt['y'];
n=(int)fmax(fmin(v*65535.0,65535.0),0.0);
putchar(n>>8); putchar(n);
// Green
v=fopt['s']*i/fopt['i'];
n=(int)fmax(fmin(v*65535.0,65535.0),0.0);
putchar(n>>8); putchar(n);
// Blue
v=fopt['s']*q/fopt['q'];
n=(int)fmax(fmin(v*65535.0,65535.0),0.0);
putchar(n>>8); putchar(n);
// Alpha
putchar(fgetc(stdin)); putchar(fgetc(stdin));
if(!(s=(s+1)%width)) fopt['m']+=fopt['p'];
} else for(;;) {
if(!s) y=fopt['a'],i=q=0.0;
n=fgetc(stdin);
if(n==EOF) break;
n=(n<<8)|fgetc(stdin);
buf[s]=v=(fopt['h']-fopt['l'])*((float)n)/65535.0+fopt['l'];
fgetc(stdin); fgetc(stdin); fgetc(stdin); fgetc(stdin); // unused input channels
y+=v-R(s-iopt['y']);
i+=v*C(s)-R(s-iopt['i'])*C(s-iopt['i']);
q+=v*C(s+iopt['v'])-R(s-iopt['q'])*C(s+iopt['v']-iopt['q']);
// Red
v=y*fopt['c']/fopt['y']+i*fopt['1']*fopt['c']*fopt['s']/fopt['i']+q*fopt['2']*fopt['c']*fopt['s']/fopt['q'];
n=(int)fmax(fmin(v*65535.0,65535.0),0.0);
putchar(n>>8); putchar(n);
// Green
v=y*fopt['c']/fopt['y']+i*fopt['3']*fopt['c']*fopt['s']/fopt['i']+q*fopt['4']*fopt['c']*fopt['s']/fopt['q'];
n=(int)fmax(fmin(v*65535.0,65535.0),0.0);
putchar(n>>8); putchar(n);
// Blue
v=y*fopt['c']/fopt['y']+i*fopt['5']*fopt['c']*fopt['s']/fopt['i']+q*fopt['6']*fopt['c']*fopt['s']/fopt['q'];
n=(int)fmax(fmin(v*65535.0,65535.0),0.0);
putchar(n>>8); putchar(n);
// Alpha
putchar(fgetc(stdin)); putchar(fgetc(stdin));
if(!(s=(s+1)%width)) fopt['m']+=fopt['p'];
}
return 0;
}Comment by Vaslo 3 days ago
Comment by RgrTheShrubbr 3 days ago
Comment by gsich 3 days ago
Comment by RgrTheShrubbr 1 day ago
Comment by pipes 3 days ago
Comment by 1xn 3 days ago
Comment by ramses0 2 days ago
Comment by joshuamcginnis 3 days ago
Comment by therepanic 3 days ago
Comment by fnord77 3 days ago
Comment by quantummagic 3 days ago
Comment by elpocko 3 days ago
Comment by Velocifyer 3 days ago
Comment by fs90 3 days ago
Comment by nekiwo 3 days ago
Comment by mrandish 3 days ago
The reason is that full bandwidth 6 Mhz analog composite or component video could look wonderful. If you ever have the chance to see a 2-inch quad VTR playing a master tape on a broadcast quality monitor pleased do. I suspect you'll be shocked at how good it looks, even to modern eyes. Yes, the absolute resolution is lower, but the magic of those analog broadcast standards was how gracefully they fit so much image into 6 Mhz of bandwidth. Conversely, VHS tape recording was the absolute worst, most compromised form of that. At the time, it was the best that could be done at consumer prices. But no one ever thought it was remotely good quality in any sense other than perhaps "better than nothing", and even that was hardly unanimous.
There's something about full bandwidth broadcast quality analog composite video that can be genuinely aesthetically pleasing, even compared to digital HDTV. Sadly, very few consumers ever got to see it in its pure, unadulterated form. Even live broadcasts, after being sent up a transmitter tower and down an aerial antenna, were a decimated form of the original signal at the head end (although leagues better than VHS). Yes, modern digital IS better in almost all ways, but in a few ways there was, and still is, something uniquely 'good' about that analog head-end video signal. I won't say 'better' because that's an aesthetic and stylistic judgement but definitely 'good'. Whereas, there's literally nothing good about VHS. At no point ever did a 1980s video creator look on their equipment shelf, see a VHS camcorder next to... literally any other camera or recording system, and say "I'll take the VHS today because it's the better tool for this job."
There's one context where I'm a huge proponent of recreating our analog past and that's when viewing 1980s and early 90s computer or game console graphics created to be displayed on 15khz analog composite video displays. That's when analog CRT emulation via GPU pixel shaders should always be used. The square razor sharp, hard-edged pixels of such content as seen on modern digital flat screens is an inaccurate distortion of the past because no one in that past, like the people involved in the creation or consumption of that media, ever saw square pixels like that. The only displays we had then were CRTs and images made for 15 Khz analog CRTs look not only different but much better on the displays they were designed on and for (or a good simulation of those displays).
Comment by natas 3 days ago
Comment by BashagtBot 3 days ago
Comment by T3RMINATED 1 day ago
Comment by modinfo 3 days ago
Then even we could have filter like: VHS Panasonic, VHS Sony...
This would be very interesting project.
Comment by jmbwell 3 days ago
Comment by marginalia_nu 3 days ago
Comment by caminanteblanco 3 days ago