Page MenuHomePhabricator

MIDI generation on Windows fails with "No MIDI file generated despite being requested"; Support "-dmidi-extension=midi"
Closed, ResolvedPublic

Description


Reproductions steps

  • Install the Score extension on a Windows machine (I was able to reproduce on Windows XP and Windows 7)
  • Create a page with the following wikitext:

<score midi="1">\relative c' { d }</score>

  • Click "Show Preview". The following error appears:

No MIDI file generated despite being requested. If you are working in raw LilyPond mode, make sure to provide a proper \midi block.


Cause

  • Score.body.php uses ".midi" throughout the file as the extension for MIDI files

Due to some limitations on Windows, the default extension for MIDI files on Windows is .mid.


Recommendation

Specifically:
midi-extension "midi" Set the default file extension for MIDI output file to given string.

The recommended area of change would be here:
$cmd = wfEscapeShellArg( $wgScoreLilyPond )

			. ' ' . wfEscapeShellArg( '-dsafe=#t' )
			. ' -dmidi-extension=midi'
			. ' -dbackend=ps --png --header=texidoc '
			. wfEscapeShellArg( $factoryLy )
			. ' 2>&1';

The above change allows me to generate MIDI files on my Windows XP box.

I've also tested the "-dmidi-extension=midi" command-line argument on Windows XP, Windows 7, and Linux Mint Nadia. In each case, the output MIDI file has an extension of ".midi" (i.e.: manually specifying "midi" on Linux seems to be benign)


Version: unspecified
Severity: major
OS: Windows XP

Details

Reference
bz47703

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 1:41 AM
bzimport set Reference to bz47703.
bzimport added a subscriber: Unknown Object (MLST).

Hi gnosygnu! Sorry that nobody has taken a look at this report yet and given feedback.

Seems like this is about adding one line to
https://git.wikimedia.org/blob/mediawiki%2Fextensions%2FScore.git/363b84080e5f5cc983d4a0c7aae22ee4a84b93c9/Score.body.php#L585 ?

If anybody feels like creating a patch:
You are welcome to use Developer access

https://www.mediawiki.org/wiki/Developer_access

to submit this as a Git branch directly into Gerrit:

https://www.mediawiki.org/wiki/Git/Tutorial

If you don't want to set up Git/Gerrit, you can also use https://tools.wmflabs.org/gerrit-patch-uploader/

Hey, thanks for the reply as well as the instructions. I'll take a look at it within the week and post again here after I've uploaded the patch.

I uploaded the patch here: https://gerrit.wikimedia.org/r/#/c/147015/

Let me know if there is anything else. Thanks.

Change 147015 had a related patch set uploaded by Ebe123:
(bug 47703) MIDI generation fails on Windows

https://gerrit.wikimedia.org/r/147015

Ebe123 subscribed.

Change was merged; forgot to close this one...