WAV File and ZCM File streaming player.
Posted: Tue Jun 18, 2024 11:30 pm
FIXED:
WEDNESDAY, JULY 17th, 2024. Updated to 1.1.
Player will now activate fast serial mode on ROM version r47 and higher, this will allow it to play 16 bit 44100 Hz STEREO WAV files
Simple text interface PCM Audio player. Supports 16 bit Stereo & Mono PCM WAV files. 8 bit is not supported because 8 bit signed audio data (which the VERA needs for 8 bit play) is not a supported part of the WAV file specification. 8 bit WAV files use 8 bit unsigned data. That doesn't work on VERA (I know, I tried. BIG NOPE) ... Also supports ZCM files and will support 8 bit ZCM files. It will play the HUGE ZCM's created by my convertor program also on this forum.
Successfully tested on hardware with a Mono stream all the way to the Max VERA PCM rate which is 48828.15 khz. 48khz is Digital DAT rate. So very high quality Mono audio. I got stereo to work successfully on Hardware up to 16bit 32khz with the Burst rate enabled on r47. Up to about 28khz Stereo should work on any X16 hardware. Unfortunately the X16 just doesn't have quite enough oomph to successfully play 44100 hz 16 bit stereo files. If you want stereo you need to settle for around 30 khz sample rate on hardware. On HOSTFS 44100 stereo does play fine, but not on actual Hardware.
(This is no longer true. Will play 44100 stereo on hardware if r47 or higher)
This program was written in XC=BASIC with a good bit of Inline Assembly for the actual "Feeding the PCM FIFO" part of the code. Source code and a few sample Audio files are included in the archive. Please feel free to ping me if you find a file you think it should play but it will not.
OLD VERSION: NEW ONE IS BELOW
Added another version that I think is better. I debated opening a New thread but I don't want to clutter things up. Here is the new version. Different approach to the code. The Main Module is written in BASLOAD. The program loads a Hi-Ram BIN with the PCM Playing routine in compiled XC=BASIC (all source code included) I think XC=BASIC has a bug (or 2) in it's string handling routines. The above program occasionally (but infrequently) develops some string variable corruption which makes things go wrong. This version is Solid so far as I can tell. The XC=BASIC module does NO String Handling.
Controls: SPACE BAR - Pause / UnPause ESC - Exit play Up/Down Arrows - Volume Control
Player 1.0 was downloaded 87 times.
NEW VERSION 1.1
User Interface is deliberately similar to my BMX viewing program.
WEDNESDAY, JULY 17th, 2024. Updated to 1.1.
Player will now activate fast serial mode on ROM version r47 and higher, this will allow it to play 16 bit 44100 Hz STEREO WAV files
Simple text interface PCM Audio player. Supports 16 bit Stereo & Mono PCM WAV files. 8 bit is not supported because 8 bit signed audio data (which the VERA needs for 8 bit play) is not a supported part of the WAV file specification. 8 bit WAV files use 8 bit unsigned data. That doesn't work on VERA (I know, I tried. BIG NOPE) ... Also supports ZCM files and will support 8 bit ZCM files. It will play the HUGE ZCM's created by my convertor program also on this forum.
Successfully tested on hardware with a Mono stream all the way to the Max VERA PCM rate which is 48828.15 khz. 48khz is Digital DAT rate. So very high quality Mono audio. I got stereo to work successfully on Hardware up to 16bit 32khz with the Burst rate enabled on r47. Up to about 28khz Stereo should work on any X16 hardware. Unfortunately the X16 just doesn't have quite enough oomph to successfully play 44100 hz 16 bit stereo files. If you want stereo you need to settle for around 30 khz sample rate on hardware. On HOSTFS 44100 stereo does play fine, but not on actual Hardware.
(This is no longer true. Will play 44100 stereo on hardware if r47 or higher)
This program was written in XC=BASIC with a good bit of Inline Assembly for the actual "Feeding the PCM FIFO" part of the code. Source code and a few sample Audio files are included in the archive. Please feel free to ping me if you find a file you think it should play but it will not.
OLD VERSION: NEW ONE IS BELOW
Added another version that I think is better. I debated opening a New thread but I don't want to clutter things up. Here is the new version. Different approach to the code. The Main Module is written in BASLOAD. The program loads a Hi-Ram BIN with the PCM Playing routine in compiled XC=BASIC (all source code included) I think XC=BASIC has a bug (or 2) in it's string handling routines. The above program occasionally (but infrequently) develops some string variable corruption which makes things go wrong. This version is Solid so far as I can tell. The XC=BASIC module does NO String Handling.
Controls: SPACE BAR - Pause / UnPause ESC - Exit play Up/Down Arrows - Volume Control
Player 1.0 was downloaded 87 times.
NEW VERSION 1.1
User Interface is deliberately similar to my BMX viewing program.