This demo is the latest one of a serie of productions for the Commodore Amiga CDTV.
For those who wonder what a CDTV is, it is the Amiga that is black and stylish.
In the year 2026 the CDTV gets a new release, after 90s Rewind (2025), Blue Saxophone (2024) and Return to CD (2023).
For the record, it was preliminarily submitted to Revision 2026 but not accepted because most of the soundtracks were used in previous releases.

Happy 35th anniversary CDTV !
Concept
The main idea is that I wanted to make a musicdisc demo with crystal clear compact disc music, that goes beyond what the excellent Paula soundchip can actually output. Then of course I wanted to play more with the sound capability of the CDTV which is immense and unexplored and so is the Compact Disc technology. Thus the demo fits on a cd-rom (!) and it can be operated from the comfort of your sofa via the remote controller or a mouse.
What else ? The soundtracks can also be played in a regular vintage CD player as a bonus.
Oh the soundtracks would deserve their own writeup, interesting enough the GEM S2 synthesizer used to create these tunes is powered by a Motorola 68302 cpu which is similar to the Motorola 68000 that is powering the CDTV, so nice.
Theory of Operation
As opposed to demos that take over the entire system, the demo is a regular OS-friendly application / task instead. That is because to be able to play CD music it relies on the cdtv.device cd-rom device driver, which runs as a system task, so multitasking, interrupts and DMAs must all be on for the system to function. Only the Copper coprocessor is taken over and that is to setup the frontend graphics of the demo, via its own copper list program. The screen is triple buffered and it is rendered using the 68000 Cpu and the Copper, the text that is mirrored is a Copper effect.
Compact Disc Music
There are 6 Hi-Fi 16-bit soundtracks that are streamed off the compact disc in autoplay mode. Regardless of the audio format (WAVE or MP3) used in the .cue sheet file, the CD-burner software will convert it before burning, so in the end steady bit-rate PCM data is what is streamed. When a track is playing its name and elapsed playing time is displayed into the track info panel. After a track is finished by its own the next one is being played and in that case “LOADING TRACK …” is displayed into the track info panel. The demo sends commands to the cdtv.device, each command being a standard Amiga I / O Request.
Commands used include:
- play track
- fade volume up / down
- query the elapsed playing time
- get volume
- stop a play
Only play track is sent asynchronously and the cdtv.device allows the rest of the commands to occur during a play track command. In general there are commands that execute and return instantly and others that are queued to be processed by the cdtv.device. And also among those commands that are queued some are faster than others, I guess it much can depend on the latency and indeterminacy of the laser operations. All in all the visual frame rate is pretty decent, constant 25 fps when a track is playing is not a bad place to stay. I hope that you like the volume fade out effect when a track that is playing is skipped by the user, in that case “SKIPPING TRACK …” is displayed into the track info panel.
Tools
Amiga: SAS/C, Personal Paint, ISOCD, MakeCD.
PC: Notepad++, Imgburn.
Links
Aminet
https://aminet.net/package/demo/sound/Void-CDTVis35
YouTube
https://www.youtube.com/watch?v=iVgt323CYr4
Pouet
https://www.pouet.net/prod.php?which=105893
GEM S2 synthesizer
https://giorgiomarinangeli.wordpress.com/2024/01/22/gem-s2-synth-workstation-top-player-italiana/
Source code
The source code is written in C language and it is AmigaOS 1.3 compatible, direct hardware access is very limited.
Shortcuts: the code assumes that the Copper interrupt is not enabled (bit 4 of hw register INTENA), that is the case in OS 1.3 and 3.0, what I know.
The routines that are CDTV specific are prefixed with “CDTV”.
The code can be considered like my personal framework for demo coding and thus a few routines that are not currently used are also included.
Note that in order to build the demo you need cdtv.h from the CDTV SDK.
As soon as life permits, the source code and assets should be released to Aminet.




