mirror of
https://github.com/kastdeur/pipeband-music.git
synced 2024-12-23 08:43:31 +01:00
Trying to fix dependencies
This commit is contained in:
parent
523d75923a
commit
e4b226c55d
10 changed files with 7 additions and 352 deletions
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[submodule "lilydrum"]
|
||||||
|
path = lilydrum
|
||||||
|
url = ../../git/lilydrumi.git
|
||||||
|
[submodule "bagpipemusic"]
|
||||||
|
path = bagpipemusic
|
||||||
|
url = https://github.com/svenax/bagpipemusic.git
|
1
bagpipemusic
Submodule
1
bagpipemusic
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit fdbbc7c354e6c7c03f2c987cded0d67e09d688aa
|
|
@ -1 +0,0 @@
|
||||||
../../svenax-bagpipemusic-master/bagpipe_extra.ly
|
|
|
@ -1 +0,0 @@
|
||||||
../../svenax-bagpipemusic-master/bagpipe_new.ly
|
|
|
@ -1,22 +0,0 @@
|
||||||
% =================================================== %
|
|
||||||
% *Shorts* for Naming %
|
|
||||||
% =================================================== %
|
|
||||||
|
|
||||||
instrumentSide = "Side"
|
|
||||||
instrumentTenor = "Tenor"
|
|
||||||
instrumentBass = "Bass"
|
|
||||||
instrumentPipes = "Pipes"
|
|
||||||
instrumentPipessecnd = "Seconds"
|
|
||||||
instrumentPipesthrd = "Thirds"
|
|
||||||
shortInstrumentSide = "S.D."
|
|
||||||
shortInstrumentTenor = "T.D."
|
|
||||||
shortInstrumentBass = "B.D."
|
|
||||||
shortInstrumentPipes = "P."
|
|
||||||
shortInstrumentPipessecnd = "P.2"
|
|
||||||
shortInstrumentPipesthrd = "P.3"
|
|
||||||
composerSide = ""
|
|
||||||
composerTenor = ""
|
|
||||||
composerBass = ""
|
|
||||||
composerPipes = ""
|
|
||||||
composerPipessecnd = ""
|
|
||||||
composerPipesthrd = ""
|
|
|
@ -1,42 +0,0 @@
|
||||||
%{
|
|
||||||
Header formatting for tunes. Customize to get your name in the tag line.
|
|
||||||
%}
|
|
||||||
|
|
||||||
\version "2.16.0"
|
|
||||||
|
|
||||||
today = #(strftime "%B %e, %Y" (localtime (current-time)))
|
|
||||||
|
|
||||||
\paper {
|
|
||||||
raggedbottom = ##t
|
|
||||||
tagline = \markup {
|
|
||||||
\line {
|
|
||||||
"ET de Boone, Seaforths of Holland,"
|
|
||||||
\concat { "(rev. " \today ")" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bookTitleMarkup = \markup {
|
|
||||||
\override #'(baseline-skip . 3.5)
|
|
||||||
\column {
|
|
||||||
\fill-line { \fromproperty #'header:dedication }
|
|
||||||
\override #'(baseline-skip . 3.5)
|
|
||||||
\column {
|
|
||||||
\huge \larger \bold
|
|
||||||
\fill-line {
|
|
||||||
\larger \fromproperty #'header:title
|
|
||||||
}
|
|
||||||
\fill-line {
|
|
||||||
\large \smaller \bold
|
|
||||||
\larger \fromproperty #'header:subtitle
|
|
||||||
}
|
|
||||||
\fill-line {
|
|
||||||
\smaller \bold
|
|
||||||
\fromproperty #'header:source
|
|
||||||
}
|
|
||||||
\fill-line {
|
|
||||||
\line { \fromproperty #'header:meter }
|
|
||||||
\line { \fromproperty #'header:composer " " \italic \fromproperty #'header:arranger }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
%{
|
|
||||||
Header formatting for tunes. Customize to get your name in the tag line.
|
|
||||||
%}
|
|
||||||
|
|
||||||
\version "2.16.0"
|
|
||||||
|
|
||||||
today = #(strftime "%B %e, %Y" (localtime (current-time)))
|
|
||||||
|
|
||||||
\paper {
|
|
||||||
tagline = \markup {
|
|
||||||
\line {
|
|
||||||
"ET de Boone, Seaforths of Holland,"
|
|
||||||
\concat { "(rev. " \today ")" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
scoreTitleMarkup = \markup {
|
|
||||||
\override #'(baseline-skip . 3)
|
|
||||||
\column {
|
|
||||||
\fill-line {
|
|
||||||
\column {
|
|
||||||
\large \bold \fromproperty #'header:title
|
|
||||||
\bold \fromproperty #'header:subtitle
|
|
||||||
}
|
|
||||||
\fromproperty #'header:meter
|
|
||||||
\column \right-align {
|
|
||||||
\fromproperty #'header:instrument
|
|
||||||
\line {
|
|
||||||
\fromproperty #'header:composer
|
|
||||||
$(if (and (ly:get-option 'header:composer) (ly:get-option 'header:arranger))
|
|
||||||
(markup " "))
|
|
||||||
\italic \fromproperty #'header:arranger }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$(if (not (ly:get-option 'without-comment))
|
|
||||||
(markup #:justify-field 'header:comment)
|
|
||||||
(markup))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit c6a9c956321a175e33e1668cea8e8e3e19cb7a0e
|
|
|
@ -1 +0,0 @@
|
||||||
lilydrum/makedrum
|
|
|
@ -1,245 +0,0 @@
|
||||||
#!/usr/bin/python3.4
|
|
||||||
|
|
||||||
## Generate pdf form lilypond file
|
|
||||||
## by using standard command
|
|
||||||
##
|
|
||||||
## Most of programming was done by Sven Axelsson, http://svenax.net/
|
|
||||||
|
|
||||||
import codecs, os
|
|
||||||
from argparse import ArgumentParser
|
|
||||||
|
|
||||||
class MakeDrum:
|
|
||||||
LILYPOND = 'lilypond'
|
|
||||||
VERSION = '0.9.5'
|
|
||||||
TMP_DIR = './tmp'
|
|
||||||
TMP_PREFIX = 'tmp_'
|
|
||||||
MASTER_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
RUN_DIR = os.path.abspath(os.curdir)
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
# Gather options and create the template file
|
|
||||||
usage = __file__
|
|
||||||
parser = ArgumentParser(usage)
|
|
||||||
|
|
||||||
parser.add_argument('--version',
|
|
||||||
action='store_true', dest='show_version', default=False,
|
|
||||||
help='show makeDrum version and exit')
|
|
||||||
parser.add_argument('--lilyversion',
|
|
||||||
action='store_true', dest='show_lilyversion', default=False,
|
|
||||||
help='show Lilypond version and exit')
|
|
||||||
|
|
||||||
parser.add_argument('-x', '--drumfile',
|
|
||||||
dest='lilydrum', default='lilydrum.ly',
|
|
||||||
help='Use the specified file for drums')
|
|
||||||
parser.add_argument('-c', '--pipefile',
|
|
||||||
dest='lilypipe', default='bagpipe.ly',
|
|
||||||
help='Use the specified file for pipes')
|
|
||||||
parser.add_argument('-i', '--include',
|
|
||||||
dest='includes', nargs='*', default=[],action='append',
|
|
||||||
help='Include the specified file for compiling')
|
|
||||||
|
|
||||||
parser.add_argument('-p', '--paper-size',
|
|
||||||
dest='papersize', default='a4',
|
|
||||||
help='Paper size. Default: A4')
|
|
||||||
parser.add_argument('-o', '--orientation',
|
|
||||||
dest='orientation', default='landscape',
|
|
||||||
help='Paper orientation. Default: landscape')
|
|
||||||
parser.add_argument('-s', '--staff-size',
|
|
||||||
dest='staffsize', default='20',
|
|
||||||
help='Staff size. Default: 16pt.')
|
|
||||||
parser.add_argument('-w', '--view-spacing',
|
|
||||||
action='store_true', dest='view_spacing', default=False,
|
|
||||||
help='Turn on "Paper.annotatespacing".')
|
|
||||||
|
|
||||||
parser.add_argument('-g','--generated',
|
|
||||||
dest='gen_out', default=self.TMP_DIR,
|
|
||||||
help='Put generated lilyfiles in $gen_out')
|
|
||||||
parser.add_argument('--no-compile', default=True,
|
|
||||||
action='store_false', dest='compile',
|
|
||||||
help='Do not compile generated Lilypond files')
|
|
||||||
parser.add_argument('--no-log',
|
|
||||||
action='store_false', dest='log', default=True,
|
|
||||||
help='Do not generate log files.')
|
|
||||||
parser.add_argument('--no-cleanup',
|
|
||||||
action='store_false', dest='clean', default=True,
|
|
||||||
help='Leave all temporary files in place')
|
|
||||||
parser.add_argument('-d', '--out_dir',
|
|
||||||
dest='out_dir', default='pdf',
|
|
||||||
help='Output dir, for lilypond. If it doesn\'t exist, try to create it')
|
|
||||||
parser.add_argument('music_file',
|
|
||||||
default='', nargs='*',
|
|
||||||
help='file to process')
|
|
||||||
parser.add_argument('-@', '--list_file',
|
|
||||||
dest='list_file', default='',
|
|
||||||
help='list of files to process')
|
|
||||||
|
|
||||||
self.args = parser.parse_args()
|
|
||||||
|
|
||||||
if self.args.show_version:
|
|
||||||
print(__name__, ' ', self.VERSION)
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.args.show_lilyversion:
|
|
||||||
print(os.system(self.LILYPOND+' --version'))
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.args.view_spacing:
|
|
||||||
self.args.view_spacing = "##t"
|
|
||||||
else:
|
|
||||||
self.args.view_spacing = "##f"
|
|
||||||
|
|
||||||
# Input files
|
|
||||||
if self.args.list_file != '':
|
|
||||||
self.args.music_file.append(open(self.args.list_file, 'r').readlines())
|
|
||||||
close(self.args.list_file)
|
|
||||||
|
|
||||||
# Check for files
|
|
||||||
if not self.args.music_file:
|
|
||||||
parser.print_usage()
|
|
||||||
return
|
|
||||||
|
|
||||||
# Check for files to include
|
|
||||||
self.args.includes = [el for elements in self.args.includes for el in elements]
|
|
||||||
|
|
||||||
# Clean up of files
|
|
||||||
self.remove_tmp_dir = self.args.clean
|
|
||||||
|
|
||||||
if not os.path.exists(os.path.join(os.path.curdir, self.TMP_DIR)):
|
|
||||||
try: os.makedirs(os.path.join(os.path.curdir, self.TMP_DIR))
|
|
||||||
except:
|
|
||||||
print('Seems like no temporary directory can be created')
|
|
||||||
return
|
|
||||||
if not os.path.exists(os.path.join(os.path.curdir, self.args.out_dir)):
|
|
||||||
try: os.makedirs(os.path.join(os.path.curdir, self.args.out_dir))
|
|
||||||
except:
|
|
||||||
print('Seems like no output directory can be created')
|
|
||||||
return
|
|
||||||
|
|
||||||
os.chdir(self.MASTER_DIR)
|
|
||||||
for file_path in self.args.music_file:
|
|
||||||
self.processit(self.TMP_DIR, os.path.join(self.RUN_DIR, file_path), self.args.gen_out, self.args.compile)
|
|
||||||
|
|
||||||
#if not
|
|
||||||
#os.rmdir(self.TMP_DIR)
|
|
||||||
|
|
||||||
os.chdir(self.RUN_DIR)
|
|
||||||
|
|
||||||
def processit(self, tmp_dir, file, gen_out, compile):
|
|
||||||
tmp_file = self.maketemplate(tmp_dir, file)
|
|
||||||
|
|
||||||
if gen_out is not None and gen_out != tmp_dir:
|
|
||||||
new_tmp_file = os.path.basename(tmp_file).replace(self.TMP_PREFIX, '');
|
|
||||||
print ('Moving ', tmp_file, ' to ', new_tmp_file, end=' ', flush=True)
|
|
||||||
gen_dir = os.path.join(self.RUN_DIR, gen_out);
|
|
||||||
# if not dir $gen_out, make it
|
|
||||||
if not os.path.exists(gen_dir):
|
|
||||||
try: os.makedirs(gen_dir)
|
|
||||||
except:
|
|
||||||
print('[Error]')
|
|
||||||
print(' ! Seems like the {} directory cannot be created'.format(gen_dir))
|
|
||||||
return
|
|
||||||
# mv file to dir, remove self.TMP_PREFIX
|
|
||||||
os.rename(tmp_file, os.path.join(gen_dir, new_tmp_file))
|
|
||||||
tmp_file = new_tmp_file
|
|
||||||
print('[OK]')
|
|
||||||
|
|
||||||
if compile:
|
|
||||||
if self.args.log:
|
|
||||||
logfile = os.path.join(self.TMP_DIR, os.path.relpath(file).replace(".ly", '').replace('/', '-')+'.log')
|
|
||||||
log = ' > '+logfile+' 2>&1'
|
|
||||||
else:
|
|
||||||
log = ''
|
|
||||||
|
|
||||||
print ('Compiling ', file, end=' ', flush=True)
|
|
||||||
if not self.args.log:
|
|
||||||
print()
|
|
||||||
lilyout = os.path.join(self.RUN_DIR, self.args.out_dir, os.path.basename(tmp_file).replace(self.TMP_PREFIX, '').replace(".ly", ''))
|
|
||||||
print (lilyout)
|
|
||||||
lilycmd = self.LILYPOND+' --pdf --output='+lilyout+' '+tmp_file+log
|
|
||||||
|
|
||||||
if os.system(lilycmd) != 0:
|
|
||||||
self.remove_tmp_dir = False
|
|
||||||
print ('[Error]')
|
|
||||||
if self.args.log:
|
|
||||||
print (' ! Did not compile, please see the log at ', logfile)
|
|
||||||
else :
|
|
||||||
print ('[OK]')
|
|
||||||
|
|
||||||
if self.args.clean:
|
|
||||||
#remove files
|
|
||||||
if self.args.log:
|
|
||||||
os.remove(logfile)
|
|
||||||
os.remove(tmp_file)
|
|
||||||
|
|
||||||
def maketemplate(self, tmp_dir, file):
|
|
||||||
lily_includes = ''
|
|
||||||
include_drum_file = False
|
|
||||||
include_pipe_file = False
|
|
||||||
# find out whether drum, pipes, or full score
|
|
||||||
for ext in ['full', 'side', 'tenor', 'bass', 'drum', 'snare']:
|
|
||||||
if ext in file:
|
|
||||||
include_drum_file = True
|
|
||||||
break
|
|
||||||
|
|
||||||
for ext in ['full', 'pipes']:
|
|
||||||
if ext in file:
|
|
||||||
include_pipe_file = True
|
|
||||||
break
|
|
||||||
|
|
||||||
if include_drum_file:
|
|
||||||
self.args.includes.insert(0,self.args.lilydrum)
|
|
||||||
|
|
||||||
if include_pipe_file:
|
|
||||||
self.args.includes.insert(0, self.args.lilypipe)
|
|
||||||
|
|
||||||
for f in self.args.includes:
|
|
||||||
lily_includes = lily_includes + "\n\\include \"{}\"".format(f)
|
|
||||||
|
|
||||||
# set up a tmp file with template and file combined
|
|
||||||
tmp_file = os.path.join(tmp_dir, self.TMP_PREFIX + os.path.relpath(file).replace('/', '-'))
|
|
||||||
|
|
||||||
out_file = codecs.open(tmp_file, 'w+', 'utf8')
|
|
||||||
out_file.write(u'\ufeff')
|
|
||||||
|
|
||||||
out_file.write(u"""
|
|
||||||
% Generated from """+file+""" by """+__file__+""" version """+self.VERSION+"""
|
|
||||||
|
|
||||||
\\version "2.18.0"
|
|
||||||
|
|
||||||
#(ly:set-option 'point-and-click #f)
|
|
||||||
"""+ lily_includes +"""
|
|
||||||
|
|
||||||
|
|
||||||
#(set-global-staff-size """+self.args.staffsize+""")
|
|
||||||
#(set-default-paper-size \""""+self.args.papersize+"""\" '"""+self.args.orientation+""")
|
|
||||||
|
|
||||||
%\layout {
|
|
||||||
% \context {
|
|
||||||
% \Score {
|
|
||||||
% \override NonMusicalPaperColumn #'line-break-permission = ##f
|
|
||||||
% }
|
|
||||||
% }
|
|
||||||
%}
|
|
||||||
% The tune to generate.
|
|
||||||
""")
|
|
||||||
|
|
||||||
# Read lily file into tmp file
|
|
||||||
music = codecs.open(file, 'r', 'utf8').read()
|
|
||||||
if music.startswith(u'\ufeff'): music = music[1:]
|
|
||||||
music = music.split(u'\n')
|
|
||||||
printit = 1
|
|
||||||
for line in music:
|
|
||||||
if line.startswith(u'\\include "lilydrum.ly"'): continue
|
|
||||||
if line.startswith(u'\\include'):
|
|
||||||
# Rewrite includes to absolute location of file
|
|
||||||
incline = line.replace('\\include', '').strip('"\' ')
|
|
||||||
if not incline.startswith('\\'): #already absolute
|
|
||||||
incline = os.path.join(os.path.abspath(os.path.dirname(file)), incline)
|
|
||||||
line = "\\include \""+incline+"\""
|
|
||||||
if printit:
|
|
||||||
out_file.write(line.replace('\r', '')+'\n')
|
|
||||||
out_file.close()
|
|
||||||
|
|
||||||
# Return tmp_file_path
|
|
||||||
return tmp_file
|
|
||||||
MakeDrum();
|
|
Loading…
Reference in a new issue