re:midi channel problem

2010-06-23 Thread Mats Bengtsson



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

2010-06-23 Thread 胡海鹏 - 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


Re: re:midi channel problem

2010-06-23 Thread alex stone
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!)

2010-06-23 Thread Dmytro O. Redchuk
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

2010-06-23 Thread 胡海鹏 - Hu Haipeng
> 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