Skip to content

stewdio/jed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

 Jed’s Other Poem
(Beautiful Ground)
 music video

Music video for “Jed’s Other Poem (Beautiful Ground)”—a song by indie rockers Grandaddy, from their sophomore record The Sophtware Slump (2000). Programmed in Applesoft BASIC on a vintage 1979 Apple ][+ computer, this is the world’s first open-source music video (2005). Enjoy the video and read a complete description of its creation and reception here: https://stewartsmith.io/work/jed


Element Party
Music Grandaddy
Concept, direction, execution Stewart Smith
Camera Jeff Bernier
Lighting John Paul Chirdon



20th anniversary

On the occasion of this music video’s 20th anniversary (September 2005–2025), I’ve decided to take the long-overdue step of publishing its code to GitHub. Originally open-sourced in December 2005 (only a few months after Linus created Git—and well before GitHub existed), the ZIP file containing the code was available solely from my own website. This new repository retains those original source files:

File name Description
jed.bas Applesoft BASIC source code as plain text.
jed.dsk Binary disk image for emulators.
jed.aif Code as audio for use with BLOAD command on vintage Apples.

The original README message is included here below. I’ve updated the LICENSE to the most recent version of the Creative Commons BY-NC-SA license, which applies to the three original files listed above. (The LICENSE file accompanies them in the code folder.) Note that this code package does not include (and has never included) the music track. Go buy that from Grandaddy! Thank you to V2 Records’ legal team for granting me permission to showcase my work twenty years ago. And thank you to Jason Lytle, Grandaddy, and fans of this video.


How to: Load onto a vintage Apple

You’ve found yourself a working vintage Apple II computer. (Congratulations! That’s an increasingly difficult thing to do.) Perhaps it’s an Apple ][, or ][+, //e, or even a //c. What really matters is that your Apple II has a functioning audio cassette interface with a 3.5 mm (⅛ inch) minijack port.

You will need a separate device that can ① playback the included jed.aif audio file, and ② can pipe that sound out through a 3.5 mm (⅛ inch) minijack port. (If you’re playing the audio from a device that does not have a minijack port, such as a contemporary iPhone, you’ll need an adapter—for example, a USB-C-to-minijack adapter.) Finally, you will need a ③ male-male 3.5 mm (⅛ inch) audio cable to physically connect the audio port on your device (or adapter) to the audio port on your Apple II.

Boot up your Apple II, then at the command prompt type LOAD, and press Return. This will appear to halt the machine as it waits for input from its minijack port. Make certain that your two devices are connected via your minijack audio cable. Then on your playback device, play the jed.aif audio file in its entirety. Once this completes, your Apple II will return control to you. Type LIST and press Return to verify that the code is now in memory. (If you grow impatient during the listing process, press the CTRL and C keys together to exit the listing procedure early.) Type RUN and press Return to execute the program. (You can also press the CTRL and C keys together to exit the program early.) Enjoy.

To see this process in action (using a first generation iPad as the playback device), visit Panic Software’s May 2010 blog post “An Apple //e, an iPad, and Jed” (pictured above).


How to: Load into an emulator

My Apple II emulator of choice is Virtual II for macOS. While I will use that for illustration purposes, you ought to be able to extrapolate these instructions to your own platform / emulator combination. Once you have downloaded and installed Virtual II, you will need to separately download the hardware ROM images and place them into the proper folder. (The ROM files are not included in the Virtual II application for copyright reasons. Those linked instructions will guide you through the process of finding and installing the ROMs in your correct local folder.) You can download the ROMs for all five supported machines here, but I had more luck with the apple2_roms.zip located here.

Now that you have an Apple II emulator, and its ROMs, it’s time to load Jed. From your Virtual II application bar, select FileNew MachineApple ][+. The virtual machine will boot, but it does not yet have a disk to complete its boot from. Simply drag and drop your jed.dsk file from Finder onto the emulator’s graphic representation for Drive 1 — or from your Virtual II application bar, select MediaInsert Diskette Image…, then locate and select your jed.dsk file. The virtual machine will finish booting with Jed loaded. Because jed.dsk was formatted with the INIT JED command, the JED program will automatically execute as part of the boot process. Again, you can press the CTRL and C keys together to exit the program early.


Original README

Monday, 12 December 2005.

After many requests for Jed’s source code I finally figured out a simple way to get it off the Apple ][+ without transcribing it. The old Apple has an audio-out for saving data to cassette tape—the data is encoded in tones that sound like a traditional modem. I plugged the old Apple’s audio-out into my PowerBook and recorded the noise. Then I loaded this into my Virtual II emulator as a virtual cassette. Perfect.

For your enjoyment I’ve exported the code as an AIF audio file (like a cassette), a binary disk image for emulators, and a plain text (BASIC code) file. Have fun running and tweaking as you see fit. Although some spots of code are embarrassingly inefficient, or are commented out entirely, I’ve made no effort to clean it up and have left everything exactly as it was during filming. You’ll also notice that the emulation falls slightly out of sync with the music, which is not provided—go out and buy the record yourself! Despite best efforts to scale the timing variables appropriately I was thrown off by numerous immutable factors. Minor post-production edits were required to keep it all together. I don’t think this diminishes from the project’s “hardcore” status.

About

Music video for Grandaddy’s song of the same name.

Topics

Resources

Stars

Watchers

Forks

Languages