Wozamp is a simple network music player for the Apple II. It can:
- Browse a network share (FTP only) and play sound media files (almost any format).
- “Play All” and “Random” modes
- Fast-forward and rewind, pause and stop
- Display cover art from current directory’s cover.jpg, or embedded in media files
- Display a VU meter
- Search webradios and stream from online webradios
- Display metadata (ID3 tag)
- Play videos with sound
Requirements:
Wozamp should run on any 64k Apple II with a serial card. In addition to that, it requires a surl-server proxy to handle the transcoding and resampling. Video playback requires two serial ports. Video playback is not yet compatible with the IIgs.
User manual:
Wozamp’s user manual may give you a good idea of what it can do, and how to set it up.
Screenshots:
Installing the surl-server proxy:
See the dedicated surl-server page, or this instruction video.
Transferring the floppy to your Apple II:
Download the latest floppy image from the Github Releases page. Use the image corresponding to your Apple II:
Apple II model | Floppy image |
][+, IIe, 6502 CPU with 64kB of RAM | wozamp-6502.po |
IIgs | wozamp-iigs.po |
//c, //c+, IIe enhanced or platinum, 65c02 CPU with 128kB of RAM | wozamp-65c02.po |
Transfer it to your Apple II using ADTPro (you may prefer the video format), or with your STP floppy if you have it setup.
Playing music
For now there are three ways to play music:
- Input an URL to a music file or stream on the welcome screen, like
http://8bit.fm:8000/live
. Once the file finished playing or you press Escape, you will be able to enter another URL on the welcome screen. - Input an URL to an FTP directory on the welcome screen. You will then be able to browse the contents of the FTP server, and play files or directories from there.
- Open the RadioBrowser from the welcome screen, and search for a webradio.
To make it easy for people with no FTP server available, the surl-server proxy image ships with an anonymous FTP enabled. Navigate to ftp://surl-server/ with a modern computer to put some files in it, and use the same URL in Wozamp.
The Audiophile metrics
Wozamp achieves a very tolerable sound quality thanks to the use of a 11.52kHz sampling rate and a state of the art 5-bit DAC. You can enhance the experience further by replacing your serial cable with a gold-plated serial cable (*actual results may vary).
Playing videos
To play video using Wozamp, you will need to use two serial cables and USB serial adapters. The second serial cable should be plugged into the printer port (or slot 1), and the corresponding USB adapter is named aux_tty in surl-server’s configuration file. More information about this is available in Wozamp’s user manual and in the surl-server setup page.
Playing videos is only possible with a 65*02 Apple II (like a ][+, //c, IIe Enhanced or Platinum). You can expect 13 to 23 fps, depending on how dynamic the video is and the settings you use.
The proxy’s CPU power is also, for once, to be taken into account; a Raspberry Pi 3 can’t decode faster than realtime, so preloading can be a bit long, depending on the streamed video’s duration.
Webradios
Wozamp makes use of the nice API on RadioBrowser to let you search in a database of 50.000 webradios all over the world, and stream from any of them.
In the news
Thanks
Many thanks to Oliver Schmidt for his KansasFest presentation of A2Stream, which made the theory of PWM clear to me. I want to make clear that I did not invent any revolutionary concept here: pulse-width modulation sound has been made long ago, at least since 2005 by Michael J. Mahon, by Oliver with A2Stream, by Kris Kennaway with II-Vision.
Thanks to Peter Ferrie for his ideas on low-level optimisations, the sound’s better partly thanks to him!
I think my only innovation is to do it over serial, making it possible to stream music from the network with an Apple //c, the one computer in the series with no expansion slot and no way to add an Uthernet card. But I’m not even sure. I just wanted to do it.
Thanks also to Bits&Terminal Jeff for the very cool name idea and to LeJun for the logo basis!