LMMS / LMMS/lmms

C64 SID music import

Open
#1,722 21 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

compatibility enhancement
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

LMMS already has a SID effect generator, I think it would be awesome if we could import SID files directly, and then we'd have access to a vast treasure trove of mixable material via hvsc.c64.org

I posted this question on Facebook, and was invited to add this request to your GitHub tracker.

While I do some programming, I think this may be a bit beyond my ability.
I'll do my best to bring relevant info on the subject to aid in making it happen.

When you download the HVSC, it contains a text describing the SID file format in the documents directory. Here's a link so it's easier for you to view:
http://www.hvsc.de/download/C64Music/DOCUMENTS/SID_file_format.txt

Under the Players and Editors topic you can see a few songs disassembled:
http://codebase64.org/doku.php?id=base:sid_programming

Some PDF's that show the inner workings of C64 music files
http://digilander.libero.it/ice00/tsid/sidin/

This helped explain the "4th channel" trick
http://www.pauliehughes.com/page22/page22.html

If you ramp up the volume all the way on the old 6581 you'd get a click.

They'd basically pulse-width modulate how fast it would click full-on,
so you'd get an extra sound channel.

Sorta like people do when they play music on a floppy disk or printer.

These links explain the differences of Compute's Gazette alternative .MUS file
http://sidplayer.org/filestru2.txt
http://www.unusedino.de/ec64/technical/formats/sidplay.html

I'm guessing it would go something like this:

Load File > File Parser

Song and composer info could be passed to the Project notes.

Set up the Sid plug in as an instrument.

Scan through once to link all the necessary automation tracks to their respective controllers.

Set up a timer, 50hz for PAL or 60hz for NTSC regions

Start pulling in note data, plus fill in the automation tracks where needed.

Follow the patterns until it's finished

Then we can tweak out all those wonderful chiptunes of yesteryear to our heart's content.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing LMMS's existing SID effect generator and the linked SID file-format documentation, including the HVSC examples. Determine how SID song data, metadata, timing, notes, and automation could map into an LMMS project; done would mean importing supported SID files as an editable SID instrument arrangement for PAL and NTSC timing.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.