I solved the stem length issue, although rather clumsily. For some mysterious reason, you need to make the change inside the \beamst@m macro before the call to \C@stem. Now if someone can just figure out how to get rid of the "parasitic" beam segment, we're in business!
--Don Simons =============================== \input musixtex \nostartrule \makeatletter \def\beamst@m{% queue de note vers une poutre \getcurpos \advance\y@v-\b@x \y@ii\b@p\y@v \divide\y@ii\tw@nty \advance\y@ii\b@z \ifdim\y@ii>\st@top % la poutre est au-dessus \stem@skip\qd@skip \comp@slope\stem@skip \advance\y@ii\s@lope \ifnum\b@n>\z@ \advance\y@ii\b@n\interbeam \advance\y@ii-\interbeam \fi \st@top\y@ii % a mettre a jour avec la pente ulterieurement \else \stem@skip\z@ \ifdim\y@ii<\st@bot \ifnum\b@n<\z@ \advance\y@ii\b@n\interbeam \advance\y@ii\interbeam \fi \st@bot\y@ii \fi \fi % Added for the challenge problem \advance\st@top-\interbeam \C@stem} \makeatother \startextract %\notes\ibu0l{-1}\nbbu0\nbbbu0\qb0{jhi}\tbbbu0\qb0e\hqsk\en \notes\ibbbu0j{-1}\qb0{jhi}\tbbbu0\qb0e\hqsk\en \notes\nbbbu0\qb0{_i}\tbbu0\tbbbu0\nbbbu0\qb0e\en \notes\nbbu0\qb0h\tbbbu0\qb0c\hqsk\en \notes\nbbbu0\qb0{^ge}\hqsk\qb0{=g}\tbbbu0\tbbu0\loffset{30}{\tbu0}\qb0c\en \zendextract \end ======================================= >-----Original Message----- >From: Don Simons [mailto:dsim...@roadrunner.com] >Sent: Friday, May 02, 2014 12:12 AM >To: 'Werner Icking Music Archive' >Subject: RE: [Tex-music] LilyPond blog invites you to an engravingchallenge! :-) > >Andre's example looks good, but if we could solve the stemlength and parasitic beam >problems in Jean-Pierre's version, it would be better, because it only uses one beam, >and with that only one slope. There's no need to calculate starting heights for later >overlapping beams, and you can adjust the slope with just one parameter change, and >keep the same relative vertical positions of the various beam segments. > >On the stemlength issue, I tried this, but it doesn't work as I obviously intended. >When I make the adjustment positive, it then has an effect, but not what I'd expect. >And if I try adjusting \st@top directly, other weird things happen. > >================================ >\input musixtex >\nostartrule > >\makeatletter >\global\let\bst\beamst@m\gdef\beamst@m{\bst\advance\y@ii- >2\interbeam\st@top\y@ii\global\let\beamst@m\bst} >\makeatother > >\startextract >%\notes\ibu0l{-1}\nbbu0\nbbbu0\qb0{jhi}\tbbbu0\qb0e\hqsk\en >\notes\ibbbu0j{-1}\qb0{jhi}\tbbbu0\qb0e\hqsk\en >\notes\nbbbu0\qb0{_i}\tbbu0\tbbbu0\nbbbu0\qb0e\en >\notes\nbbu0\qb0h\tbbbu0\qb0c\hqsk\en >\notes\nbbbu0\qb0{^ge}\hqsk\qb0{=g}\tbbbu0\tbbu0\loffset{30}{\tbu0}\qb0c\e >n >\zendextract > >\end >=============================== > >--Don > >>-----Original Message----- >>From: TeX-Music [mailto:tex-music-boun...@tug.org] On Behalf Of Andre Van >>Ryckeghem >>Sent: Thursday, May 01, 2014 9:57 PM >>To: Werner Icking Music Archive >>Subject: Re: [Tex-music] LilyPond blog invites you to an engravingchallenge! :-) >> >>Dear Jean-Pierre and Don, >> >>For removing the parasitic beam, i think, you need a \tbu0 somewhere >>for shortening the stems perhaps you may use \stemlenght{n} before each note >>(i did not tested it in the example) >>In musixtex you must start with the maximum number of beams and the longest >>beam must be the upper one. >> >>But the proposed method can perhaps be used for the lilipond challenge: >>================== >>\input musixtex >>\nostartrule >> >>\startextract >>\notes\ibbu0l{-1}\qb0{jhi}\tbbu0\qb0e\hqsk\en >>\notes\ibu1k{-1}\qb0{_i}\tbu0\qb0e\en >>\notes\ibu0l{-1}\qb0h\tbu1\qb0c\hqsk\en >>\notes\ibu1j{-1}\qb0{^ge}\hqsk\qb0{=g}\tbu0\tbu1{\tbu0}\qb0c\en >>\zendextract >> >>\end >>=================== >> >>Andre >> >>-----Oorspronkelijk bericht----- >>From: Don Simons >>Sent: Friday, May 02, 2014 12:40 AM >>To: 'Werner Icking Music Archive' >>Subject: Re: [Tex-music] LilyPond blog invites you to an engravingchallenge! >>:-) >> >>Very clever! Your method lets musixtex compute starting heights for all the >>re-started beam segments. >> >>Sorry, I can't answer either question. For stem lengths, you could try to >>find the code in musixtex.tex that draws them, and then replace that with >>code that stops the upper part 2\interbeam (?) shorter. >> >>Why didn't you start it with \ibbbu0j{-1} rather than >>\ibu0l{-1}\nbbu0\nbbbu0 ? It seems to give the same result. >> >>I don't have a clue about the "parasitic" beam segment. >> >>--Don >> >>>-----Original Message----- >>>From: TeX-Music [mailto:tex-music-boun...@tug.org] On Behalf Of Jean-Pierre >>>Coulon >>>Sent: Thursday, May 01, 2014 3:01 AM >>>To: Werner Icking Music Archive >>>Subject: Re: [Tex-music] LilyPond blog invites you to an engraving >>challenge! :-) >>> >>>I almost obtained the snippet of the challenge with the attached source by >>>adding a "temporary" third beam. I intentionally let the beginning portion >>>of this 3rd beam so you understand the logic, but you can get rid of it >>>saying a \loffset bigger than 24 or so at line #8. >>> >>>But: 1: does anybody know where the "parasitic" beam portion below the >>>staff comes from? >>> >>>2: how to shorten stemlenghts so they do no climb above the 2nd beam? >>> >>>Otherwise my process would be easier than yours to put into a macro >>>because it's difficult to write a macro that does something at <pitch p> >>>*and* <pitch p+1> >>> >>>Bye >>> >>>Jean-Pierre Coulon >> >> >> >>------------------------------- >>TeX-music@tug.org mailing list >>If you want to unsubscribe or look at the archives, go to >>http://tug.org/mailman/listinfo/tex-music >> >> >>------------------------------- >>TeX-music@tug.org mailing list >>If you want to unsubscribe or look at the archives, go to >>http://tug.org/mailman/listinfo/tex-music ------------------------------- TeX-music@tug.org mailing list If you want to unsubscribe or look at the archives, go to http://tug.org/mailman/listinfo/tex-music