2009-04-28 46 views
15

vấn đềCách tốt nhất để tự động chuyển đổi tệp nguồn LilyPond thành nhiều khóa là gì?

Tôi đang sử dụng LilyPond để sắp chữ bản nhạc cho một dàn hợp xướng nhà thờ để thực hiện. Tùy thuộc vào người có sẵn trên bất kỳ tuần nào, các bài hát sẽ được phát trong các phím khác nhau. Chúng tôi có một nghệ sĩ dương cầm tuyệt vời có thể chơi bất cứ thứ gì chúng tôi ném vào cô ấy và các nghệ sĩ guitar thường sẽ viết bằng các hợp âm thay thế, nhưng tôi muốn làm mọi thứ dễ dàng hơn bằng cách có những bản nhạc đẹp mắt có sẵn trong bất kỳ khóa nào chúng tôi muốn.

Vì vậy, giả sử chúng ta sẽ hát ABC của chúng tôi. Trước tiên tôi sẽ đưa bất cứ phiên âm nguồn có sẵn và nhập nó vào một kịch bản LilyPond:

melody = \relative c' { 
    c c g g 
    a a g2 
    f f e e 
    d d c2 } 

Tôi muốn khả năng transpose này tự động, vì vậy nếu tôi muốn toàn bộ điều trong 'G' Tôi quấn bài hát trong một \ transpose gọi như vậy:

melody = \transpose c g \relative c' { 
    c c g g 
    a a g2 
    f f e e 
    d d c2 } 

Điều tôi thực sự muốn là thay thế thứ gì đó cho 'g' và tạo đầu ra cho giai điệu nhiều lần. Các biến LilyPond đơn giản dường như không hoạt động ở đây và cho đến nay tôi đã không thành công trong việc định nghĩa một hàm lược đồ để làm điều này.

Những gì tôi đã viện đến cho thời điểm này đang tiến hành các tập tin trên, gọi nó là twinkle.ly và biến nó thành một kịch bản M4 gọi twinkle.ly.m4, nội dung trong đó trông như thế này:

melody = \transpose c _key \relative c' { 
c c g g 
a a g2 
f f e e 
d d c2 } 

sau đó tôi biên dịch điều trong khi bằng cách thực hiện dòng sau:

> m4 -D _key=g twinkle.ly.m4 > twinkle_g.ly && lilypond twinkle_g.ly 

tôi đã viết một Makefile để làm điều này đối với tôi, việc xác định quy tắc cho mỗi bài hát tôi có và mỗi phím tôi quan tâm đến.

câu hỏi Có một cách tốt hơn để thực hiện việc này. Cho rằng Lilypond hỗ trợ lược đồ nhúng, tôi không muốn sử dụng macro được xử lý trước trên nó. Có ai khác đưa ra giải pháp cho cùng một vấn đề này không?

+0

Sẽ hữu ích khi gắn thẻ trang này bằng lilypond. – thSoft

+0

Bạn đã hỏi câu hỏi này trên danh sách gửi thư của lilypond chưa? Chúng khá tốt ở đó ... – masher

Trả lời

19

Bạn có thể tham khảo các biến giai điệu và có nó hoán trong các phím mong muốn:

 
melody = \relative c' { c8 e c e g4 g } 
\score { 
    \transpose c d \melody 
} 
\score { 
    \transpose c e \melody 
} 
% etc. 

Nếu bạn muốn đầu ra các chuyển vị từng file riêng lẻ, nhúng chúng vào khối cuốn sách \.

3

Nếu bạn muốn tạo hai bản sao của cùng một đoạn, một đoạn được chuyển đổi và một không, bạn có thể sử dụng \displayLilyMusic. Ví dụ,

{ 
    \displayLilyMusic \transpose c a, { c4 e g a bes } 
} 

sẽ hiển thị

{ a,4 cis e fis g } 

Sao chép sản lượng này và dán nó bất cứ nơi nào bạn muốn.

Các vấn đề liên quan