Hello,

Here's a possible solution to your problem. It uses macros that selectively 
hide/display barlines of individual instruments. It is based on macros provided by 
someone on the list a while ago, but I couldn't find the thread... I have also added a 
macro to do the same thing to multistaff instruments (not tested).

===== snip here =====

%%%%%%%%%% Hiding/printing bar lines individually %%%%%%%%%%%%%%%%%%%%%%%%%%%

% Here comes a bunch of rather general macros which enable printing or 
% hiding barlines for each staff and inter-staff space individually:

\makeatletter

\newdimen\barline@depth
  
\def\rul@indiv#1{%
  \n@loop
    \Comp@High
    \expandafter\ifx\csname s@bl\number\noinstrum@nt\endcsname\relax
      \multiply\barline@depth -1\relax
      \advance\barline@depth\altitude
    \else
      \barline@depth=0pt\relax
    \fi
    {\expandafter\ifx\csname h@bl\number\noinstrum@nt\endcsname 1%
       \y@v=0pt\relax
     \fi
     \raise\altitude\rlap{\vrule\@depth\barline@depth\@width#1\@height\y@v}}%
    \barline@depth\altitude
    \advance\barline@depth\y@v
  \repeat
  \addspace#1}

\def\rul@indiv@#1{\n@loop{\prul@indiv@#1}\repeat\addspace#1}

\def\prul@indiv@#1{%
      \y@v\interportee \C@Inter\advance\y@v-\stem@skip
      \expandafter\ifx\csname s@bl\number\noinstrum@nt\endcsname\relax
        \multiply\barline@depth -1\relax
        \advance\barline@depth\altitude
      \else
        \barline@depth=0pt\relax
      \fi
      {\expandafter\ifx\csname h@bl\number\noinstrum@nt\endcsname 1%
         \y@v=0pt\relax
       \fi
      \p@loop
        \raise\altportee\rlap{%
          \vrule\@depth\barline@depth\@width#1\@height\y@v}%
        \count@portee
      \repeat}%
      \barline@depth\altitude
      \advance\barline@depth\y@v}

%== Required to use the following macros
\def\indivbarrules{%
  \let\writ@rule\rul@indiv
  \sepbarrule 1}

\def\Indivbarrules{%
  \let\writ@rule\rul@indiv@
  \sepbarrule 1}

%== separates bar line of specified instrument from one of previous instrument
\def\sepbarrule#1{\expandafter\let\csname s@bl#1\endcsname 1}

%== connects bar line of specified instrument to one of previous instrument
\def\conbarrule#1{%
  \if 1#1\else\expandafter\let\csname s@bl#1\endcsname\relax\fi}
  
%== hides bar line for specified instrument
\def\hidebarrule#1{\expandafter\let\csname h@bl#1\endcsname 1}
  
%== shows bar line for specified instrument
\def\showbarrule#1{\expandafter\let\csname h@bl#1\endcsname\relax}

%== separates barlines in multistaff instruments
\def\rul@sep@#1{\n@loop{\prul@sep#1}\repeat\addspace#1}

\def\prul@sep#1{%
      \y@v\interportee \C@Inter\advance\y@v-\stem@skip
      \p@loop
        \hbox{\raise\altportee\rlap{%
          \vrule\@depth\hlthick\@width#1\@height\y@v}}%
        \count@portee\repeat}

\def\Sepbarrules{\let\writ@rule\rul@sep@ }

\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Here comes an example of how to use these macros

%%%%% Pre-amble
\instrumentnumber3
\setmeter3{{\meterfrac{3}{4}}}
\setmeter2{{\meterfrac{2}{4}}}
\setmeter1{{\meterfrac{3}{8}}}
\nobarnumbers
\indivbarrules
\sepbarrule2
\sepbarrule3

%%%%% Spacing
\beforeruleskip=0.5\afterruleskip
\interinstrument=4\Interligne

%%%%% Macros
\let\ni\nextinstrument

%%%%% Music
\startpiece\addspace\afterruleskip
\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
\hidebarrule2\hidebarrule3\bar
\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
\showbarrule2\bar
\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
\hidebarrule2\showbarrule3\bar
\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
\showbarrule2\hidebarrule3\bar
\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
\hidebarrule2\bar
\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
\showbarrule2\showbarrule3\bar
\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
\hidebarrule2\hidebarrule3\bar
\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
\showbarrule2\bar
\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
\hidebarrule2\showbarrule3\bar
\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
\showbarrule2\hidebarrule3\bar
\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
\hidebarrule2\bar
\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
\showbarrule2\showbarrule3\stoppiece
\bye

===== snip here =====

----------
From:   Nicolas ASPERT[SMTP:[EMAIL PROTECTED]]
Sent:   Tuesday, September 21, 1999 11:22
To:     Werner Icking
Cc:     [EMAIL PROTECTED]
Subject:        Re: Score with different meter

Werner Icking wrote:
> 
> > Date: Tue, 21 Sep 1999 09:32:00 +0200
> > From: Nicolas ASPERT <[EMAIL PROTECTED]>
> 

> > This is exactly what I want to do. Sorry for not being clear. I guess I
> > am not used to explain these things at least in english.
> 
> But English is easier for me than "Schwizer D�tsch" (sp? :-)
> 
Yes, but I don't speak Schwyzerdu:tsch (sorry for the umlaut...I have a
US keyboard)... But people say that it is easy. Just forget about the
german grammar and you speak Schwyzerdutsch :-)

> > > I will soon have a 3rd voice at 3/8 , so the score should look like :
> >
> > voice 1 o    o    o  | o    o    o  |
> > voice 2 o    o  | o    o  | o    o  |
> > voice 3 o. | o. | o. | o. | o. | o. |
> >
> > Do you have any idea about how to do this ?
> 
> Without knowing how to solve it I have some questions again.
> 
> In your ASCII picture the third voice behaves different from the first two.
> In the first two voices a quarter occupies the space of a quarter. In the third
> voice a dotted quarter occupies the space a normal quarter occupies in the
> first two voices. Or do you mean:
> 
> voice 1: o o o|o o o|
> voice 2: o o|o o|o o|
> voice 3: o.|o.|o.|o.|
> 
Nope. The meter for voice 3 is 3/8 so a quarter in voice 1 and 2 equals
a dotted quarter in voice 3. 

> And a technical question: how should the bars be numbered?
> 

The bars are numbered according to voice 1 (that's the way it's done in
the full score), but this should not cause any trouble since you can
force the bar numbers easily in MusixTex

> AFAIK in earlier times _your_ version would have been coded as 2/4 and 6/8 with
> "o>" as accented quarter to indicate the rhythmic change in the first voice.
> 
> voice 1 2/4: o> o | o  o> | o  o |
> voice 2 2/4: o  o | o  o  | o  o |
> voice 3 6/8: o. o.| o. o. | o. o.|
> 
> The second version would be typeset as:
> 
> voice 1 3/4: o o o |o o o |
> voice 2 3/4: o>o o>|o o>o |
> voice 3 6/8: o. o. |o. o. |
> 
> Both versions are simple to code with MusiXTeX or PMX and inline-TeX :-)
> 
> In cases Mozart wrote such music, in the first example three notes of the first
> voice were slurred and in the second example two notes of the 2nd voice were
> slurred.
> 

The problem is that Mozart wrote the way I showed you in my ASCII
example (well at least, this is how it is written in my full score...)
If you heard "Don Giovanni", the end of Act I, this is when Leporello is
dancing with Masetto (-> 3/8 part) while the others are dancing a Menuet
(3/4 part)...
There are in fact 3 small orchestras on the stage to play each part.

Nicolas.
-- 
Nicolas Aspert      Signal Processing Laboratory (LTS) 
Swiss Federal Institute of Technology (EPFL)
Office:  ELE 237
Phone:   +41 - 21 - 693 36 32 (Office) or 46 21 (LTS lab)  
Fax:     +41 - 21 - 693 76 00

Reply via email to