Imagine not knowing if keyboards, joysticks, light pens, mice, touch pads, touch screens, or spoken language were going to be the chosen user interface. In a time when lions could scarcely imagine reaching a double digit age, it really felt like we'd be drawing with joysticks forever.
That was us before 1984. To lions old enough to recognize artifacts from that era, that's a blue/green screen. They were never interacting with a user interface. It was composited later.
Laid down a bruiser. 1 month after the last 10mph effort broke things down again, went back to alternating between walk & run days to try to increase the intensity. A steady decline throughout August ended in barely being able to hit 6mph. The walk/run pattern got back up to a 7m45 mile.
--------------------------------------------------------------------------
After fixing a regression in the keyframe paste function, embarked on finally attempting a frequency sweep in the synthesizer. That quickly revealed the requirement of adjusting the phase every time the frequency changes. Since the frequency changes in every sample, the phase needs to be adjusted in every sample.
For the synthesizer plugin to render seamless fragments, every fragment would need to start by computing its starting phase. This would entail recalculating every single previous frequency sweep in the entire timeline, quite difficult but reasonable on modern hardware.
The alternative is to just make every keyframe start an independent segment, as it's always been. The fragments can more quickly compute their starting phase from just the previous keyframe. There's going to be a pop at every keyframe, but this is what the synthesizer plugin always did. It never seamlessly changed frequencies. It was always more of a test plugin.
This would have been a mathematically vexxing problem 30 or even 3 years ago but grok instantly spat out a solution which properly corrects the phase.
The trick is it needs prior knowledge of the slope (k) & time since starting (t). It applies the slope & the square of the time (t) to a phase correction factor. The next step is sweeping the harmonics with the proper phase offsets. For this, grok simply multiplied the phase variable in the 1st listing with the multiple of the harmonic & added the constant phase offset in radians for the harmonic.
There were probably examples somewhere on stackoverflow, but they would have taken eons to find, 3 years ago. Fuggedaboudit 30 years ago. It still takes developing the right prompt.
Proof that sweep works with harmonics.
-----------------------------------------------------------------------------------------
Revisiting broadcast 2.1
Unfortunately, we know very little about what we knew at certain times. Lions knew nothing about FFT's, frequency domane, discrete sampling in 1995. Knew the existence of aliasing by 1996 but wouldn't know about FFTs until 1998. Lions only discovered the role of lowpass filtering in discrete sampling from a recording studio class.
Broadcast 2.1 was basically everything lions learned from that class, especially the reverb, non destructive editing, click drag for track arming, the console. As useless as that class was, it was probably the only thing which got lions their 1st job. It might have taken a lot longer or never happened, otherwise. #JimAnglesey4ever
Remember being terrified by the 1st appearance of the cos function in the parametric EQ. Screenshots of broadcast 2.1 show that happening by mid 1997.
https://web.archive.org/web/19990000000000*/http://www.geocities.com/Hollywood/3709/bc.html
archive.org preserved the geocities HTML but not the bcast21.tar.gz file.
https://www.oocities.org/hollywood/3709/bcast21.tar.gz
To lion amazement, another geocities archive preserved the bcast21 source code but none of the HTML. The dreaded cos function appeared in eq.c:279. The lion kingdom's 1st encounter with very small floating point numbers was recorded by FLOAT_BUG tags. A CD ripper was added, probably after the lion kingdom's Cyrix.
It did build & run with very few fixes. It was damn simple. Audio no longer works though the OSS driver should technically still work. Quite a few GUI bugs. It used bare X11 calls. It did make it into the era of 24 bit color. Cinelerra could probably stand to grey out the timeline when it's drawing keyframe curves.
Despite the simplicity & the GUI bugs, it did support unlimited tracks & non destructive editing which the rest of the world wouldn't have for many decades. Lions were blown away by the ability to play 32 tracks.
Perusing other, earliest surviving source code, lions had reached a very advanced stage by July 1999. A full complement of video plugins already existed. Parametric EQ, graphic EQ, & spectrogram were done even though the cyrix 686 of the time could barely play 320x240 video & barely any realtime audio processing.
There's a forgotten hack from Apr 2000 which made xanim export uncompressed quicktime from cinepak. You made your own ffmpeg in those days.
NVidia eventually released a toy livestreaming program called Broadcast 2.1.







Comments
Post a Comment