musescore / musescore/MuseScore

DLS for MIDI support?

Open
#28,202 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

community
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

As far as I can tell MuseScore currently only supports SF2/SF3 SoundFonts.

However for retro console music creation and modding DLS seems to be used. At least that's what seems to be exported by the N64 Sound List Tool. While DLS and SF2 should be very similar, at least on Linux there does not seem to be a native tool to convert between the two. Therefore it would be great, if MuseScore could natively support DLS, to ease creating ones own retro console music with MuseScore.

A similar request seems to have been filed in the forum some years ago: https://musescore.org/en/node/101931

The DLS specification can be found free of charge here: https://midi.org/dls

Problem to be solved

Being able to use DLS directly in MuseScore would avoid the inconvenient(/incomplete?) conversion solutions to SF2.

Prior art

There is an unofficial timidity fork which claims to have added DLS support. But I couldn't compile it on Linux, the autotools build files seem broken: https://github.com/starg2/timidity41

I could partially use DLS files with fluidsynth on Linux, but two drum tracks were missing / inaudible from the matching MIDI file I had tried:

The furthest I have gotten is using this website https://spessasus.github.io/SpessaSynth/. I could then import the SF2 + MIDI file. The drum tracks, which are more brief voice samples in my example and which were absent with fluidsynth, were audible but had the wrong octave. I also couldn't change/correct their octave in MuseScore, probably because these drums are in the "unpitched percussions" section?

(I would love to provide the DLS + MIDI files that I tried to get into MuseScore here, but I don't have a license to publically share them. I have legally obtained and bought the product containing them though.)

Additional context

No response

Checklist
  • This request follows the guidelines for reporting issues
  • I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests

Contributor guide

Open the contributing guide

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

The issue names no MuseScore files, tests, or entry points. Start by reviewing the existing SF2/SF3 SoundFont support and the linked DLS specification; done means MuseScore can use DLS files directly, including the reported percussion behavior.

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
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.