lydown 0.12.4 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +41 -1
- data/bin/lydown +2 -0
- data/lib/lydown.rb +6 -2
- data/lib/lydown/cache.rb +5 -1
- data/lib/lydown/cli.rb +1 -1
- data/lib/lydown/cli/commands.rb +7 -11
- data/lib/lydown/cli/compiler.rb +5 -0
- data/lib/lydown/cli/proofing.rb +2 -2
- data/lib/lydown/cli/repl.rb +1 -1
- data/lib/lydown/cli/support.rb +0 -33
- data/lib/lydown/defaults.yml +50 -8
- data/lib/lydown/inverso.rb +84 -0
- data/lib/lydown/lilypond.rb +76 -10
- data/lib/lydown/ly_lib/lib.ly +140 -127
- data/lib/lydown/parsing/lydown.treetop +25 -12
- data/lib/lydown/parsing/nodes.rb +55 -19
- data/lib/lydown/rendering.rb +72 -1
- data/lib/lydown/rendering/base.rb +21 -0
- data/lib/lydown/rendering/command.rb +53 -0
- data/lib/lydown/rendering/layout.rb +83 -0
- data/lib/lydown/rendering/lyrics.rb +1 -1
- data/lib/lydown/rendering/markup.rb +23 -0
- data/lib/lydown/rendering/movement.rb +7 -4
- data/lib/lydown/rendering/music.rb +35 -29
- data/lib/lydown/rendering/notes.rb +75 -41
- data/lib/lydown/rendering/repeats.rb +27 -0
- data/lib/lydown/rendering/settings.rb +36 -9
- data/lib/lydown/rendering/skipping.rb +10 -2
- data/lib/lydown/rendering/staff.rb +38 -31
- data/lib/lydown/rendering/voices.rb +1 -1
- data/lib/lydown/templates.rb +8 -8
- data/lib/lydown/templates/layout.rb +40 -0
- data/lib/lydown/templates/lilypond_doc.rb +95 -0
- data/lib/lydown/templates/movement.rb +188 -0
- data/lib/lydown/templates/multi_voice.rb +25 -0
- data/lib/lydown/templates/part.rb +146 -0
- data/lib/lydown/templates/variables.rb +43 -0
- data/lib/lydown/translation/ripple.rb +1 -1
- data/lib/lydown/translation/ripple/nodes.rb +51 -2
- data/lib/lydown/translation/ripple/ripple.treetop +87 -10
- data/lib/lydown/version.rb +1 -1
- data/lib/lydown/work.rb +19 -2
- data/lib/lydown/work_context.rb +10 -2
- metadata +12 -8
- data/lib/lydown/cli/installer.rb +0 -175
- data/lib/lydown/templates/lilypond_doc.erb +0 -34
- data/lib/lydown/templates/movement.erb +0 -118
- data/lib/lydown/templates/multi_voice.erb +0 -16
- data/lib/lydown/templates/part.erb +0 -118
- data/lib/lydown/templates/variables.erb +0 -43
data/lib/lydown/version.rb
CHANGED
data/lib/lydown/work.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'lydown/
|
1
|
+
require 'lydown/inverso'
|
2
2
|
require 'lydown/cli/output'
|
3
3
|
require 'parallel'
|
4
4
|
|
@@ -26,6 +26,23 @@ module Lydown
|
|
26
26
|
|
27
27
|
def to_lilypond(opts = {})
|
28
28
|
@context[:render_opts] = opts.stringify_keys
|
29
|
+
|
30
|
+
if edition = @context['render_opts/edition']
|
31
|
+
edition_settings = @context["global/settings/editions/#{edition}"]
|
32
|
+
if edition_settings
|
33
|
+
@context["global/settings/editions/#{edition}"] = nil
|
34
|
+
@context["global/settings"].deep_merge!(edition_settings)
|
35
|
+
end
|
36
|
+
|
37
|
+
(@context["movements"] || {}).each do |n, m|
|
38
|
+
edition_settings = m["settings/editions/#{edition}"]
|
39
|
+
if edition_settings
|
40
|
+
m["settings/editions/#{edition}"] = nil
|
41
|
+
m["settings"].deep_merge!(edition_settings)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
29
46
|
@context[:variables] = {}
|
30
47
|
|
31
48
|
if opts[:stream_path]
|
@@ -40,7 +57,7 @@ module Lydown
|
|
40
57
|
filtered.extend(TemplateBinding)
|
41
58
|
|
42
59
|
# Remove empty lines from the rendered code
|
43
|
-
|
60
|
+
Inverso::Template.render(:lilypond_doc, context: filtered)
|
44
61
|
end
|
45
62
|
end
|
46
63
|
|
data/lib/lydown/work_context.rb
CHANGED
@@ -245,6 +245,7 @@ module Lydown
|
|
245
245
|
def query_setting(movement, part, path)
|
246
246
|
path = "#{settings_path(movement, part)}/#{path}"
|
247
247
|
value = @context[path]
|
248
|
+
|
248
249
|
unless value.nil?
|
249
250
|
@temp_setting_value = value
|
250
251
|
true
|
@@ -253,6 +254,10 @@ module Lydown
|
|
253
254
|
end
|
254
255
|
end
|
255
256
|
|
257
|
+
def rendered_edition
|
258
|
+
@rendered_edition = @context['render_opts/edition']
|
259
|
+
end
|
260
|
+
|
256
261
|
def query_defaults(path)
|
257
262
|
value = DEFAULTS[path]
|
258
263
|
unless value.nil?
|
@@ -274,17 +279,20 @@ module Lydown
|
|
274
279
|
# setting value once it's found. That way we can use the
|
275
280
|
# || operator to stop searching once we've found it.
|
276
281
|
@temp_setting_value = nil
|
282
|
+
|
277
283
|
if opts[:part]
|
278
284
|
parts_section_path = "parts/#{opts[:part]}/#{path}"
|
279
285
|
|
280
286
|
query_setting(opts[:movement], opts[:part], path) ||
|
281
287
|
query_setting(nil, opts[:part], path) ||
|
282
|
-
query_setting(opts[:movement], nil, path) ||
|
283
|
-
query_setting(nil, nil, path) ||
|
284
288
|
|
285
289
|
# search in parts section
|
286
290
|
query_setting(opts[:movement], nil, parts_section_path) ||
|
291
|
+
query_setting(opts[:movement], nil, path) ||
|
292
|
+
|
287
293
|
query_setting(nil, nil, parts_section_path) ||
|
294
|
+
|
295
|
+
query_setting(nil, nil, path) ||
|
288
296
|
|
289
297
|
query_defaults("parts/#{opts[:part]}/#{path}") ||
|
290
298
|
query_defaults(path)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lydown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: treetop
|
@@ -138,7 +138,6 @@ files:
|
|
138
138
|
- lib/lydown/cli/commands.rb
|
139
139
|
- lib/lydown/cli/compiler.rb
|
140
140
|
- lib/lydown/cli/diff.rb
|
141
|
-
- lib/lydown/cli/installer.rb
|
142
141
|
- lib/lydown/cli/output.rb
|
143
142
|
- lib/lydown/cli/proofing.rb
|
144
143
|
- lib/lydown/cli/repl.rb
|
@@ -148,6 +147,7 @@ files:
|
|
148
147
|
- lib/lydown/core_ext.rb
|
149
148
|
- lib/lydown/defaults.yml
|
150
149
|
- lib/lydown/errors.rb
|
150
|
+
- lib/lydown/inverso.rb
|
151
151
|
- lib/lydown/lilypond.rb
|
152
152
|
- lib/lydown/ly_lib/lib.ly
|
153
153
|
- lib/lydown/parsing.rb
|
@@ -158,22 +158,26 @@ files:
|
|
158
158
|
- lib/lydown/rendering/command.rb
|
159
159
|
- lib/lydown/rendering/comments.rb
|
160
160
|
- lib/lydown/rendering/figures.rb
|
161
|
+
- lib/lydown/rendering/layout.rb
|
161
162
|
- lib/lydown/rendering/literal.rb
|
162
163
|
- lib/lydown/rendering/lyrics.rb
|
164
|
+
- lib/lydown/rendering/markup.rb
|
163
165
|
- lib/lydown/rendering/movement.rb
|
164
166
|
- lib/lydown/rendering/music.rb
|
165
167
|
- lib/lydown/rendering/notes.rb
|
168
|
+
- lib/lydown/rendering/repeats.rb
|
166
169
|
- lib/lydown/rendering/settings.rb
|
167
170
|
- lib/lydown/rendering/skipping.rb
|
168
171
|
- lib/lydown/rendering/source_ref.rb
|
169
172
|
- lib/lydown/rendering/staff.rb
|
170
173
|
- lib/lydown/rendering/voices.rb
|
171
174
|
- lib/lydown/templates.rb
|
172
|
-
- lib/lydown/templates/
|
173
|
-
- lib/lydown/templates/
|
174
|
-
- lib/lydown/templates/
|
175
|
-
- lib/lydown/templates/
|
176
|
-
- lib/lydown/templates/
|
175
|
+
- lib/lydown/templates/layout.rb
|
176
|
+
- lib/lydown/templates/lilypond_doc.rb
|
177
|
+
- lib/lydown/templates/movement.rb
|
178
|
+
- lib/lydown/templates/multi_voice.rb
|
179
|
+
- lib/lydown/templates/part.rb
|
180
|
+
- lib/lydown/templates/variables.rb
|
177
181
|
- lib/lydown/translation.rb
|
178
182
|
- lib/lydown/translation/ripple.rb
|
179
183
|
- lib/lydown/translation/ripple/nodes.rb
|
data/lib/lydown/cli/installer.rb
DELETED
@@ -1,175 +0,0 @@
|
|
1
|
-
require 'net/http'
|
2
|
-
require 'uri'
|
3
|
-
require 'ruby-progressbar'
|
4
|
-
require 'tempfile'
|
5
|
-
require 'fileutils'
|
6
|
-
|
7
|
-
module Lydown::CLI::Installer
|
8
|
-
class << self
|
9
|
-
def install(package, version = nil)
|
10
|
-
case package
|
11
|
-
when 'lilypond'
|
12
|
-
Lilypond.install(version)
|
13
|
-
else
|
14
|
-
STDERR.puts "Unknown package name specified"
|
15
|
-
exit!(1)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
module Lilypond
|
21
|
-
class << self
|
22
|
-
LILYPOND_DEFAULT_VERSION = "2.19.29"
|
23
|
-
|
24
|
-
def detect_version(specified_version)
|
25
|
-
case specified_version
|
26
|
-
when nil, 'stable'
|
27
|
-
list = get_version_list
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def install(version = nil)
|
32
|
-
platform = detect_lilypond_platform
|
33
|
-
version ||= LILYPOND_DEFAULT_VERSION
|
34
|
-
# version = detect_version(version)
|
35
|
-
url = lilypond_install_url(platform, version)
|
36
|
-
fn = Tempfile.new('lydown-lilypond-installer').path
|
37
|
-
|
38
|
-
download_lilypond(url, fn)
|
39
|
-
install_lilypond_files(fn, platform, version)
|
40
|
-
rescue => e
|
41
|
-
STDERR.puts "Failed to install lilypond #{version}"
|
42
|
-
puts e.message
|
43
|
-
puts e.backtrace.join("\n")
|
44
|
-
exit(1)
|
45
|
-
end
|
46
|
-
|
47
|
-
BASE_URL = "http://download.linuxaudio.org/lilypond/binaries"
|
48
|
-
|
49
|
-
def lilypond_install_url(platform, version)
|
50
|
-
ext = platform =~ /darwin/ ? ".tar.bz2" : ".sh"
|
51
|
-
filename = "lilypond-#{version}-1.#{platform}"
|
52
|
-
|
53
|
-
"#{BASE_URL}/#{platform}/#{filename}#{ext}"
|
54
|
-
end
|
55
|
-
|
56
|
-
def detect_lilypond_platform
|
57
|
-
case RUBY_PLATFORM
|
58
|
-
when /x86_64-darwin/
|
59
|
-
"darwin-x86"
|
60
|
-
when /ppc-darwin/
|
61
|
-
"darwin-ppc"
|
62
|
-
when "i686-linux"
|
63
|
-
"linux-x86"
|
64
|
-
when "x86_64-linux"
|
65
|
-
"linux-64"
|
66
|
-
when "ppc-linux"
|
67
|
-
"linux-ppc"
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def download_lilypond(url, fn)
|
72
|
-
STDERR.puts "Downloading #{url}"
|
73
|
-
|
74
|
-
url_base = url.split('/')[2]
|
75
|
-
url_path = '/'+url.split('/')[3..-1].join('/')
|
76
|
-
download_count = 0
|
77
|
-
|
78
|
-
Net::HTTP.start(url_base) do |http|
|
79
|
-
request_url = URI.escape(url_path)
|
80
|
-
response = http.request_head(request_url)
|
81
|
-
total_size = response['content-length'].to_i
|
82
|
-
pbar = ProgressBar.create(title: 'Downloading', total: total_size)
|
83
|
-
File.open(fn, 'w') do |f|
|
84
|
-
http.get(request_url) do |data|
|
85
|
-
f << data
|
86
|
-
download_count += data.length
|
87
|
-
pbar.progress = download_count if download_count <= total_size
|
88
|
-
end
|
89
|
-
end
|
90
|
-
pbar.finish
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def install_lilypond_files(fn, platform, version)
|
95
|
-
case platform
|
96
|
-
when /darwin/
|
97
|
-
install_lilypond_files_osx(fn, version)
|
98
|
-
when /linux/
|
99
|
-
install_lilypond_files_linux(fn, version)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def install_lilypond_files_osx(fn, version)
|
104
|
-
target = "/tmp/lydown/installer/lilypond"
|
105
|
-
FileUtils.mkdir_p(target)
|
106
|
-
|
107
|
-
STDERR.puts "Extracting..."
|
108
|
-
exec "tar -xjf #{fn} -C #{target}"
|
109
|
-
|
110
|
-
copy_lilypond_files("#{target}/LilyPond.app/Contents/Resources", version)
|
111
|
-
end
|
112
|
-
|
113
|
-
def install_lilypond_files_linux(fn, version)
|
114
|
-
target = "/tmp/lydown/installer/lilypond"
|
115
|
-
FileUtils.mkdir_p(target)
|
116
|
-
|
117
|
-
# create temp directory in which to untar file
|
118
|
-
tmp_dir = "/tmp/lydown/#{Time.now.to_f}"
|
119
|
-
FileUtils.mkdir_p(tmp_dir)
|
120
|
-
|
121
|
-
FileUtils.cd(tmp_dir) do
|
122
|
-
exec "sh #{fn} --tarball"
|
123
|
-
end
|
124
|
-
|
125
|
-
STDERR.puts "Extracting..."
|
126
|
-
exec "tar -xjf #{tmp_dir}/#{fn} -C #{target}"
|
127
|
-
|
128
|
-
copy_lilypond_files_linux("#{target}/usr", version)
|
129
|
-
end
|
130
|
-
|
131
|
-
def copy_lilypond_files(base_path, version)
|
132
|
-
target_dir = File.expand_path("~/.lydown/packages/lilypond/#{version}")
|
133
|
-
|
134
|
-
FileUtils.rm_rf(target_dir) if File.exists?(target_dir)
|
135
|
-
|
136
|
-
# create directory for lilypond files
|
137
|
-
FileUtils.mkdir_p(target_dir)
|
138
|
-
|
139
|
-
# copy files
|
140
|
-
STDERR.puts "Copying..."
|
141
|
-
%w{bin etc lib lib64 share var}.each do |entry|
|
142
|
-
dir = File.join(base_path, entry)
|
143
|
-
FileUtils.cp_r(dir, target_dir, remove_destination: true) if File.directory?(dir)
|
144
|
-
end
|
145
|
-
|
146
|
-
install_lilypond_executable(base_path, version)
|
147
|
-
end
|
148
|
-
|
149
|
-
BIN_SCRIPT_PATH = "#{File.expand_path('~')}/bin/lilypond"
|
150
|
-
|
151
|
-
def install_lilypond_executable(base_path, version)
|
152
|
-
target_dir = File.expand_path("~/.lydown/packages/lilypond/#{version}")
|
153
|
-
|
154
|
-
script = "#!/bin/sh\n#{target_dir}/bin/lilypond \"$@\"\n"
|
155
|
-
|
156
|
-
# create executable
|
157
|
-
FileUtils.rm(BIN_SCRIPT_PATH) if File.file?(BIN_SCRIPT_PATH)
|
158
|
-
File.open(BIN_SCRIPT_PATH, 'w+') {|f| f << script}
|
159
|
-
FileUtils.chmod('+x', BIN_SCRIPT_PATH)
|
160
|
-
# symlink_path = File.expand_path('~/bin/lilypond')
|
161
|
-
# FileUtils.ln_sf("#{target_dir}/bin/lilypond", symlink_path)
|
162
|
-
|
163
|
-
test_lilypond
|
164
|
-
end
|
165
|
-
|
166
|
-
def test_lilypond
|
167
|
-
STDERR.puts `lilypond -v`
|
168
|
-
end
|
169
|
-
|
170
|
-
def exec(cmd)
|
171
|
-
raise unless system(cmd)
|
172
|
-
end
|
173
|
-
end
|
174
|
-
end
|
175
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
\version "2.18.2"
|
2
|
-
|
3
|
-
<% unless self['render_opts/no_lib'] %>
|
4
|
-
\include "<%= File.join(LY_LIB_DIR, 'lib.ly') %>"
|
5
|
-
<% end %>
|
6
|
-
|
7
|
-
<% includes = Lydown::Rendering.include_files(self, {}) %>
|
8
|
-
<% includes.each do |i| %>
|
9
|
-
<%= i %>
|
10
|
-
<% end %>
|
11
|
-
|
12
|
-
<% if self.render_mode == :proof %>
|
13
|
-
<%= Lydown::Rendering::PROOFING_LY_SETTINGS %>
|
14
|
-
<% end %>
|
15
|
-
|
16
|
-
<% if self['layout'] %>
|
17
|
-
\layout {
|
18
|
-
}
|
19
|
-
<% end %>
|
20
|
-
|
21
|
-
<%= Lydown::Templates.render(:variables, self) %>
|
22
|
-
|
23
|
-
\book {
|
24
|
-
\header {
|
25
|
-
}
|
26
|
-
|
27
|
-
\bookpart {
|
28
|
-
<% self['movements'].each do |n, m| %>
|
29
|
-
<%= Lydown::Templates.render(:movement, self, name: n, movement: m)
|
30
|
-
%>
|
31
|
-
<% end %>
|
32
|
-
|
33
|
-
}
|
34
|
-
}
|
@@ -1,118 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
render_mode = self.render_mode
|
3
|
-
staff_groups = Lydown::Rendering::Staff.staff_groups(
|
4
|
-
self, {movement: name}, movement['parts'].keys)
|
5
|
-
parts_in_order = staff_groups.flatten
|
6
|
-
staff_hierarchy = Lydown::Rendering::Staff.staff_hierarchy(staff_groups)
|
7
|
-
|
8
|
-
parts = parts_in_order.inject({}) do |m, p|
|
9
|
-
m[p] = movement['parts'][p]
|
10
|
-
m
|
11
|
-
end
|
12
|
-
|
13
|
-
score_mode = (render_mode == :score) ||
|
14
|
-
(render_mode == :proof) || (parts.size > 1)
|
15
|
-
|
16
|
-
tacet = Lydown::Rendering::Movement.tacet?(self, name)
|
17
|
-
movement_title = Lydown::Rendering::Movement.movement_title(self, name)
|
18
|
-
movement_source = self.get_setting(:movement_source , movement: name)
|
19
|
-
|
20
|
-
format = self['options/format'] || self['render_opts/format'] || :pdf
|
21
|
-
midi_mode = (format == :midi) || (format == :mp3)
|
22
|
-
|
23
|
-
empty_staves = self.get_setting(:empty_staves, movement: name)
|
24
|
-
|
25
|
-
page_breaks = Lydown::Rendering::Movement.page_breaks(self, movement: name)
|
26
|
-
|
27
|
-
includes = Lydown::Rendering.include_files(self, movement: name)
|
28
|
-
|
29
|
-
hide_bar_numbers = Lydown::Rendering::Movement.hide_bar_numbers?(
|
30
|
-
self, movement: name
|
31
|
-
)
|
32
|
-
%>
|
33
|
-
|
34
|
-
<% if page_breaks[:blank_page_before] %>
|
35
|
-
} \bookpart {
|
36
|
-
\markup \column {
|
37
|
-
\null \null \null \null \null \null
|
38
|
-
\null \null \null \null \null \null
|
39
|
-
\null \null \null \null \null \null
|
40
|
-
\null \null \null \null \null \null
|
41
|
-
\fill-line { "(this page has been left blank to facilitate page turning)" }
|
42
|
-
}
|
43
|
-
} \bookpart {
|
44
|
-
\pageBreak
|
45
|
-
<% elsif page_breaks[:before] %>
|
46
|
-
} \bookpart {
|
47
|
-
<% end %>
|
48
|
-
|
49
|
-
<% includes.each do |i| %>
|
50
|
-
<%= i %>
|
51
|
-
<% end %>
|
52
|
-
|
53
|
-
<% unless tacet %>
|
54
|
-
\score {
|
55
|
-
<% if movement_title && render_mode != :proof %>
|
56
|
-
\header {
|
57
|
-
piece = \markup {
|
58
|
-
\bold \large { <%= movement_title %> }
|
59
|
-
<% if movement_source %>
|
60
|
-
\hspace #1 \italic { <%= movement_source %> }
|
61
|
-
<% end %>
|
62
|
-
}
|
63
|
-
}
|
64
|
-
<% end %>
|
65
|
-
|
66
|
-
<% if score_mode %>
|
67
|
-
<% if empty_staves == 'hide' %>
|
68
|
-
\layout {
|
69
|
-
\context {
|
70
|
-
\RemoveEmptyStaffContext
|
71
|
-
\override VerticalAxisGroup #'remove-first = ##t
|
72
|
-
}
|
73
|
-
}
|
74
|
-
<% end %>
|
75
|
-
|
76
|
-
\new StaffGroup <<
|
77
|
-
\set StaffGroup.systemStartDelimiterHierarchy = <%= staff_hierarchy %>
|
78
|
-
<% end %>
|
79
|
-
|
80
|
-
<% if n = movement['bar_number'] %>
|
81
|
-
\set Score.currentBarNumber = #<%= n %>
|
82
|
-
\set Score.barNumberVisibility = #all-bar-numbers-visible
|
83
|
-
\bar ""
|
84
|
-
<% end %>
|
85
|
-
|
86
|
-
<% parts.each do |n, p| %>
|
87
|
-
<%= Lydown::Templates.render(:part, self,
|
88
|
-
name: n, part: p, movement: movement, movement_name: name) %>
|
89
|
-
<% end %>
|
90
|
-
|
91
|
-
<% if score_mode %>
|
92
|
-
>>
|
93
|
-
<% end %>
|
94
|
-
<% if midi_mode %>
|
95
|
-
\midi {
|
96
|
-
<% if tempo = self.get_setting(:midi_tempo, movement: name) %>
|
97
|
-
\tempo <%= tempo %>
|
98
|
-
<% end %>
|
99
|
-
}
|
100
|
-
<% end %>
|
101
|
-
|
102
|
-
<% if hide_bar_numbers %>
|
103
|
-
\layout {
|
104
|
-
\context {
|
105
|
-
\Score
|
106
|
-
\omit BarNumber
|
107
|
-
}
|
108
|
-
}
|
109
|
-
<% end %>
|
110
|
-
}
|
111
|
-
<% else # tacet %>
|
112
|
-
\markup {
|
113
|
-
\line { \bold \large { <%= movement_title %> } }
|
114
|
-
\line { \pad-markup #3 " " }
|
115
|
-
|
116
|
-
}
|
117
|
-
<% end %>
|
118
|
-
<% if page_breaks[:after] %>\pageBreak <% end %>
|