> On Tuesday 22 April 2008 16:26:16 Laura nmi Michaels
> wrote:
> > Yair K. wrote:
> > >Do you have any example of a kar
> > > file with this problem? The few files I checked
> seem fine.
> >
> > Since you mentioned other files seemed fine, I
> went back and tried some of
> > my other midi kar files. Some of them work
> beautifully. I've never seen
> > Timidity do such as good job at Karaoke before.
> Some of them mess up with
> > strange results though. One of them has that
> echoing effect I mentioned
> > and several of them show all the lyrics before the
> song has a chance to
> > start playing. I put together a few of the songs
> that were having problems
> > as a test case and uploaded them to
> > http://www.distasis.com/recipes/karmusic.zip I'll
> leave them up for a few
> > weeks.
>
> All of these have the same underlying issue. I'm no
> MIDI or timidity expert
> (Hopefully the real MIDI experts on the list will
> correct me if I say
> anything wrong), but I think it goes like this:
> A. MIDI files allow meta message, like "Text" and
> "Lyrics". "Text" should be
> output before playing.
> B. Quite a few MIDI files use "Text"
> inappropriately for lyrics. These need
> to be output while playing.
> C. But some do use it correctly, and expect that
> behaviour.
> So every solution is a bit of an hack.
>
> TiMidity++ has the following test in readmidi.c:
> (opt_trace_text_meta_event || karaoke_format == 2
> ||
> chorus_status_gs.text.status == CHORUS_ST_OK).
> opt_trace_text_meta_event can be enabled using
> "Trace all meta text events" in
> XAW's option dialog (or the "-E t" command line
> option).
> karaoke_format is set to 2 basically depending on a
> "@KMIDI" text.
>
> If the test works, this is treated as a lyric event.
> If it fails, it eventually gets to line 3616:
> "dumpstring...", and dumps the
> text to the screen right away.
>
> The three files which show all the lyrics before
> playing fail the test.
> (If opt_trace_text_meta_event is enabled, the files
> will play mostly fine, but
> that's not optimal (no linebreaks, because timidity
> doesn't really recognize
> the type)).
> Traditional - The Band Played On.mid has a "@K MIDI"
> signature instead.
> keycant.mid has a "@KMIDI" signature, but on track 0
> (one of the checks is
> limited to track 1).
> Traditional - Blow The Man Down.kar - it seems to be
> truncuted a bit "@K"
> instead of "@K MIDI" (I suspect).
>
> afrika.kar has two tracks: one for lyrics, and
> another for text. And
> timidity's test fingers the text track as a lyric
> track as well (It's has the
> right text at the right place). So both tracks are
> outputted at the same
> time.
>
> What can be done?
>
> A. Check for "@K" instead of "@KMIDI", on all
> tracks. This patch fixes the
> three files which output immidiately:
>
> --- timidity/readmidi.c 2008-04-01
> 04:15:27.000000000 +0300
> +++ timidity/readmidi.c 2008-04-22
> 23:00:32.565546242 +0300
> @@ -468,9 +468,8 @@
> si[len]='\0';
>
> if(type == 1 &&
> - current_read_track == 1 &&
> current_file_info->format == 1 &&
> - strncmp(si, "@KMIDI", 6) == 0)
> + strncmp(si, "@K", 2) == 0)
> karaoke_format = 1;
>
> code_convert(si, so, s_maxlen, NULL, NULL);
> @@ -5337,7 +5336,7 @@
> }
> if(karaoke_format != -1)
> {
> - if(trk == 1 && strncmp(si,
> "@KMIDI", 6) == 0)
> + if(trk == 1 && strncmp(si,
> "@K", 2) == 0)
> karaoke_format = 1;
> else if(karaoke_format == 1
> && trk == 2)
> karaoke_format = 2;
>
>
> B. Another test, if there are actual lyric events,
> don't treat text on track 2
> as lyrics. I'm not sure this is a good idea - it may
> break more stuff than it
> fixes.
> C. Check for the track name "Soft Karakoe"
> instead/with the "@K" check. Maybe
> a good idea.
>
> Please test the above change, and see if it doesn't
> break anything
>
> Yours,
> Yair K.
I don't know anything about Midi file formats. Though
I have tried on Linux with:
Timidity: Text mode shows the text word twice,
each word on its on line.
Kmid: Shows all the lyrics in Kmid. Then as each
text events is played along with the associated note,
that particular word in the already shown lyric is
highlighted.
PyKaraoke: Know about it, but haven't tried it.
Just mention it here if anyone wants to look closer
can take a look if they want to.
Jimmy
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Timidity-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/timidity-talk