On 29 July 2016 at 21:55, David Wright wrote: > On Fri 29 Jul 2016 at 14:29:57 (+0200), Mojca Miklavec wrote: >> I have a midi file that I wanted to convert into scores, but the >> scores simply don't look right. >> >> While I have a real (relatively long) song in the MIDI, I believe that >> I can fully reproduce the problem with the following simple example: >> >> \score { >> \new Voice = "melody" { >> \set Staff.midiInstrument = "accordion" >> \time 3/4 >> \relative c' { >> c4 c c | >> c1 d4 e | >> f4*5 g4 | >> f2.~ | % becomes f4*5 >> f2 e4 | >> d4*3 | % becomes d2. >> c4 c2~ | % becomes c1 >> c2 >> } >> } >> \midi { \tempo 4 = 160 } >> \layout {} >> } >> >> (I picked accordion because one doesn't hear the duration with piano.) >> >> The idea is to make midi from the above example first (lilypond >> test.ly), then convert midi to scores (midi2ly test.midi -o test2.ly) >> and typeset again (lilypond test2.ly). >> >> >> The resulting MIDI file sounds right, but the typesetting of it is >> very strange. I get just a single quarter note printed out rather than >> something that takes the duration of five times a quarter. >> >> OK, that's probably expected when I consciously enter the above >> syntax, but not after conversion from a MIDI file. >> >> I noticed that the whole idea of the asterisk operator is to print a >> single unit, but to prolong it in MIDI (or for other purposes). But >> there's a lot of inconsistency: >> - if I properly enter c2.~ c2, I get c4*5 from the midi conversion >> - if I properly enter c2~ c2, I get c1 which is "forbidden" inside 3/4 >> - if I sloppily enter c4*3 which would typset in a very weird way, it >> comes out OK after the conversion as c2. >> >> None of that makes any sense to me. >> >> Sure I can manually fix the resulting plain text file, but I was >> wondering if there was really no better way to get this done properly >> and automatically. > > In the absence of any output examples, I've attached what my system > produces from your source. Let us know what's incorrect.
Oh wait! The "answer" to my question has always been there in the generated ly file. These are the important settings that make all the difference: \remove "Note_heads_engraver" \consists "Completion_heads_engraver" (plus of course those for rests). The main problem is that what I do is: - run midi2ly (outputting absolute pitches & durations) to get the melody out - copy just the melody to a different file template to get exactly the staff arrangement I want (the default output is semi-useless for my particular use case) In fact I didn't realize that I would get correct PDF if I kept those two settings. This approach of copying just the melody avoids many useless settings like \set Staff.instrumentName = "\new:melody" but the two/four necessary lines were accidentally omitted. > It looks to > me as if the original score is just what you (idiosyncratically) asked > for and the subsequent score has been "conventionalised" as one might > expect, because the midi performer has no way of representing your > odd notation. I don't think so. I didn't try to manually inspect the dump of the midi file (maybe I should), but I strongly suspect that there will be absolutely no difference in midi irrespective of whether I enter c2.~c2 or c4*5. It must be midi2ly that eventually decides what to do with pitches that last for some "weird durations". midi2ly already provides options for outputting absolute or relative pitches, to always include the timing (or only when necessary), ... There could potentially be another parameter to determine whether midi2ly should produce "c1" or "c2.~c4". Or perhaps some way to fix this with python-ly that I have to run anyway. Maybe that exists already. ... the easiest solution would be simply add \remove "Note_heads_engraver" \consists "Completion_heads_engraver" to my main document and stop worrying. Mojca ----------------------- off-topic >> (PS: please CC me in reply.) > > This will happen automatically if you coerce you mail client into > including the header line: > > Reply-To: Mojca Miklavec <mojca.miklavec.li...@gmail.com>, > lilypond-user@gnu.org Thanks a lot for the hint. I can only adjust the settings globally though (I cannot easily change reply-to for a single email unless/until I change the mailer) and I don't dare to risk ending up with replies to personal emails being accidentally sent to the lilypond list. I always thought that this was just a matter of using "reply" or "reply-to-all", also because the mailing list software very often messes up with headers. Then again ... maybe it's about time that I enable the delivery of all emails from this mailing list. _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user