MUSICXMLBULK(1)                                                                                       User Commands                                                                                       MUSICXMLBULK(1)

NAME
       musicXmlBulk - manual page for musicXmlBulk 1.0

SYNOPSIS
       musicXmlBulk [OPTIONS] SCRIPT_NAME_VALUE

DESCRIPTION
       The musicXmlBulk script calls one or more processing scripts on any combination of files, directories of files, score names, and score IDs in one go.

       In most cases, musicXmlBulk processes the input and formulates calls to the musicXmlProcess script, so many of the rules that apply to musicXmlProcess apply to musicXmlBulk.

       SCRIPT_NAME_VALUE: a single script name, or script name wildcard.

       The bulk script will call combinations of the following scripts:

              db2Ly

              db2MusicXml

              db2Pdf

              ly2Pdf

              musicXml2Db

              musicXml2Ly

              musicXml2Pdf

              musicXmlCompress

              musicXmlValidate

       SCRIPT_NAME_VALUE examples:

       musicXml2Db: will execute the musicXml2Db script on each XML file in the input file list.

       musicXml2.*: will execute each of the three musicXml2* scripts on each XML file in the input file list.

       .* will execute all of the scripts on every eligible value in the input list.

OPTIONS
       -f, --input-file
              input file

       -i, --input-directory
              input directory

       -o, --output-directory
              output directory

       Input options:

       The input options direct the bulk script which files to process.

       Input values can be a single directory (option -i), a list of input values in a file (option -f), or both.

       Input directory option:

       The script takes a single input directory as an argument.

       All .xml, .mxl, .musicxml, and .ly files in the directory are added to the input list.

       Input file option:

       The input file is a text file that lists input values, one to a line.

       Input line values can be any combination of the following:

              An input filename

              An input directory

              An input score name

              A comma-separated input score ID or score ID range

       Wild cards in input values are not permitted.

       Input value processing:

       An input filename is added to the input list if it has an .xml, .mxl, .musicxml, or .ly file extension.

       If an input line is a directory, all .xml, .mxl, .musicxml, and .ly files in the directory are added to the input list.

       Score IDs refer to the primary key ID value in the SCORE table in the MusicXML database.

       Valid score ID input is a comma-separated list of numbers or range of numbers.

       Example: 2,4,6-10

       Any non-numeric item in the file list that does not have a file extension is treated as a score name and is added to the input list.

       Input for each script:

       Once input processing is finished, the result is an input list of filenames, score names, and/or score IDs.

       musicXml* script input: All XML file input (.xml, .mxl, and .musicxml file extensions).

       musicXmlCompress script input:  All uncompressed XML file input (.xml and .musicxml file extensions).

       db2* script input: All score names and score IDs.

       Additionally,  the  filenames of all .xml, .mxl, .musicxml, and .ly files in the input list are truncated by removing the file extension, and the file's basename is treated as a score name.  The script then at‐
       tempts to process any score in the database having that score name.

       ly2Pdf script input:  All LilyPond file input (.ly file extension).

       Output for each script:

       The output directory option is required for all scripts except musicXmlValidate and musicXml2Db.

       Verbose output is used for all scripts except musicXmlCompress and musicXmlValidate.  Script output is to stderr and can be redirected by the caller.

       Output subdirectories:

       The output directory passed by the output directory option must exist before the call to musicXmlBulk.

       Script output is to a subdirectory of the passed output directory, one subdirectory for each script called.

       The subdirectories are:

              Script db2Ly: subdirectory db2ly

              Script db2MusicXml: subdirectory db2musicxml

              Script db2Pdf: subdirectory db2pdf

              Script ly2Pdf: subdirectory ly2pdf

              Script musicXml2Ly: subdirectory musicxml2ly

              Script musicXml2Pdf: subdirectory musicxml2pdf

              Script musicXmlCompress: subdirectory xmlcompress

       The directory separation is so that multiple script calls that result in the same file type output don't overwrite each other.

       Example:

              Output directory: musicxml/out

              db2MusicXml script output directory: musicxml/out/db2musicxml

       Output filenames:

       All XML script output is an .xml file, except for musicXmlCompress which outputs an .mxl file.

       The XML file in a compressed MXL file has the same basename as the containing MXL file.

       The basename of the output file is the basename of the input file.

       In the case of db2* scripts, the output file's basename is the score name or the score ID, depending upon which is being processed.

SEE ALSO
       The full documentation for musicXmlBulk is maintained as a Texinfo manual.  If the info and musicXmlBulk programs are properly installed at your site, the command

              info musicXmlBulk

       should give you access to the complete manual.

musicXmlBulk 1.0                                                                                        March 2023                                                                                        MUSICXMLBULK(1)