MagPlaySID
MagPlaySID logo

MagPlaySID v1.35

Release date:

A player for Commodore 64 music that shows how a tune is built. Drop any .sid on it: it plays on an emulated C64, and you see it as a tracker would - its notes, instruments and effects in rows that scroll with the music. Drop a whole folder and it becomes a playlist; keep the tunes you love in playlists of your own.

Download for Windows Free and open source · Windows 10/11, 64-bit · nothing to install, .NET is inside

Also for macOS · Apple Silicon macOS · Intel Linux · x64 release notes opening it on a Mac

MagPlaySID playing MSI-Lost Souls from a favourites playlist: the playlist down the left, the tune's eight songs beside Add to playlist with the third playing, the sound as a wireframe landscape to fly into, a scope per voice, the tune's rows with the selected voice's instrument beside them, and a piano along the bottom
Your favourites as a playlist down the left; a tune's songs as buttons, a ring showing how far the one playing has got; the sound as a landscape to fly into - one of three meters - and a scope per voice; the tracker rows scrolling beside the instrument sounding and its wave, pulse and filter programs; and a piano lighting each voice's key.

What it does

Any tune, played as the C64 plays it, and read back as a score.

💾

Any .sid

PSID and RSID, PAL and NTSC, played on the raster or a CIA timer, once a frame or many times. The tune's own 6502 code runs on an emulated C64 - its timers, interrupts and memory banking - and every write reaches the SID on the cycle it was made.

🔊

Digis

Samples streamed from an NMI play as they are written, thousands of times a second - the drums and voices of ThcMOD and LMan's tunes, which a player that calls a tune once a frame never hears. A digi gets a scope of its own beside the voices', and a column in the rows marking each sample as it starts.

🎼

Transcribed as you listen

The tune becomes a score: notes on its own row grid, instruments with their wave and pulse programs, the filter, patterns and order lists. The first half minute is ready in a moment, and the whole tune soon after takes over below what is on screen, so the rows you can see never change - with its length, measured on the C64: the tune's memory coming round again proves it loops, and its notes say how much of that is one pass of the music - even when a player's tempo slips a call from pass to pass or its drums play at random - so the clock says how long it plays before it repeats; for a tune that fades out and plays on in silence, or stops the C64 at its end, when it has gone quiet. Against HVSC's own list of song lengths, it agrees for more than four songs in five.

📜

Rows that scroll

Each voice's rows - note, instrument, effects - go past as they sound. Click a voice to see its instrument: envelope, hard restart, and the wave, pulse and filter programs, the step sounding lit.

🎹

A piano

Eight octaves along the bottom, each voice's key lit in its colour as loud as its envelope - an arpeggio, a slide or a drum shows as it plays.

🎛️

2SID and 3SID

Tunes for two or three SID chips play on all of them, each the model its header names, with a scope and score columns for every voice.

📝

Sheet music and text

Export notes in the menu saves the song playing as the rows read it. As sheet music: a PDF with a staff for each voice, its clef chosen line by line, the notes, rests, ties, sharps and naturals in bars of 4/4, and the tempo. As text: each voice's notes, instruments and effects with their bar, beat and time.

💿

Save the sound

Export sound in the menu saves the song playing as a file to play anywhere: WAV, FLAC, lossless and a good deal smaller, or MP3 at 320 kbit/s. It is played again on a C64 of its own, many times faster than it plays, for its length - fading out at the end when it loops - with the voices you have muted left out, and its title, composer and year written in the file.

📂

Drop and play

Drag a .sid from the desktop onto the window, open one, or name it on the command line. MagPlaySID opens where you left it: the playlist and the tune you last played. Space pauses, and the rows stop with the music; in a playlist, the arrow keys go to the tune before or after.

🎶

Playlists

Drop a folder of .sid files - or several tunes - on the window and it becomes a playlist down the left, played one tune after another, each moving on once it has played its length; Open folder as playlist in the menu does the same, and the playlist is kept, with a heart like your own. Make playlists of your favourites from any tune with ♥ Add to playlist or a right-click; drag a tune - or a playlist - up or down to change the order, drag the line between the playlists and the tunes to give either more room, and right-click a playlist to give its heart another colour. Show playlists in the menu opens and hides the strip.

↕️

Sort a playlist

The button above the tunes sorts them by release year, title, composer, group, file date, number of songs, length, recently played or most played - or shuffles them - and your own order is always there to go back to. Playing a tune saves its length and plays on your PC, so those sorts need nothing measured beforehand; tunes not played yet come last.

