%
%   This file is part of MusiXTeX
%
%   MusiXTeX is free software; you can redistribute it and/or modify
%   it under the terms of the GNU General Public License as published by
%   the Free Software Foundation; either version 2, or (at your option)
%   any later version.
%
%   MusiXTeX is distributed in the hope that it will be useful,
%   but WITHOUT ANY WARRANTY; without even the implied warranty of
%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%   GNU General Public License for more details.
%
%   You should have received a copy of the GNU General Public License
%   along with MusiXTeX; see the file COPYING.  If not, write to
%   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
%   Boston, MA 02111-1307, USA.
%
%
%   musixbbm.tex : allocate registers and define macros for 256th beam
%
\immediate\write16{MusiXBBeaM T.115 <19 Nov 2010>}%
%
\ifx\undefined\ibbbbbbu \else \endinput \fi
%
% setup the maximum element numbers
\setmaxcclvibeams{6}%
%
%
% definitions for 256th beams
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
%
\def\s@l@ctg{\edef\g@x{\csname g@x\romannumeral\n@i\endcsname}%
  \edef\g@z{\csname g@z\romannumeral\n@i\endcsname}\s@l@ctf}

\def\ibbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctg \i@bbbbbbu}
\def\ibbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctg \i@bbbbbbl}

\def\i@bbbbbbu#1#2{%
  \ifnum\b@n=\z@ \i@bbbbbu{#1}{#2}\C@ba\b@z\@ne \C@ba\c@z\@ne
    \C@ba\d@z\@ne \C@ba\e@z\@ne \C@ba\f@z\@ne \fi \n@bbbbbbu}
\def\i@bbbbbbl#1#2{%
  \ifnum\b@n=\z@ \i@bbbbbl{#1}{#2}\C@ba\b@z\m@ne \C@ba\c@z\m@ne
    \C@ba\d@z\m@ne \C@ba\e@z\m@ne \C@ba\f@z\m@ne \fi \n@bbbbbbl}

\def\nbbbbbbu#1{\s@l@ctbeam#1\relax  \s@l@ctg \Dec@b\@ne\n@bbu
  \Dec@b\tw@\n@bbbu \Dec@b\thr@@\n@bbbbu \Dec@b\f@ur\n@bbbbbu
  \Dec@b\fiv@\n@bbbbbbu}
\def\nbbbbbbl#1{\s@l@ctbeam#1\relax  \s@l@ctg \Dec@b\@ne\n@bbl
  \Dec@b\tw@\n@bbbl \Dec@b\thr@@\n@bbbbl \Dec@b\f@ur\n@bbbbbl
  \Dec@b\fiv@\n@bbbbbbl}

\def\n@bbbbbbu{\C@nb\g@z\g@x\fiv@\qd@skip}
\def\n@bbbbbbl{\C@nb\g@z\g@x\fiv@\z@}

\def\tbbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctg \t@bbbbbbu}
\def\tbbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctg \t@bbbbbbl}

\def\t@bbbbbu{\n@v\fiv@ \C@b\t@bbbbbbu\n@bbbbbu\y@i\f@z \beam@pos\f@x \t@xbu}
\def\t@bbbbbl{\n@v\fiv@ \C@b\t@bbbbbbl\n@bbbbbl\y@i\f@z \beam@pos\f@x \t@xbl}

\def\t@bbbbbbu{\n@v\si@ \C@b\empty\n@bbbbbu\y@i\g@z \beam@pos\g@x \t@xbu}
\def\t@bbbbbbl{\n@v\si@ \C@b\empty\n@bbbbbl\y@i\g@z \beam@pos\g@x \t@xbl}

\def\Ibbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctg \I@bu\i@bbbbbbu}
\def\Ibbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctg \I@bl\i@bbbbbbl}

\catcode`\@=\catcodeat
\endinput
