Opened 8 years ago

Last modified 19 months ago

#51842 new submission

Timidity: request for a new port

Reported by: mojca (Mojca Miklavec) Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: RJVB (René Bertin), ryandesign (Ryan Carsten Schmidt)
Port: timidity

Description (last modified by mojca (Mojca Miklavec))

I would like to have some software that supports MIDI files. (Quick Time 7 does that to some extent.)

Many people recommended timidity, also packaged by HomeBrew:

Just in case it's relevant (and easier to use in MP), google led me to a much simpler version of the same formula (for the same version of the software):

This is the homepage:

And the git repository:

Here's a link to sources and PPC binaries for a Cocoa GUI (which need a bit more time to look into):

Change History (10)

comment:1 Changed 8 years ago by mojca (Mojca Miklavec)

Description: modified (diff)

comment:2 Changed 8 years ago by mojca (Mojca Miklavec)

Description: modified (diff)
Type: requestsubmission

I added freepat (sound library) in r150546. The temporary Portfile for testing currently lives under my personal folder (r150544, r150547).

comment:4 Changed 8 years ago by mojca (Mojca Miklavec)

Cc: RJVB added

comment:5 Changed 8 years ago by RJVB (René Bertin)

Learning Japanese might take a bit more than "a bit more time" for some of us ;)

Also see a few possible and relevant changes to port:fluidsynth: https://github.com/RJVB/macstrop/tree/master/multimedia/fluidsynth

as well as a GUI I'm testing: https://github.com/RJVB/macstrop/tree/master/audio/qsynth

Note also that VLC can support fluidsynth which means it ought to be able to play MIDI file. This is currently coupled to JACK support, I'll investigate whether this is actually required.

comment:6 Changed 8 years ago by RJVB (René Bertin)

https://github.com/macports/macports-ports/pull/27/commits

VLC can play back (and scan through) MIDI files with fluidsynth provided a SoundFont is installed and configured in its settings. I have moved this feature into the basic feature set in the above commit; the port already depended on port:fluidsynth even if MIDI support wasn't activated through the +jack variant. Edit: Jack support isn't required, so +jack now only activates what it suggests it activates.

Enabling MIDI support in VLC (and libVLC) means that any other libVLC client can play MIDI files, like for instance the VLC Phonon backend.

Last edited 8 years ago by RJVB (René Bertin) (previous) (diff)

comment:7 Changed 8 years ago by mojca (Mojca Miklavec)

Discussion about soundfonts moved to #52992.

comment:8 Changed 8 years ago by mojca (Mojca Miklavec)

I committed the sound fonts without implementing any support for port select or whatever. Let's do that once it becomes clear what we need in the first place (port select doesn't guarantee that anything is selected at all).

As far as TiMidity++ goes, I'm thinking of creating a subport, something like timidity-soundfonts with the sole purpose of setting up the right configuration files for fonts. It looks like an overkill to me to have to rebuild the binary just for the sake of switching the default sound font (a single line in a text file).

comment:9 Changed 8 years ago by RJVB (René Bertin)

Agreed for port select.

I think the proper way to address the timidity.cfg configuration file question is to install both out-of-the-box-supported versions under special names or in a special location (or even keep them in filespath), and install one of the two in the post-activate phase if the file doesn't already exist. Which of the two is installed can be under control of a variant.

I don't know if this is the official way to handle such a situation, but with an approach like this the file won't be overwritten each time we update timidity. That will most likely not be necessary, and remember that the user ought to be able to change the file to use a sound .cfg file that doesn't come from MacPorts.

comment:10 in reply to:  description Changed 19 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added

Replying to mojca:

I would like to have some software that supports MIDI files. (Quick Time 7 does that to some extent.)

qtplay is in MacPorts and uses QuickTime 7 to play any supported audio files including MIDI files, but QuickTime 7 was 32-bit so it only works up to macOS 10.14.

I found some code (in both Python and Swift) that uses AVFoundation (available in OS X 10.10 and later) to play MIDI files with QuickTime X:

https://apple.stackexchange.com/questions/107297/how-can-i-play-a-midi-file-from-terminal#answer-446818

The Python code did not work for me on Monterey (ModuleNotFoundError: No module named 'AVFoundation') but the Swift code did. Maybe someone has a more official GitHub project based on this concept, or maybe one of us could make one, and then make a port for that.

Note: See TracTickets for help on using tickets.