🌄

Five meters

See the sound as classic spectrum bars, as a wireframe landscape to fly into, with mountains right across it and the bass tallest down the middle, or as neon waves: bars of little blocks swaying up and down on a swell, with lines of light rolling behind them, glowing on the beat, and sparks riding along those lines - or as Last Ninja: a black ninja fighting guards on a hilltop above a Japanese valley at dusk, every note a move, kicks and flips on the drums, as the camera slowly circles - or as Dire Guys: two guys dancing on top of a great mirror ball in a dark club, on a floor of lights that change with the beat. They know 25 moves: the drums and bass are the stocky one's claps, steps, running man, cabbage patch and horse ride, the melody the tall one's disco points, dabs, flosses, robot, griddy and moonwalk, and now and then they jump or bump hips together. Spotlights in the voices' colours sweep the ball, and the camera moves with the music, in close on the guys as it builds and out wide as it eases. The guys are modelled by Grasstust/Hoaxers. Click the meter for the next, or choose one under Meter in the menu; it is remembered.

🔢

Every song

A tune of several songs shows them as round buttons beside Add to playlist, the one playing ringed as it goes: click one, or press 1-9, + and -. Right-click one and choose Play first to start the tune on that song whenever it is played. Previous and Next move between tunes; the repeat button before Next plays a tune again - twice, up to ten times, or forever - and remembers that for the tune. Play every song of a tune in the menu plays all of a tune's songs before the next - from the one set to play first, round to the one before it.

⏩

Hold to fast-forward

Hold the fast-forward button beside play - or the F key - and the tune runs four times as fast, then faster the longer you hold it, quietly, with the clock, scopes, rows and piano keeping up. Let go and it plays on as before.

⚙️

Yours to set

The knob at the top right sets the volume: drag or scroll it, click to mute. In the menu beside it, Big font makes the rows, the tune's details and the labels a quarter larger. Check for updates at start - asked once, the first time - looks for a newer version each time MagPlaySID opens, and offers this page when there is one.

MagPlaySID playing Golf Dash Extended from a folder dropped on the window: the folder as a playlist above the favourites, its seven tunes listed with how many songs each has and the length of the tune played, a sort button above them, the neon meter's waves, and the tune's three songs beside Add to playlist
A folder dropped on the window, as a playlist above your favourites: its tunes in order, played one after another; the one playing lit; a badge on each tune that has several songs, and the length of each once played; a button to sort them; a round button that plays the playlist from the top; and here the neon meter's waves.

Get started

  1. Download the package for your system from the latest release. .NET is inside - there is nothing else to install.
  2. Windows: unzip it anywhere and run MagPlaySID.exe. Linux: unpack it and run ./MagPlaySID. Mac: unzip it and move MagPlaySID to Applications.
  3. Drop a .sid on the window, or choose Open .sid... - or drop a whole folder to play it as a playlist, or choose Open folder as playlist in the menu. The High Voltage SID Collection has tens of thousands of them.
  4. Click a scope to mute its voice; click a voice's rows to see its instrument; click the meter to change it.
  5. Keep the tunes you like: ♥ Add to playlist while one plays - and their notes: Export notes in the menu, as sheet music or text - or their sound: Export sound, as WAV, FLAC or MP3. Keys: Space pauses, ← and → change tune in a playlist, 1-9 pick a song, and F held fast-forwards.
The Windows exe is not code-signed, so Windows SmartScreen may say it comes from an unknown publisher. Choose More info → Run anyway.

On a Mac, the app is not notarised by Apple yet, so macOS stops it the first time it is opened:

xattr -dr com.apple.quarantine /Applications/MagPlaySID.app

That tells macOS to stop checking this one app, so only do it for software you trust. Either way it is needed once, not every time.

How it works

The sound is the tune's own; the score is a reading of it, checked against it.

C64 timers and IRQs

CIA timers, the raster interrupt, NMIs, banked memory, and a 6510 that makes each memory access on the cycle the real chip does - its throw-away reads included, which some digi players depend on.

A score that plays back exactly

The transcription is played as it is made, and every register it gets wrong is written as the tune wrote it - so the score always makes the tune's own writes.

How much is understood

What the notes and instruments make, rather than raw writes, is the measure: 96.5% of the tunes' register changes on average.

Leave feedback

One line is enough. It opens as an issue on GitHub, filled in and ready for you to press Create. You need a free GitHub account, and the issue is public.