--- /dev/null
+% should be scriptified, probably
+\documentclass{article}
+\input lilyponddefs
+\title{Bach's Cello suites}
+
+\author{A.U.Thor}
+\begin{document}
+\maketitle
+
+\section{Banjo}
+
+It is normal to have some text around various figures. Such as this
+text which is merely to add some weight to the page. In het midden van
+mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
+Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
+geur/van de late jasmijn. Op een tochtje langs de rijn.
+
+\def\EndLilyPondOutput{}
+\begin{figure}[h]
+ \begin{center}
+ \leavevmode
+ \input bach1.out
+ \caption{original}
+ \end{center}
+\end{figure}
+
+Voglio centocinquante gramme di gorgonzola, tre di questi pannini e due bionde
+ragazze con ciocolatta e panna, per favore. Presto! Non posso parlare
+o scrivere la lingua italiana, ma provo.
+
+\section{Hammond-organ and electric guitar}
+
+It is normal to have some text around various figures. Such as this
+text which is merely to add some weight to the page. In het midden van
+mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
+Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
+geur/van de late jasmijn. Op een tochtje langs de rijn.
+
+\begin{figure}[h]
+ \begin{center}
+ \leavevmode
+\input bach2.out
+
+ \caption{interpretation 1}
+ \end{center}
+\end{figure}
+
+It is normal to have some text around various figures. Such as this
+text which is merely to add some weight to the page. In het midden van
+mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
+Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
+geur/van de late jasmijn. Op een tochtje langs de rijn.
+
+\begin{figure}[h]
+ \begin{center}
+ \leavevmode
+\input bach3.out
+
+ \caption{interpretation 2}
+ \end{center}
+\end{figure}
+
+Voglio centocinquante gramme di gorgonzola, tre di questi pannini e due bionde
+ragazze con ciocolatta e panna, per favore. Presto! Non posso parlare
+o scrivere la lingua italiana, ma provo.
+
+\end{document}
Break_algorithm::find_breaks() const
{
Line_of_cols retval;
- for (iter_top(pscore_.cols,c); c.ok(); c++)
+ for (iter_top(pscore_.cols,c); c.ok(); c++) {
if (c->breakable_b())
retval.push(c);
- assert(retval.top() == pscore_.cols.bottom().ptr());
+ }
+ if ( linelength <=0)
+ while ( retval.size() >2)
+ retval.del(1);
+
return retval;
}
+void
+Break_algorithm::generate_spacing_problem(Line_of_cols curline, Spacing_problem & sp)const
+{
+ sp.add_column(curline[0], true, 0.0);
+ for (int i=1; i< curline.size()-1; i++)
+ sp.add_column(curline[i]);
+
+ if ( linelength > 0)
+ sp.add_column(curline.top(), true, linelength);
+ else
+ sp.add_column(curline.top());
+}
Col_hpositions
Break_algorithm::stupid_solution(Line_of_cols curline)const
{
Spacing_problem sp;
- sp.add_column(curline[0], true, 0.0);
- for (int i=1; i< curline.size()-1; i++)
- sp.add_column(curline[i]);
- sp.add_column(curline.top(), true, linelength);
+ generate_spacing_problem(curline, sp);
Col_hpositions colhpos;
colhpos.cols = curline;
colhpos.energy = INFTY;
Break_algorithm::solve_line(Line_of_cols curline) const
{
Spacing_problem sp;
-
- sp.add_column(curline[0], true, 0.0);
- for (int i=1; i< curline.size()-1; i++)
- sp.add_column(curline[i]);
- sp.add_column(curline.top(), true, linelength);
+ generate_spacing_problem(curline, sp);
// misschien moeven uit Spacing_problem?
for (iter_top(pscore_.suz,i); i.ok(); i++) {
bool
Break_algorithm::feasible(Line_of_cols curline) const
{
+ if (linelength <= 0)
+ return true;
+
Real l =0;
for (int i=0; i < curline.size(); i++)
l +=curline[i]->width().length();
assert(end->breakable_b());
#endif
}
+
+Array<Col_hpositions>
+Break_algorithm::solve()const
+{
+
+ return do_solve();
+}
+