midi output bug?

2006-02-06 Thread c.m.bryan
Hello everyone,

I've been trying to use lilypond to render midi files which I can then
retune with a program called scala
(http://www.xs4all.nl/~huygensf/scala/).

The midi file which lilypond gives me seems ok, and is playable by
timidity, but scala chokes on it and gives me an error.  I talking
with a scala developer, he seemed to have pinpointed a problem with
the midi file output from scala.  He said:

It turns out Scala is right, your midi file is wrong.
There's an unexpected running status inside. So you may
have to report a bug for Lilypond.

Do you know what that unexpected running status could be? You can
check out the midi file here:

cmbryan.com/score_midi.midi

The strangest part is that I've had success with this procedure
before, so something has changed, maybe in a lilypond upgrade?  Any
help would be appreciated!

Thanks in advance,

-chris


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: midi output bug?

2006-02-06 Thread Johannes Schindelin
Hi,

On Mon, 6 Feb 2006, c.m.bryan wrote:

 It turns out Scala is right, your midi file is wrong.
 There's an unexpected running status inside. So you may
 have to report a bug for Lilypond.

It appears that your midi has this as start of the second track:

4d 54 72 6b // = MTrk
00 00 00 40 // = chunk length (64)
00 0f f5 80 43 e8 02 12 08  // = probably fscked up time signature

A midi time signature would look like

00 ff 58 04 04 02 18 08

only that it seams somehow a 0 nibble crept in, shifting some numbers, and 
somehow another nibble was shifted in.

I never had such problems.

 The strangest part is that I've had success with this procedure
 before, so something has changed, maybe in a lilypond upgrade?  Any
 help would be appreciated!

Well, if you suspect that it might be an old version, how about telling us 
which one you use? And if it is not too much hassle, could you provide a 
sample .ly file which produces such a midi?

Ciao,
Dscho



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: midi output bug?

2006-02-06 Thread c.m.bryan
 4d 54 72 6b // = MTrk
 00 00 00 40 // = chunk length (64)
 00 0f f5 80 43 e8 02 12 08  // = probably fscked up time signature

 A midi time signature would look like

 00 ff 58 04 04 02 18 08

 Well, if you suspect that it might be an old version, how about telling us
 which one you use? And if it is not too much hassle, could you provide a
 sample .ly file which produces such a midi?

My apologies for not giving that information!

I'm using version 2.4.5 on fedora core 3 linux, because it's the
latest binary provided by Planet CCRMA, and I haven't had the time to
wrestle with the source.

And the .ly is below.  The \include statements are note lists with no
extra commands.  I did a crazy-long time sig because I couldn't
remember the cadenza command, and it was just a quick sketch.  Maybe
that's the problem...

Thanks for the help.

-

\version 2.4.2

#(set-global-staff-size 16)

flat = \markup { \raise #0.4 \smaller \musicglyph #accidentals--2 }
sharp = \markup { \raise #0.6 \smaller \musicglyph #accidentals-2 }
textcodaysym = \markup { \hspace #1 \raise #1.1 \musicglyph #scripts-coda}

StaffA = \relative c' {
\time 1000/4
\include StaffA_retuned.ly
}
StaffB = \relative c' {
\time 1000/4
\include StaffB_retuned.ly
}

\score {
\simultaneous {
\set Score.skipBars = ##t
\set Score.melismaBusyProperties = #'()
\context Staff=StaffA \StaffA
\context Staff=StaffB \StaffB
}
\layout {
linewidth = 170.000 \mm
textheight = 250.000 \mm
}
\midi { \tempo 4=55 }
}


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: midi output bug?

2006-02-06 Thread Johannes Schindelin
Hi,

On Mon, 6 Feb 2006, c.m.bryan wrote:

 The strangest part is that I've had success with this procedure
 before, so something has changed, maybe in a lilypond upgrade?  Any
 help would be appreciated!

Me again. Something jumped into my eye: the number 0x3e8. It is exactly 
1000 in decimal.

Could it be that you have something as strange as

\time 4/1000

in your .ly file?

Ciao,
Dscho

P.S.: I fixed the two instances of the time signature in your midi file, 
and since it is so small attached it.

P.P.S.: The culprit seems to be the int2hex method of String_convert, 
which converts a large number to more digits than length_i (and in this 
case even worse: to an odd number of digits).

P.P.P.S.: I don't see how Midi_time_signature::to_string() could print 
the literal 3e8 if den == 1000, since it calls intlog2, which would try 
to divide as often as possible by 2, and return the number of divisions 
(i.e. if den == 1000 it would return 3, since 1000/2/2/2 = 125).


score-repaired.midi
Description: MIDI audio
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: midi output bug?

2006-02-06 Thread c.m.bryan
 P.S.: I fixed the two instances of the time signature in your midi file,
 and since it is so small attached it.

That did it!!

No more 1000/4 for me ;)  Sorry for not suspecting that before, but I
don't know a lot about midi files, and I wasn't aware that they
contained meter information.

Thanks a bunch!

-chris


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: midi output bug?

2006-02-06 Thread Johannes Schindelin
Hi,

On Tue, 7 Feb 2006, c.m.bryan wrote:

 I did a crazy-long time sig because I couldn't remember the cadenza 
 command, and it was just a quick sketch.  Maybe that's the problem...

Exactly. A midi file can represent only up to 255 beats per measure. 

Ciao,
Dscho



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel