re:midi channel problem
Sorry, I misunderstood NR. But I still need more than 16 sounds. I don't know the difference between channel and track. Finale and Sibelius can have more than 32 instruments at once, so I don't know whether Lilypond can reach this feature. Regards Haipeng In LilyPond terminology, the limitation is that you cannot have more than 16 Staff contexts. In the MIDI version of your score, you can try to include several voices in the same Staff, for example all violin parts in a single Staff, all flute parts in a single Staff and so on. Obviously there's still a limitation since all the voices you put in the same Staff will share the same MIDI instrument, i.e. they will sound the same. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re:re:midi channel problem
> In the MIDI version of your score, you can try to include several voices in > the same Staff,... Thanks, I know it. The issue came when I used instrument changes such as pizz and mute, which create more sounds. Brett pointed out in yesterday's email that Finale and Sibelius uses different devices at one time. But I ever met a beta version of Braille Music Editor (incomplete non-published version), in which more than 16 can be used, while it only uses basic GM, not softsynth or other vst plugins. So I'm totally confused. Regards Haipeng ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: re:midi channel problem
2010/6/23 胡海鹏 - Hu Haipeng : >> In the MIDI version of your score, you can try to include several voices >> in the same Staff,... > > Thanks, I know it. The issue came when I used instrument changes such as > pizz and mute, which create more sounds. > Brett pointed out in yesterday's email that Finale and Sibelius uses > different devices at one time. But I ever met a beta version of Braille > Music Editor (incomplete non-published version), in which more than 16 can > be used, while it only uses basic GM, not softsynth or other vst plugins. So > I'm totally confused. > > Regards > Haipeng > > > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > http://lists.gnu.org/mailman/listinfo/lilypond-user > > I did put in a bit of a suggestion to tackle precisely this challenge. But i'd wager that enabling lilypond to "show" its ports in something like jackd is a bigger job than users would envisage. It would require, in something like the midi block (or a new block structure), the ability to assign port/bank/patch per staff, and per instrument/note. So the default would be as it is now, but when the "\JackMidiPort", or "\AlsaMidi Port" block is added, it exposes those ports directly to a patchbay, instead of being invisible. Assuming \JackMidiPort, the block might look something like the following: \JackMidiPort << \JackMidi1stViolins-port0 \JackMidi2ndViolins-port1 \JackMidiViolas-port2 etc >> Each port has 16 channels (of course), so the user can then assign one of the ports to his instrument block. In a perceived use case, the user could then assign bank and patch per note, with something like \BankMSB, \BankLSB, and \Patch followed by the desired integer. All ports for a project, when the project is loaded, would show up in your patch bay (and stay up, not disappear and re-appear), and you could send the ports wherever you wanted, in my case, Linuxsampler, and my somewhat substantial sample libs. And because each port has 16 channels, the use could alternatively, if he wished, use instead a command like \MCha (midi channel) followed by a channel number to switch channels per note. As i wrote in the initial suggestion, i have no idea if this is feasible or possible in code terms. I would particularly like to see something like this in lilypondtool, as it's become almost a complete compositional environment for me, only the playback remains a challenge. Alex. p.s. Gentoo 64bit linux here, if that changes anything. -- www.openoctave.org midi-subscr...@openoctave.org development-subscr...@openoctave.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
MultiMeasureRest for times > 4/2 (should be whole, not breve!)
Hi. This is related to issues 1014 and 1145[1], was also discussed a couple of times[2]. The point is that MultiMeasureRests should be whole rests for measures longer than 4/2. Now i am quite happy with a solution in attached file. I believe, sharing this solution (not ideal, i guess) may be helpful. Of course, i will thank for any help and/or suggestions. It uses an idea which i've found in Alexander Kobel's (thanks!) snippet, #651[3] --- let MultiMeasureRest be invisible and MultiMeasureRestNumber shows something else than numbers (yes, i never use MultiMeasureRestNumbers, and those --- mainly unmetered --- scores, which contain whole measure rests, are much better with whole than breve rests). MultiMeasureRestNumbers are placed where MultiMeasureRests (transparent) are, glyph is "calculated" (depending on time signature for current measure and MultiMeasureRest's 'staff-position). Breve rests may be drawn as whole, too. So, i use this as a workaround for issues 1014 and 1145[1] (completely "transparent" workaround --- voices should not be changed, i simply need to add something[4] to \layout block). If this attempt can be improved --- i'll be glad to get any feedback. I am not a programmer, some things can be "strange" .) Thank you. _ 1. http://code.google.com/p/lilypond/issues/detail?id=1014 http://code.google.com/p/lilypond/issues/detail?id=1145 2. http://lists.gnu.org/archive/html/lilypond-user/2008-12/msg4.html http://www.mail-archive.com/lilypond-de...@gnu.org/msg18832.html 3. http://lsr.dsi.unimi.it/LSR/Item?id=651 4. This is not a problem for my scores, since all my templates already have \include "layout--setup.lyi" in every \context block of \layout block. -- Dmytro O. Redchuk Bug Squad % % Thanks to Alexander Kobel for http://lsr.dsi.unimi.it/LSR/Item?id=651 % % i want breve MMRs appear as whole ones always: #(define mmr-breve-as-whole #t) % i've never seen MMRs on the middle line, % so, put them on fourth if 'staff-position=0 : #(define mmr-escape-from-zero #t) % this will return markup for MMRNubmer's 'text property: #(define (normalize-mmrs-callback grob) (let* ((mmr (ly:grob-parent grob Y)) (evt (ly:grob-property grob 'cause)) (mus (ly:event-property evt 'music-cause)) (len (ly:music-duration-length mus)) (pos (ly:grob-property mmr 'staff-position)) (restglyph (if (and (equal? len (ly:make-moment 2 1)) (eq? #f mmr-breve-as-whole)) (if (> (abs pos) 4) ;; stub. need to draw a ledger line?.. *DONT_KNOW* "rests.M1" "rests.M1") (if (> (abs pos) 4) ;; this one already has ledger line: "rests.0o" "rests.0" ;; "adjust" 'staff-position if needed: (if (and (eq? #t mmr-escape-from-zero) (eq? 0 pos) (or (not (equal? len (ly:make-moment 2 1))) (eq? #t mmr-breve-as-whole))) (ly:grob-set-property! mmr 'staff-position 2)) ;; and return markup: (markup #:line (#:musicglyph restglyph rests = \relative c'' { % \oneVoice \time 3/4 R2. | \time 4/4 R1 | \time 4/2 R1*2 | \time 5/2 \once \override MultiMeasureRest #'staff-position = #6 R1*5/2 | % \voiceTwo \time 6/2 R1*3 | \once \override MultiMeasureRest #'staff-position = #-6 R1*3 | } normalizeMMRs = { % these overrides would go into \layout for \Score context, % if you need these changes globally: \override MultiMeasureRest #'transparent = ##t % place MultiMeasureRestNumber to MultiMeasureRest's position: \override MultiMeasureRestNumber #'Y-offset = #0 \override MultiMeasureRestNumber #'text = #normalize-mmrs-callback } revertMMRs = { \revert MultiMeasureRest #'transparent \revert MultiMeasureRestNumber #'Y-offset \revert MultiMeasureRestNumber #'text } \score { \new Staff { \new Voice { \rests \break \normalizeMMRs \rests \break \revertMMRs \rests } } } %{ \layout { \context { \Score % to make this by default: \override MultiMeasureRest #'transparent = ##t \override MultiMeasureRestNumber #'Y-offset = #0 \override MultiMeasureRestNumber #'text = #normalize-mmrs-callback } } %} \paper { indent = 0 } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re:Re: re:midi channel problem
> I did put in a bit of a suggestion to tackle precisely this challenge. ... I think this feature needs someone to add many C++ codes in the source, but it seems that most of the improvement were done out of (I mean "by not largely modifying") the core (I guess). Haipeng ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user