C64 music
The C64 released by Commodore in 1982 was a home computer with 64kB of RAM and a "MOS 6510" 8-bit CPU clocked at around 1MHz. It was very popular as a gaming device but many users also discovered their love for computer programming on this machine. One thing that stood out when comparing the machine to its competitors of the era, was its capacity to make music with its MOS Technology "Sound Interface Device" (SID) audio chip. Check out the SPECIALS section for more information.
Some of the music creation tools publically available on the machine where quite popular among DIY home computer musicians, e.g. the "COMPUTE!'s Sidplayer" (published in 1984 by the "Comptute Gazette" magazine) over the years was used to create more than 16'000 songs.
With its progressing age the C64 quicky lost its appeal as a gaming device but still hung on for a few more years while the faster competitors like the 16-bit Amiga or the Atari ST (that had both been released in 1985) grew in popularity. Interestingly the C64 did not die completely once it had lost its commercial appeal, but it preserved a corner of the playground for what is known as the "demo scene": And so it is that more than 40 years after its release the C64 is still used by a scene of computer geeks to write "just for fun" software and music for that ancient hardware, i.e. the list of C64 music still keeps growing longer.
It seems that even people who had moved on to computers like the more recent Amiga, still missed the old C64 music. And around 1990 somebody created a C64 music emulator/player named PlaySID for the Amiga. This laid the foundation for the file format that is still used most often in the context of C64 music collections. It seems more people started to rip music from old C64 programs to then package it using PlaySID's file format and when the first "HSVC (High Voltage SID Collection) #1.0" was released in 1996 it contained already more than 4'000 of such music files. The respective HVSC #82 release from 2024 meanwhile contains around 60'000 music files and can be downloaded from the HVSC page.
As an alternative the respective files can also be browsed and played online using DeepSID which is where many new songs created in "the scene" today get posted before they find their way into the next HVSC release.
C64 music files
There are at least 130 different music creation/tracker programs on the C64 (see DeepSID's "Player" tab for more information). And most of these have their own "source file" format that is used while the composer works on a tune. But when a song is "released" respective music tools will typically output a self contained binary file that contains both the needed replay code as well as the actual music data (which can then easily be integrated into some game or demo). To avoid having to deal with the multitude of "source formats" C64 music players usually go for the binary "release" versions of the songs and completely ignore whatever "source formats" might exist. (An exception is "COMPUTE!'s Sidplayer" format which was so popular in the U.S. that some players - including webSID - specifically support it as well.)
All the C64 music files found in collections like HVSC are binary file "rips", i.e. somebody went to the trouble to manually extract the music related code/data from whatever program that music had originally been used in (or used the respective binary output of the original music creation tool) and slapped a small header with meta information in front of it. The specification of the respective format can be found here.
Historically the first variant of the format was called "PSID" (PlaySID) and it relies on a simplified execution model that could be easily emulated on the slow successors of the C64 (e.g. to play C64 music on a Commodore Amiga in the 90s): This model presumes that there is a dedicated C64 (6510 machine code) sub-routine that periodically performs updates to sets of sound chip registers in low frequency intervals (e.g. 50Hz) and that the exact timing of individual register updates (within that sub-routine) is not crucial (the sub-routine code is contained in the music file and the file header informs the player about the frequency with which that sub-routine has to be called). This model matches how most of the music playing programs on the C64 actually work. In order to play this type of file you basically need the C64's CPU and its sound chip (or an emulation thereof). The only critical timing here is that of the behavior within the sound chip. (The original "TinySid" only supports to play this type of PSID file.)
A limitation of the PSID model is that it does not handle the higher frequency updates and the ensuing timing precision requirements that some non-standard songs rely on: Early on, C64 music discovered the use of digi-samples playback, where the CPU is used to play audio samples with playback frequencies between 5-30kHz. At those frequencies the exact timing of individual CPU instructions suddenly becomes relevant and everything that influences that timing must be precisely handled (i.e. timers, delays caused by video chip, runtime of different CPU instructions, etc). Also an exotic song might use parts of the C64's ROM code (KERNEL, BASIC and CHAR). For all these "more complicated" cases the additional "RSID" sub-format was introduced. The "R" means that a "real" C64 environment (excluding external devices like tape or disk drives) is needed to play the song. The format contains a fully functional C64 program which can also be run directly on a C64.
Comments
- No comments found

Leave your comments