C64 SID music import
Nobody has claimed this yet.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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