Customized Italian-style chords: Difference between revisions
m Lemzwerg moved page Customized italian style chords to Customized Italian style chords without leaving a redirect: Misspelled title |
Make snippet readable (more or less) |
||
| Line 1: | Line 1: | ||
This snippet implement a personalized way to write chords (in Italian) using a command called <code>\AccordiMio</code>, which can be used in <code>\lyricsmode</code>. The format is: | |||
<code><var>root</var> <var>root-alteration</var> | |||
<var>root-modifier<var> <var>root-other</var> | |||
_ | |||
<var>bass</var> <var>bass-alteration</var> | |||
. | |||
<var>duration</var> [<var>dots</var>] | |||
[* <var>ratio-numerator</var> / <var>ratio-denominator</var>] | |||
</code> | |||
* Chords must be written in a long string. | |||
* Note names and alterations must be written in Italian. | |||
* Correspondences between alteration codes and engraved symbols are: d→sharp, dd→double sharp, b→flat, bb→double flat (you can change them in the snippet). | |||
* Correspondences between modifier codes and engraved symbols are: "-" (minor)→en dash, "dim" (diminished)→"o", "semidim" (half diminished)→"ø" (you can change them in the snippet). | |||
* <var>root other</var> is free text. | |||
* The chord duration follows the standard LilyPond format, you can also add dots and a fraction for the ratio multiplier. | |||
* If a bass is present, the chord is written in fractional form with numerator=root and denominator=bass (like Italian style music sheets). | |||
<lilypond version="2.24"> | <lilypond version="2.24"> | ||
%Il formato dell'accordo è <radice>_<basso>.<durata con eventuali punti di valore>*<num>/<den>. | % Il formato dell'accordo è <radice>_<basso>.<durata con eventuali punti di valore>*<num>/<den>. | ||
%music-map prende la musica come se fosse un albero e ci applica <funzione> in modo gerarchico a partire dalle foglie. | % music-map prende la musica come se fosse un albero e ci applica <funzione> in modo gerarchico a partire dalle foglie. | ||
%I parametri passati via via a <funzione> dunque partono dalle singole foglie (LyricEvent) per poi passare al livello superiore (SequentialMusic) | % I parametri passati via via a <funzione> dunque partono dalle singole foglie (LyricEvent) per poi passare al livello superiore (SequentialMusic) | ||
%che comprende la lista dei LyricEvent (le singole foglie sono passate di nuovo ma questa volta raggruppate in una lista). | % che comprende la lista dei LyricEvent (le singole foglie sono passate di nuovo ma questa volta raggruppate in una lista). | ||
%Se modifico un livello basso, ritrovo la modifica a tutti i livelli superiori. | % Se modifico un livello basso, ritrovo la modifica a tutti i livelli superiori. | ||
%Nel mio caso ho un unico evento di tipo LyricEvent che è la stringa contenente tutti gli accordi. | % Nel mio caso ho un unico evento di tipo LyricEvent che è la stringa contenente tutti gli accordi. | ||
%Da questa stringa devo isolare i singoli accordi e aggiungerli in una lista di LyricEvent (opportunamente modificati). | % Da questa stringa devo isolare i singoli accordi e aggiungerli in una lista di LyricEvent (opportunamente modificati). | ||
%La lista dei LyricEvent poi va sostituita nel livello superiore SequentialMusic sotto la voce 'elements. | % La lista dei LyricEvent poi va sostituita nel livello superiore SequentialMusic sotto la voce 'elements. | ||
%Visto che con la prima chiamata costruisco la lista e con la seconda sostituisco 'elements di SequentialMusic, | % Visto che con la prima chiamata costruisco la lista e con la seconda sostituisco 'elements di SequentialMusic, | ||
%ho bisogno di una variabile globale che mi memorizzi la lista tra la prima e la seconda chiamata. | % ho bisogno di una variabile globale che mi memorizzi la lista tra la prima e la seconda chiamata. | ||
% | % | ||
%Per capire bene come funziona music-map si può aggiungere all'inizio e alla fine della funzione il debug | % Per capire bene come funziona music-map si può aggiungere all'inizio e alla fine della funzione il debug | ||
% (display "MUSIC IN\n") | % (display "MUSIC IN\n") | ||
% (display (ly:music-property stringa-in 'name)) | % (display (ly:music-property stringa-in 'name)) | ||
| Line 327: | Line 344: | ||
>> | >> | ||
</lilypond> | </lilypond> | ||
[[Category:Chords]] | |||
[[Category:Correction wanted]] | |||
[[Category:Snippet]] | |||