Commit da612374 authored by Júda Ronén's avatar Júda Ronén

זהו, גרסה להעלאה לאתר

parent 257fd38f
......@@ -7,22 +7,22 @@
\setotherlanguage{latin}
\setotherlanguage{russian}
\setotherlanguage{egyptian}
\newfontfamily\esperantofont{Vesper Pro}
\newfontfamily\latinfont{Vesper Pro}
\newfontfamily\esperantofont[Script=Latin, Language=Esperanto]{Vesper Pro}
\newfontfamily\latinfont[Script=Latin]{Vesper Pro}
\newfontfamily\russianfont[Script=Cyrillic, Language=Russian]{Gentium Plus}
\newfontfamily\japanesefont[Script=CJK, Language=Japanese]{IPAMincho}
\newfontfamily\koreanfont[Script=CJK, Language=Korean]{Baekmuk Batang}
\newfontfamily\egyptianfont{JSeshFont}
\newcommand{\EO}[1]{\textesperanto{\LR{#1}}}
\newcommand{\Lat}[1]{\textlatin{\LR{#1}}}
\renewcommand{\L}[1]{\LR{\fontspec{Vesper Pro}#1}} %⚙REMOVEME
\renewcommand{\L}[1]{\LR{\fontspec[Script=Latin]{Vesper Pro}#1}} %⚙REMOVEME
\newcommand{\Heb}[1]{\texthebrew{\RL{#1}}}
\newcommand{\Jap}[1]{{\japanesefont\LR{#1}}}
\newcommand{\Kor}[1]{{\koreanfont\LR{#1}}}
\newcommand{\Rus}[1]{\textrussian{\LR{#1}}}
\newcommand{\Kmt}[1]{{\egyptianfont{\LR{#1}}}}
\newcommand{\setEO}{\setLR\fontspec{Vesper Pro}}
\newcommand{\setEO}{\setLR\fontspec[Script=Latin]{Vesper Pro}}
\newcommand{\setHE}{\setRL\normalfont}
\newcommand{\dulingvaujo}[2] {
......
\subsection*{Antaŭparolo}
\section*{Antaŭparolo}
Tiu ĉi libro enhavas muzikaĵojn por ĉarma kordinstrumenteto nomiĝanta «\hl{Ukulelo}». Tio nomo, {\fontspec{Gentium}ʻ}ukulele, venas el la havaja lingvo kaj signifas «saltanta pulo».
Tiu ĉi libro enhavas muzikaĵojn por ĉarma kordinstrumenteto nomata «\hl{Ukulelo}». Tiu nomo, {\fontspec{Gentium}ʻ}ukulele, venas el la havaja lingvo kaj signifas «saltanta pulo».
La libro celas al \hl{komencantoj}, kaj tio videblas per kelkaj manieroj:
La libro celas ankaŭ al \hl{komencantoj}, kaj tio videblas per kelkaj manieroj:
\begin{compactitem}
\item Elekti multajn famajn muzikaĵojn (por tiuj, kiuj konas hebrealingvaj kantoj, ĉiuokaze…).
\item Skribi nur la melodia linio, sen akordoj, kiuj ne estas travideblaj por kompreni sen teoria fono, aŭ dua voĉo. Post kiam vi praktikos la ĉiuj muzikaĵoj en la libro, vi estos preta por ludi kelkaj voĉoj (en la futuro, mi eldonos libreton kun polifoniaj muzikaĵoj).
......@@ -13,15 +13,18 @@ La libro celas al \hl{komencantoj}, kaj tio videblas per kelkaj manieroj:
\item Dua rango, unu kokcinelo (\rangoB): iomete pli malfacila. La marko {\rangoAB} signifas muzikaĵoj kun kaj facilaj kaj malfacilaj partoj.
\item Tria rango, du kokcineloj (\rangoC): tre malfacilaj muzikaĵoj.
\end{compactitem}
Mi mallingigis kaj simpligis malmultajn malsimplajn muzikaĵojn, sed ĝenerale la muzikaĵoj estas prezentitaj en ilia plena formo.
\item Krom la kutima moderna okcidentuma notskribo, laŭ tonalto, kompostiĝas tabulaturo. La tabulaturo signifas kiun freton kaj kiun kordon oni devas uzi (sekve ĝi taŭgas nur al ukuleloj kun la regula agordo, ne al aliaj instrumentoj aŭ ukuleloj kun aliaj agordoj). Tabulaturo estas tre facila metodo por komencantoj; post mallonga ekspliko (vidu sube), oni tuj povas ludi simplajn konatajn melodiojn. Tiomaniere, kiam kaj la kutima notskribo kaj la tabulaturo estas videbla paralele, tiuj, kiuj povas legi la notskribon, povas ludi laŭ ĝi per aliaj instrumentoj.
\item Krom la kutima moderna okcidentuma notskribo, laŭ tonalto, kompostiĝas tabulaturo. La tabulaturo signifas kiun freton kaj kiun kordon oni devas uzi (sekve ĝi taŭgas nur al ukuleloj kun la regula agordo, ne al aliaj instrumentoj aŭ ukuleloj kun aliaj agordoj). Tabulaturo estas tre facila metodo por komencantoj; post mallonga ekspliko (vidu sube), oni tuj povas ludi simplajn konatajn melodiojn. Tiomaniere, kiam kaj la kutima notskribo kaj la tabulaturo estas videbla paralele, tiuj, kiuj povas legi la notskribon, povas ludi laŭ ĝi per aliaj instrumentoj (ekz.\ bekflutoj, kiuj havas tongamon similan al la tongamo de ukuleloj).
\end{compactitem}
La kriterio por elekti la muzikaĵoj estas simpla: muzikaĵoj, kiujn mi kaŭ mia idoj ŝatas.
La \hl{kriterio} por elekti la muzikaĵoj estas simpla kaj subjektiva: muzikaĵoj, kiujn mi kaŭ mia idoj ŝatas.
La dispartigado al diversaj \hl{kategorioj} estas tre ĝenerala, kaj estas intencita esti helpo al direktado, ne kiel sistema klasifikado.
\subsection*{Agordo}
\newpage %⚙⚙⚙ FIXME: HACK
\section*{Agordo}
\begin{wrapfigure}[6]{r}{3.0cm}\vspace{-1\baselineskip}
\includegraphics[width=3.5cm]{agordo.eps}
......@@ -32,7 +35,7 @@ La pli facila maniero por agordi la ukulelo estas pe \hl{elektronika agordilo},
\subsection*{Kiel oni legas tabulaturon?}
\section*{Kiel oni legas tabulaturon?}
Ni kutimas al skribado de muziko sur notliniaro: signifante la tonalto per grafika alto kaj la tondaŭro per la formo de notoj. Tiu muzika notacio konvenas multajn instrumentojn (tiu estas malspecifa), kaj havas multajn teoriajn kaj realajn utilojn. En \hl{tabulaturo}, tamen, tio, kiu estast signifita, ne estas la alto de la tono, sed la maniero de sia farado per specifa instrumento. Tio faras la tabulaturon pli alirebla por junaj lernantoj.
......@@ -127,7 +130,7 @@ Oni legas tabulaturon de maldekstre, kiel la kutiman muzikan notacion. Kiel ni j
\end{minipage}
\vspace{\baselineskip}
La daŭroj de la tonoj estas indikitaj tie ĉi nur sur la tonalta notskribo, normale: \symbolglyph{𝅝} signifas plenan daŭron (\L{1}), \symbolglyph{𝅗𝅥} signifas duona (\L{½}), \symbolglyph{𝅘𝅥} signifas kvarona (\L{¼}), kaj \symbolglyph{𝅘𝅥𝅮}\symbolglyph{} signifas okona (\L{}); la egalvaloroj de la paŭzoj estas \symbolglyph{𝄻}, \symbolglyph{𝄼}, \symbolglyph{𝄽} ו־\symbolglyph{𝄾}, respektive. Punkto apud la noto signifas aldoni al ĝi duono de ĝia daŭro.
La daŭroj de la tonoj estas indikitaj tie ĉi nur sur la tonalta notskribo, normale: \symbolglyph{𝅝} signifas plenan daŭron ({1}), \symbolglyph{𝅗𝅥} signifas duona ({½}), \symbolglyph{𝅘𝅥} signifas kvarona ({¼}), kaj \symbolglyph{𝅘𝅥𝅮}\symbolglyph{} signifas okona ({}); la egalvaloroj de la paŭzoj estas \symbolglyph{𝄻}, \symbolglyph{𝄼}, \symbolglyph{𝄽} kaj \symbolglyph{𝄾}, respektive. Punkto apud la noto signifas aldoni al ĝi duono de ĝia daŭro.
Ĉu vi volas certigi, ke vi bone komprenas? Jen la komenco de «Hanseto la Malgranda» (\emph{Hänschen klein}\footnote{\url{https://commons.wikimedia.org/wiki/File:Picking_Haenschen_klein_einfach.mid}}). Provu ludi tion:
......@@ -159,30 +162,30 @@ Ripetoj estas indikitaj per \symbolglyph{𝄆} kaj \symbolglyph{𝄇}. Kiam la d
\subsection*{Informo kaj kontaktimformo}
\section*{Informo kaj kontaktimformo}
\begin{wrapfigure}[4]{r}{1.75cm}\vspace{-\baselineskip}\includegraphics[width=1.5cm]{retejo.png}\end{wrapfigure}
La \hl{retejo} de Puŝiŝit eldonejo estas
\begin{center}
\url{http://xpr.digitalwords.net/ukulele}
\url{http://xpr.digitalwords.net/}
\end{center}
Estas QR-kodo dekstre, por saĝtelefonoj. Ĉe la paĝo de Ekukulele en la retejo estas:
Estas QR-kodo dekstre, por saĝtelefonoj. Ĉe la paĝo de \hl{Ekukulele} en la retejo estas:
\begin{compactitem}
\item Pli da informo, inkluzive ligiloj por ekstera legado kaj sonregistraĵoj.
\item PDF-dosiero: por legi per komputilo kaj por presi.
\item Son-dosieroj, per kiuj vi povus aŭdi ĉiujn muzikaĵojn de la libro. Vere, la ludado ne estas homa, sed aŭtomata-komputila (MIDI); tamen, ĝi povas helpi.
\item Fontkodo. Ĉiuj iloj uzataj por produkti la libron estas liberaj, malfermkodaj programaroj: la muziko estas kompostita per Lilypond, la teksto per {\LaTeX}, la datumaro estas SQLite-a, kaj Python-a programoj, kiujn mi skribis, venigas datumoj de ĝi.
\item Fontkodo. Ĉiuj iloj uzataj por produkti la libron estas liberaj, malfermkodaj programaroj: la muziko estas kompostita per Lilypond, la teksto per {\LaTeX}, la datumaro estas SQLite-a, kaj Python-a programoj, kiujn mi verkis, venigas datumoj de ĝi.
\end{compactitem}
En la retejo de Puŝiŝit vi povas trovi \hl{aliajn librtojn kaj librojn}, de diversaj temoj, inkluzive du aliaj, kiuj havas muzikaĵoj:
En la retejo vi ankaŭ povas trovi \hl{aliajn librtojn kaj librojn}, de diversaj temoj, inkluzive du aliaj, kiuj havas muzikaĵoj:
\begin{compactitem}
\item Okarineto: facilaj muzikaĵoj por okarino.
\item Kolorklavaro: facilaj muzikaĵoj por klavarinstrumentoj.
\item Muzikoloroj: facilaj muzikaĵoj por klavarinstrumentoj.
\end{compactitem}
Ĉion en ĉi tiu libro, kiun mi mem verkis, mi \hl{liberigas} kiel CC BY: bonvolu kopii, aliigi, disdoni kaj uzi ĝin laŭvole, sed adekvate atribuu.
Pri ĉiu afero, ne hezitu \hl{kontakti} min per retpoŝto ({\url{ukulele}\symbolglyph{}\url{digitalwords.net}}) aŭ per telefono (\mbox{+972-2-6419913}). Specife, mi ĝojus aŭdi tion, kiu vi volas diri al mi pri la libro, kaj mi ĝojus ricevi proponojn, plibonigojn, kaj ĝustigojn. Ĉu vi volas sonregistri vin ludante kaj sendi la sonregistraĵon al mi? Mi ĝojegos! \symbolglyph{}
Pri ĉiu afero, ne hezitu \hl{kontakti} min per retpoŝto ({\url{ukulele}\symbolglyph{}\url{digitalwords.net}}) aŭ per telefono (\mbox{+972-2-6419913}). Specife, mi ĝojus aŭdi tion, kiu vi volas diri al mi pri la libro, kaj mi ĝojus ricevi proponojn, plibonigojn, kaj ĝustigojn (al la notoj, la tabulaturo, la fingrado kaj ĝenerale). Ĉu vi volas sonregistri vin ludante kaj sendi la sonregistraĵon al mi? Mi ĝojegos! \symbolglyph{}
\vspace{\baselineskip}
~\hfill
......
......@@ -2,7 +2,7 @@
בספר הזה תמצאו מבחר מנגינות לנגינה על כלי פריטה קטנטן ומקסים עם ארבעה מיתרים שנקרא „\hl{אוּקוּלֶלֶה}”. השם הזה, \L{{\fontspec{Gentium}ʻ}ukulele}, מגיע משפה שנקראת הוואיאית, והמשמעות שלו היא „פרעוש קופץ”.
הספר מיועד ל\hl{מתחילים}, מה שמתבטא בכמה אופנים:
הספר מיועד גם ל\hl{מתחילים}, מה שמתבטא בכמה אופנים:
\begin{compactitem}
\item בחירה במנגינות מוכרות רבות, חלקן שירים ידועים בעברית. לא כולן בהכרח „הלחם והטחינה” של כולם, אבל אני די בטוח שלפחות את חלקן תזהו.
\item כתיבה של הקו המלודי בלבד, ולא ליווי באקורדים, שהם לא שקופים להבנה בלי רקע תיאורטי, או קול שני. אחרי שתתאמנו על כל המנגינות שבספר תהיו מוכנים לגמרי להתחיל לנגן כמה קולות (בעתיד אוציא חוברת עם מנגינות בכמה קולות).
......@@ -13,11 +13,12 @@
\item דרגה שניה, חיפושית אחת (\rangoB): מנגינות מעט יותר מאתגרות. הסימון {\rangoAB} אומר שמדובר במחרוזת או במנגינה עם חלקים ששייכים לדרגה הראשונה וחלקים שלשניה.
\item דרגה שלישית, שתי חיפושית (\rangoC): מנגינות ממש קשות.
\end{compactitem}
מעט קטעים מורכבים פישטתי וקיצרתי, אבל ככלל המנגינות מופיעות במלואן.
\item בנוסף לסימון תווים בשיטה המערבית המודרנית הרגילה לפי גובה הצליל, מצורפת טבלטורה. הטבלטורה מסמנת בדיוק על איזה סריג ללחוץ ועל איזה מיתר לפרוט (ולכן היא מתאימה לאוקוללה לפי הכיוון הרגיל בלבד, ולא לכלים אחרים או כיוונים אחרים). טבלטורה היא שיטה קלה מאוד למתחילים; אחרי הסבר של רגע (ר׳~למטה) אפשר ישר להתחיל לנגן מנגינות פשוטות מוכרות. באופן כזה, כשהתווים הרגילים והטבלטורה נמצאים אחד מעל השני, מי שיודעים לקרוא תווים יכולים לנגן לפיהם גם בכלי־נגינה אחרים.
\item בנוסף לסימון תווים בשיטה המערבית המודרנית הרגילה לפי גובה הצליל, מצורפת טבלטורה. הטבלטורה מסמנת בדיוק על איזה סריג ללחוץ ועל איזה מיתר לפרוט (ולכן היא מתאימה לאוקוללה לפי הכיוון הרגיל בלבד, ולא לכלים אחרים או כיוונים אחרים). טבלטורה היא שיטה קלה מאוד למתחילים; אחרי הסבר של רגע (ר׳~למטה) אפשר ישר להתחיל לנגן מנגינות פשוטות מוכרות. באופן כזה, כשהתווים הרגילים והטבלטורה נמצאים אחד מעל השני, מי שיודעים לקרוא תווים יכולים לנגן לפיהם גם בכלי־נגינה אחרים (כמו חלילית, שיש לה מנעד מאוד דומה לזה של האוקוללה).
\end{compactitem}
את המנגינות בחרתי לפי קריטריון פשוט: כאלה שאני או הילדים שלי אוהבים.
את המנגינות בחרתי לפי \hl{קריטריון} אישי ופשוט: מנגינות שאני ו/או הילדים שלי אוהבים.
החלוקה ל\hl{קטגוריות} השונות כללית מאוד, ונועדה רק להוות עזר להתמצאות ולא סיווג שיטתי.
......@@ -32,7 +33,7 @@
\hesection{איך קוראים טבלטורה?}
\hesection{מה זה טבלטורה ואיך קוראים אותה?}
אנחנו רגילים לכתיבה של מוזיקה על־גבי חַמְשָׁה, כאשר גובה הצליל מסומן על־ידי גובה התו על־גבי החמשה ואורכו מסומן על־ידי צורת התו. הצורת הכתיבה הזאת מתאימה לכלים רבים (כלומר, היא לא ספציפית לכלי מסויים) ויש לה יתרונות תיאורטיים ופרקטיים. ב\hl{טבלטורה}, לעומת זאת, מה שמסומן הוא לא הגובה של הצליל, אלא אופן ההפקה שלו על כלי מסויים, מה שהופך אותה לנגישה יותר ללומדים צעירים, בגלל שנחסך מהם הצורך לתווך בין סימון מופשט לביצוע קונקרטי בכלי שבו הם מנגנים.
......@@ -106,21 +107,21 @@
\begin{center}
\url{http://xpr.digitalwords.net}
\end{center}
בצד שמאל, קוד \Lat{QR} לקריאה מטלפונים חכמים. בדף של אוקליקלות באתר תוכלו למצוא:
בצד שמאל, קוד \Lat{QR} לקריאה מטלפונים חכמים. בדף של \hl{אוקליקלות} באתר תוכלו למצוא:
\begin{compactitem}
\item מידע נוסף ורקע, כולל קישורים לקריאה נוספת ולביצועים מוקלטים. לא לכל המנגינות מופיע כל המידע; דפים באינטרנט, בניגוד לדפוס, הם גמישים, כך שהמידע שם צפוי להיות מורחב עם הזמן. אם יש לכם משהו להוסיף, כִּתבו אלי.
\item מידע נוסף ורקע, כולל קישורים לקריאה נוספת ולביצועים מוקלטים. אם יש לכם משהו להוסיף, כִּתבו אלי.
\item קובץ \L{PDF}: לקריאה מהמחשב או להדפסה.
\item קבצי שמע שבעזרתם תוכלו לשמוע את כל המנגינות כפי שהן מופיעות בספר. אמנם מדובר בביצוע לא אנושי אלא ממוחשב־אוטומטי (\L{MIDI}) אבל הוא נותן מושג כללי.
\item קבצי המקור. כל הכלים שבהם נעשה שימוש ליצירת הספר הם כלים חופשיים, בקוד פתוח: המוזיקה מסודרת בעזרת \L{LilyPond}, הטקסט בעזרת \L{\XeLaTeX}, מסד־הנתונים הכולל את פרטי המנגינות והרקע שמור בעזרת \L{SQLite} וחילוץ הנתונים נעשה באמצעות סקריפטים שכתבתי ב־\L{Python}.
\end{compactitem}
באתר של פושישית תמצאו גם \hl{חוברות וספרים נוספים}, בנושאים שונים, ביניהם גם חוברת בשם „אוֹקַלִינָה”, שהיא אחות קטנה של „אוקליקלות” עבור כלי נשיפה קטנטן ומתוק בשם „אוקרינה” (\L{Ocarina}), גם הוא מתאים מאוד למתחילים, וחוברת דומה בשם „מֶלוֹדִיקַל” עבור כלי מקלדת (ופרט מלודיקה, \L{Melodica}).
באתר של פושישית תמצאו גם \hl{חוברות וספרים נוספים}, בנושאים שונים, ביניהם גם שתי אחיות קטנות ל„אוקליקלות”: „אוֹקַלִינָה”, ספר עבור כלי נשיפה קטנטן ומתוק בשם „אוקרינה” (\L{Ocarina}), גם הוא מתאים מאוד למתחילים, וספר דומה בשם „מֶלוֹדִיקַל”, עבור כלי־מקלדת (ופרט מלודיקה, \L{Melodica}).
כל מה שעשיתי אני בספר הזה \hl{משוחרר לחופשי} תחת רשיון \Lat{CC BY}: אתם יכולים להעתיק, לשנות, להפיץ ולהשתמש בה כרצונכם, רק בבקשה תנו קרדיט.
בכל עניין, אל תהססו \hl{לפנות אלי} בדואל (\LR{\url{ukulele}\symbolglyph{}\url{digitalwords.net}}) או בטלפון (\mbox{02-6419913}). אשמח לשמוע כל מה יש לכם להגיד על הספר, ולקבל הצעות, שיפורים ותיקונים, וכן בקשות למנגינות חדשות. מצאתם טעות? יש לכם מה להוסיף? פשוט נהנתם מהספר? ספרו… רוצים להקליט את עצמכם מנגנים ולשלוח אלי? אהיה מאושר עד הגג! \symbolglyph{}
בכל עניין, אל תהססו \hl{לפנות אלי} בדואל (\LR{\url{ukulele}\symbolglyph{}\url{digitalwords.net}}) או בטלפון (\mbox{02-6419913}). אשמח לשמוע כל מה יש לכם להגיד על הספר, ולקבל הצעות, שיפורים ותיקונים (לתווים, לטבלטורה, לאצבוע ובכלל), וכן בקשות למנגינות חדשות. מצאתם טעות? יש לכם מה להוסיף? פשוט נהנתם מהספר? ספרו… רוצים להקליט את עצמכם מנגנים ולשלוח אלי? אהיה מאושר עד הגג! \symbolglyph{}
\vspace{\baselineskip}
%\vspace{\baselineskip}
~\hfill
\begin{minipage}{3cm}
יודה רונן\\
......
......@@ -3,12 +3,12 @@
\dulingvaujo
{
\textbf{אוּקַלֵּיקַלּוּת}\\
נעימות קלות לנגינה באוקוללה\\[1ex]
נעימות לנגינה באוקוללה\\[1ex]
ליקוט, עיבוד וסדר:\\יודה רונן
}
{
\textbf{Ekukulele}\\
Facilaj muzikaĵoj por ukulelo\\[1ex]
Muzikaĵoj por ukulelo\\[1ex]
Elektitaj, aranĝitaj kaj kompostitaj per\\Júda Ronén
}
......@@ -42,12 +42,12 @@
\dulingvaujo
{
%מהדורה שניה ומורחבת,\\הדפסה ראשונה: עותק \underline{~ ~ ~ ~ ~} מתוך 6
מהדורה שניה ומורחבת,\\עותק דיגיטלי (\EO{\the\year·\the\month·\the\day})
%מהדורה שניה ומורחבת (\LR{2\mbox{$$.$$}1}),\\הדפסה ראשונה (\EO{\the\year·\the\month·\the\day}):\\עותק \underline{~ ~ ~ ~ ~} מתוך 4
מהדורה שניה ומורחבת (\LR{2\mbox{$$.$$}1}),\\עותק דיגיטלי (\EO{\the\year·\the\month·\the\day})
}
{
%Dua pligrandigita eldono,\\unua presado: \underline{~ ~ ~ ~ ~}a kopio el 10
Dua pligrandigita eldono,\\cifereca kopio (\the\year·\the\month·\the\day)
%Dua pligrandigita eldono (2\mbox{$$.$$}1),\\unua presado (\EO{\the\year·\the\month·\the\day}):\\\underline{~ ~ ~ ~ ~}a kopio el 4
Dua pligrandigita eldono (2\mbox{$$.$$}1),\\cifereca kopio (\the\year·\the\month·\the\day)
}
\apartigilo
......@@ -72,13 +72,15 @@
המקורות לתמונות שעל הכריכה:
\begin{itemize}
\item הקדמית: \href{https://www.flickr.com/photos/jemshed/6423813619/}{\L{A Yellow Ukulele}} מאת \href{https://www.flickr.com/photos/jemshed/}{\L{Jem Yoshioka}} (רשיון \href{https://creativecommons.org/licenses/by-sa/2.0/}{\L{CC BY-SA 2.0}})
\item אחורית: \href{https://www.flickr.com/photos/ganmed64/3645911185/}{\L{Ukuleles in the air}} מאת \href{https://www.flickr.com/photos/ganmed64/}{\L{GanMed64}} (רשיון \href{https://creativecommons.org/licenses/by/2.0/}{\L{CC BY 2.0}})
%\item אחורית: \href{https://www.flickr.com/photos/ganmed64/3645911185/}{\L{Ukuleles in the air}} מאת \href{https://www.flickr.com/photos/ganmed64/}{\L{GanMed64}} (רשיון \href{https://creativecommons.org/licenses/by/2.0/}{\L{CC BY 2.0}})
\item אחורית: \href{https://www.flickr.com/photos/rishistar/3869642897/}{\L{The London Ukulele Festival 2009}} מאת \href{https://www.flickr.com/photos/rishistar/}{\L{rishistar}}
\end{itemize}
}
{
La fontoj de la kovrilaj bildoj:
\begin{itemize}
\item Antaŭa: \href{https://www.flickr.com/photos/jemshed/6423813619/}{\L{A Yellow Ukulele}} de \href{https://www.flickr.com/photos/jemshed/}{\L{Jem Yoshioka}} (permesilo \href{https://creativecommons.org/licenses/by-sa/2.0/}{\L{CC BY-SA 2.0}})
\item Malantaŭa: \href{https://www.flickr.com/photos/ganmed64/3645911185/}{\L{Ukuleles in the air}} de \href{https://www.flickr.com/photos/ganmed64/}{\L{GanMed64}} (permesilo \href{https://creativecommons.org/licenses/by/2.0/}{\L{CC BY 2.0}})
%\item Malantaŭa: \href{https://www.flickr.com/photos/ganmed64/3645911185/}{\L{Ukuleles in the air}} de \href{https://www.flickr.com/photos/ganmed64/}{\L{GanMed64}} (permesilo \href{https://creativecommons.org/licenses/by/2.0/}{\L{CC BY 2.0}})
\item Malantaŭa: \href{https://www.flickr.com/photos/rishistar/3869642897/}{\L{The London Ukulele Festival 2009}} de \href{https://www.flickr.com/photos/rishistar/}{\L{rishistar}}
\end{itemize}
}
......@@ -19,6 +19,7 @@ def process_category(category):
for row in c.execute("SELECT * FROM muzikaĵoj\
WHERE (u1='v' OR u1='vv') AND kategorio='" + category + "'\
ORDER BY `titolo-he`"):
# print("*" + row['dosiernomo'] + "*")
print("\enhavero" +
"{" + row['dosiernomo'] + "}" +
"{" + row['titolo-he'] + "}" +
......
#!/usr/bin/python3
import argparse
import re
import sqlite3
book_paths = {
'u1': {'xpr': 'ukulele',
'gitlab': 'https://gitlab.com/rwmpelstilzchen/ukulele/blob/master/\
muzika%C4%B5oj/'},
}
DBFILE = '../datumaro/datumaro.db'
DEFAULT_LANG = 'he'
DEFAULT_BOOK = 'u1'
PDF_PATH = 'http://xpr.digitalwords.net/senmova/pdf/' +\
book_paths[DEFAULT_BOOK]['xpr'] + '/'
PNG_PATH = 'http://xpr.digitalwords.net/senmova/png/' +\
book_paths[DEFAULT_BOOK]['xpr'] + '/'
MIDI_PATH = 'http://xpr.digitalwords.net/senmova/midi/' +\
book_paths[DEFAULT_BOOK]['xpr'] + '/'
MP3_PATH = 'http://xpr.digitalwords.net/senmova/mp3/' +\
book_paths[DEFAULT_BOOK]['xpr'] + '/'
LILYPOND_PATH = book_paths[DEFAULT_BOOK]['gitlab']
dictionary = {
('he', 'index'): 'תוכן עניינים',
('eo', 'index'): 'Indekso',
('he', 'pieces'): 'מנגינות',
('eo', 'pieces'): 'muzikaĵoj',
('he', 'lyricist'): 'מילים',
('eo', 'lyricist'): 'poeto',
('he', 'www'): 'קישורים',
('eo', 'www'): 'TTT-a ligiloj',
('he', 'score'): 'תווים',
('eo', 'score'): 'Partituro',
('he', 'recording'): 'ביצוע מוקלט',
('eo', 'recording'): 'Sonregistro',
('he', 'zemereshet'): 'דף השיר באתר „זמרשת”',
('eo', 'zemereshet'): 'La retpaĝo de la kanto en «Zemereŝet»',
('he', 'withscore'): '(כולל תווים)',
('eo', 'withscore'): '(kun partituro)',
}
def latex(text):
p = re.compile('\~')
text = p.sub(' ', text)
if text == '{\popola}':
return '*popola*'
elif text == '{\sennoma}':
return '*sennoma*'
else:
return text
def create_button(label, url):
print("<a class=\"pure-button\" " +
"style=\"font-size: 80%; padding: 0.5ex\" href=\"" + url + "\">" +
label +
"</a>")
def print_metatag(dbname, dicname, language, row):
if row[dbname + language] is not None:
print("*" + dictionary[language, dicname] + "*:&nbsp;" +
"" + row[dbname + language] + " ")
def output_index(database, book, language):
print("## " + dictionary[language, 'index'])
c = database.cursor()
for row in c.execute("SELECT kategorio, COUNT(*) as cnt\
FROM muzikaĵoj\
WHERE " + book + " = 'vv'\
GROUP BY kategorio\
ORDER BY COUNT(*) DESC"):
cn = database.cursor()
cn.execute("SELECT * FROM kategorioj WHERE kategorio='" +
row['kategorio'] + "'")
categoryInfo = cn.fetchone()
if categoryInfo is not None:
print("* [" + categoryInfo['nomo-' + language] + "]" +
"(#kat-" + categoryInfo['kategorio'] + "-" + language + ")" +
" <small>" + "(" + str(row['cnt']) + " " +
dictionary[language, 'pieces'] + ")" + "</small>")
def process_category(database, book, language, category):
c = database.cursor()
c.execute("SELECT * FROM kategorioj WHERE kategorio='" + category + "'")
categoryInfo = c.fetchone()
if categoryInfo is not None:
print("## <a name=" +
"\"kat-" + categoryInfo['kategorio'] + "-" + language + "\">" +
"</a> " +
categoryInfo["nomo-" + language])
for row in c.execute("SELECT * FROM muzikaĵoj WHERE " +
book + " ='vv' AND kategorio='" +
category + "'\
ORDER BY `titolo-he`"):
print("<div style=\"margin-bottom: 3em\">")
print("<div>")
if language == 'he':
print("<div style=\"float: right;\
border-top: 1px solid gray;\
border-bottom: 1px solid gray\">")
else:
print("<div style=\"float: left\">")
if row['ikono-ttt'] is not None:
print(row['ikono-ttt'], end='')
else:
print(row['ikono'], end='')
print(" **" + latex(row['titolo-' + language]) + "**" +
" / ", end='')
if row['komponisto-' + language + '-ttt'] is not None:
print("[" + latex(row['komponisto-' + language]) + "]" +
"(" + row['komponisto-' + language + '-ttt'] + ")", end='')
else:
print(latex(row['komponisto-' + language]), end='')
if row['poeto-' + language] is not None:
print("; " + dictionary[language, 'lyricist'] + ": ", end="")
if row['poeto-' + language + '-ttt'] is not None:
print("[" + latex(row['poeto-' + language]) + "]" +
"(" + row['poeto-' + language + '-ttt'] + ")")
else:
print(latex(row['poeto-' + language]))
# TODO: generalize
if row['u1-rango'] != '1':
if row['u1-rango'] == '1/2':
print(" <small>🐞</small>")
elif row['u1-rango'] == '2':
print(" 🐞")
elif row['u1-rango'] == '3':
print(" 🐞🐞")
print("</div>")
if language == 'he':
print("<div style=\"float: left; direction: ltr\">")
else:
print("<div style=\"float: right; direction: ltr\">")
create_button("PDF", PDF_PATH + row['dosiernomo'] + ".pdf")
create_button("PNG", PNG_PATH + row['dosiernomo'] + ".png")
create_button("MIDI", MIDI_PATH + row['dosiernomo'] + ".midi")
create_button("MP3", MP3_PATH + row['dosiernomo'] + ".mp3")
create_button("LilyPond",
LILYPOND_PATH +
row['dosiernomo'] + "/" +
row['dosiernomo'] + ".ly")
print("</div>")
print("</div>")
print("<br style=\"clear: both\" />")
print()
if row['noto-' + language] is not None:
print(row['noto-' + language])
print()
print_metatag('ttt-', 'www', language, row)
if row['partituro-' + language] != 'zemereshet':
print_metatag('partituro-', 'score', language, row)
print_metatag('sono-', 'recording', language, row)
if row['zemereshet'] is not None:
print("[" + dictionary[language, 'zemereshet'] + "]" +
"(http://www.zemereshet.co.il/song.asp?id=" +
row['zemereshet'] + ")", end="")
if row['partituro-' + language] == 'zemereshet':
print(" " + dictionary[language, 'withscore'] + ".")
else:
print(".")
print("</div>")
def process_data(database, book, language):
c = database.cursor()
isFirstCategory = True
output_index(database, book, language)
for row in c.execute("SELECT kategorio, COUNT(*)\
FROM muzikaĵoj\
WHERE " + book + " = 'vv'\
GROUP BY kategorio\
ORDER BY COUNT(*) DESC"):
if not isFirstCategory:
print("")
else:
isFirstCategory = False
if row[1] > 0:
process_category(database, book, language, row[0])
def main():
print("title: ⚙\n") # TODO: removeme
print("<style>.mk {display: none}</style>")
parser = argparse.ArgumentParser(
description="⚙")
parser.add_argument("-d", "--database", type=str,
default=DBFILE,
help="database file")
parser.add_argument("-l", "--lang", type=str, default=DEFAULT_LANG,
help="language")
parser.add_argument("-b", "--book", type=str, default=DEFAULT_BOOK,
help="language")
args = parser.parse_args()
dbconn = sqlite3.connect(args.database)
dbconn.row_factory = sqlite3.Row
process_data(dbconn, args.book, args.lang)
if __name__ == "__main__":
main()
......@@ -22,8 +22,8 @@ melodio = {
<bes\1>2 <bes\1>2 |
<aes\4>4 <aes\4>4 <g\4>4 <ees\3>8 <c\3>8 |
<f\2>2 <f\2>2_\markup{\italic{Fine}} |
\bar "||"
\break
\repeat volta 2 {
<ees'\1>4 <c'\4>4 <ees'\1>4 <c'\4>8 <ees'\1>8 |
<f'\1>2 <f'\1>4. <f'\1>8 |
......
......@@ -81,7 +81,7 @@ melodio = {
cis' cis' cis' cis' ~ cis' bis ais gis |
bis bis bis bis b2 |
r r4 r8 dis |
\mark\markup{"×∞"}
\mark\markup{"ad lib."}
}
}
......
......@@ -120,7 +120,7 @@ melodio = {
d'4.-1 a8 f' e'4 d'8 |
c'4\2 d'8.\2 c'16\2 c'\2 bes\2 a8\2 ~ a4\2 |
\once \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
\mark ""
\mark "ad lib."
}
}
......@@ -231,7 +231,7 @@ emelodio = {
e'4. b8 g' fis'4 e'8 |
d'4 e'8. d'16 d' c' b8 ~ b4 |
\once \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
\mark ""
\mark "ad lib."
}
}
......
......@@ -13,7 +13,7 @@
\include "../titolo.ly"
threeravens = {
\key a \major
\key fis \minor
\partial 4 { fis | }
fis gis\4 a cis' |
b a gis2\4 |
......@@ -56,10 +56,10 @@ twacorbies = {
}
melodio = {
\mark "A"
\mark "×3"
\threeravens
\break
\mark "B"
\mark "×2"
\twacorbies
}
......
......@@ -33,7 +33,7 @@ melodio = {
}
\alternative {
{ <f\2>8 <a\1>8 <c'\1>8 <c\3>8 \break}
{ <f\2>4. r8 }
{ <f\2>2 }
}
\bar "|."
}
......
......@@ -60,6 +60,8 @@ melodio = {
\repeat volta 2 {
r4 ees8 g\4 bes\2 c'\2 des'\4 f' ~ |
f' ees'4. r2 |
\once \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
\mark "ad lib."
}
}
......
......@@ -22,7 +22,7 @@ melodio = {
%e8. dis16 e8. dis16 e8. dis16 e8. dis16 |
%e8. dis16 e8. dis16 e2 |
e8. dis16 e8. dis16 e8. g16\4 c8. c16 |
e4 g4\4 g2\4
e4 g4\4 g2\4 |
c8 c4 c8 d4 e4 |
f1 |
\bar "|."
......
......@@ -40,7 +40,7 @@ melodio = {
f a d'32 b c'16 c'8. c'16 ~ c' d'32 e' f' d' a16 bes ~ bes32 a g a bes16 |
\appoggiatura f e f32 g g\prall f g16 a8 ~ a64 g f e f a cis32 d16 d'16. e'64 d' cis'32 d' a8( g16.) a32 |
a1\fermata |
\bar "||"
\bar "|."
}
\include "../muziko.ly"
......@@ -35,7 +35,7 @@ melodio = {
\break
e d e f aes c'8 b32 a |
c'8 g16\4 r c' d' e' c' |
d'8 d' ces'16 c' d' b |
d'8 d' b16 c' d' b |
c'8. r16 r4
\break
\key c \minor
......
......@@ -35,7 +35,7 @@ melodio = {
d4. c8 d4. g8\4 |
g4.\4 e8 f16 e16 f8 g8\4 e8|
e4. a8
\break
a4 a8 g8\4 f4 g8\4 a8
f8 e8 d8 e8 c4. e8
g4.\4 f16 e16 d8 e8 f8 e8
......
\include "../ĉiea.ly"
\header {
titolo-xx = ""
titolo-he = "רגע עם דודלי: ציפי הציפור"
titolo-eo = "Rega kun Dodli: Cipi la birdo"
komponisto-xx = ""
komponisto-he = "רומן קונסמן"
komponisto-eo = "Roman Kunsman"
ikono = "🐤"
}
\include "../titolo.ly"
melodio = {
\repeat volta 2 {
c' g\4 c'8 c' e4 |
f-. d-. e16( f) g\4 a g4\4 |
c' g\4 c'16 c' c' c' e4 ~ |
e8 f4 d8 c2 |
\break
c'4 g\4 c'8 c' e4 |
f-. d-. e16( f) g\4 a g4\4 |
c' g\4 e'8 e' c'4 ~ |
}
\alternative {
{
c'2 e16 d c d e f g\4 b |
}
{
c'1\repeatTie |
c'8 c' c' c' c2 |
\bar "|."
}
}
}
\include "../muziko.ly"
\include "../ĉiea.ly"
\header {
titolo-xx = ""
titolo-he = "גמלן: אלינג אלינג"
titolo-eo = "Eling Eling"
komponisto-xx = ""
komponisto-he = ""
komponisto-eo = ""
ikono = "🔨"
}
\include "../titolo.ly"
melodio = {
\key d \pelog
\tempo 8 = 120
\time 8/8
\set Timing.beatStructure = #'(4 4)
\partial 8 a8 |
\repeat volta 2 {
bes8 a f ees d ees f a |
bes8 a f ees d ees f a |
d8 d ~ d ~ d d ees f a |
f8 ees f d f ees f a |
}
}
\include "../muziko.ly"
% \time 16/8
% \set Timing.beatStructure = #'(4 4 4 4)
%
% \transpose a, c {
% \key d \pelog
% d8 ees d bes a gis ees d f ees d ees r d \transpose d d, { bes a |
% r bes a r a bes } d ees d f d ees r d \transpose d d, { bes a } |
% \transpose d d' { d d r r d d ees d f ees d ees r d ees } bes |
% r r bes \transpose d d' { d ees d } bes a f f a ees f a bes a |
%}
% \tempo 16 = 80
% \key d \pelog
% \time 16/8
% \set Timing.beatStructure = #'(4 4 4 4)
% r16 bes a r a bes d' ees' f' ees' bes a ees' f a f bes a ees f r f a bes r a a ees f a bes a |
% r bes a r a bes d' ees' f' ees' bes a ees' f a f bes a ees f r f a bes r a a ees f a bes a |
% r bes a r a bes a f r bes r a r f r ees r r r a r r r f r r r a r r r ees |
% r r r f r f r r r f r f r a r bes r f a bes r f a bes r a a ees f a bes a |
% }
\include "../ĉiea.ly"
#(set-global-staff-size 24)
\header {
titolo-xx = ""
titolo-he = "התקווה"
......@@ -17,15 +19,13 @@
% ragged-last-bottom = ##f
%}
#(set-global-staff-size 25)
melodio = {
\key ees \major
\time 4/4
\interim
\partial 4 {ees8.^"III" ees16 |}
aes8 bes\4 c' des' ees' r g8. g16 |
aes8 r8 aes8 aes8 aes8 r8 |
aes8 r8 aes8 aes8 aes8 r8
\deinterim
\repeat volta 3 {
ees8. ees16 |
......
......@@ -18,7 +18,7 @@ melodio = {
\repeat volta 2 {
\repeat unfold 2 {
c f8 g\4 ~ |
c4 f8 g\4 ~ |
g4\4 f8 g\4 ~ |
g4\4 a8 a ~ |
a2 |
......@@ -49,8 +49,17 @@ melodio = {
d4 r8 c |
c'4 bes8 a |
g4\4 c8 c |
c' bes a g\4 ~ |
g2\4 |
}
\alternative {
{
c'8 bes a g\4 ~ |
g2\4 |
}
{
c'8 bes a f ~ |
f2 |
}
}
}
......