lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Convert chord mode into multi-voice mode


From: Silvain Dupertuis
Subject: Re: Convert chord mode into multi-voice mode
Date: Fri, 20 Dec 2024 19:28:57 +0100
User-agent: Mozilla Thunderbird

I guess this could be programmed with Scheme,

But there is a possibility to use regular expressions in a text editor or wordprocessor to extract sequentially the 1st then the 2nd voice.


Search text
Replace string
Left part of the chords
<([^\s]+)\s[^\s]+>([0-9\.]*)
\1\2
Right part of the chords
<[^\s]+\s([^\s>]+)>([0-9\.]*) \1\2

This regex extract the left part in <aaa bbb> and output it in the variable 1 (the first part in parenthesis), extract the duration after the chord (digits and dots) to add it in variable 2 (second group in parenthesis), Output string is \1\2 followed by a space.

Copy the sequence and select it, then one choses replace all on the selection.

Short explanation

  • \s means space
  • [^\s]+ means one or more characters which are not spaces
  • [0-9\.] means 0 or more characters which are digits or a dot.
  • (...) select a part as a variable for the output
An example I tried:

<c, e>4 <d f>4. <e g>8 <c c'>2


is transformed into

c,4 d4. e8 c2

then into

e4 f4. g8 c'2




Le 20.12.24 à 16:25, Knute Snortum a écrit :
On Fri, Dec 20, 2024 at 7:17 AM Kieren MacMillan <kieren@kierenmacmillan.info> wrote:
Hi Frédéric,

> I want to adapt a piano score for a small set of instruments. The
> right hand is already written as a set of chords with 2 notes <a c'>
> <b d'>... Is there a way to turn it into a set of 2 voices { a b } \\
> { c' d' }?

Maybe Frescobaldi has a function/script that does this?

Perhaps this is a job for python-ly?  (https://github.com/frescobaldi/python-ly?tab=readme-ov-file)

--
Knute Snortum


--
Silvain Dupertuis
Route de Lausanne 335
1293 Bellevue (Switzerland)
tél. +41-(0)22-774.20.67
portable +41-(0)79-604.87.52
web: silvain-dupertuis.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]