blip/doc/cli-design.txt
2025-05-28 16:59:31 +02:00

58 lines
4.1 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

A flexible music programming language powered by math.
usage:
blip [play [FILENAME | -c SHEET_MUSIC] [-i EXPR] [-l EXPR] -n NOTE[,...] [-v CHAR=VALUE] | export [FILENAME | -c SHEET_MUSIC] [-i EXPR] [-l EXPR] -n NOTE[,...] [-v CHAR=VALUE] [-f FORMAT] [-o FILENAME] | help [syntax | examples | example <n> | formats]]
modes:
play - play a song
FILENAME
name of the file to use as the sheet music [default: standard in]
-c SHEET_MUSIC
sheet music to read instead of reading a file
-n NOTE[,...], --notes NOTE[,...]
available notes: a list of comma-separated alphabetical note names
-i EXPR, --instrument EXPR
signal expression (instrument) to generate music samples (you can use the floating-point number t for the current time in seconds, n for the indice of the currently playing note in the list of available notes starting with 0 and N for the number of available notes) [default: "sin(2*pi()*(442+442*((n+1)/N))*t)"]
-l EXPR, --length EXPR
expression to generate note length in seconds [default: "2^(2-log(2, l))*(60/T)"]
-v VARIABLE=VALUE, --variable VARIABLE=VALUE
add a variable named VARIABLE (an single letter) for the sheet music and all expressions and set its initial value to VALUE (you can override n, t, l and T which is the only way to set the initial tempo)
-m NAME:EXPANSION, --macro NAME:EXPANSION
add a macro named NAME (single character, must not be alphanumeric) which expands to EXPANSION when called in the sheet music
-s NAME:VARIABLE=EXPR, --slope NAME:VARIABLE=EXPR
add a slope expression named NAME which replaces the value of VARIABLE with the result of EXPR each frame (EXPR can use all available variables and instrument variables plus the variables α for the initial value of VARIABLE, β for the final value and Δ for the total duration of the specific slope)
export - export a song to an audio file or stdout
FILENAME
name of the file to use as the sheet music [default: standard in]
-c SHEET_MUSIC
sheet music to read instead of reading a file
-n NOTE[,...], --notes NOTE[,...]
available notes: a list of comma-separated alphabetical note names
-i EXPR, --instrument EXPR
signal expression (instrument) to generate music samples (you can use the floating-point number t for the current time in seconds, n for the indice of the currently playing note in the list of available notes starting with 0 and N for the number of available notes) [default: "sin(2*pi()*(442+442*((n+1)/N))*t)"]
-l EXPR, --length EXPR
expression to generate note length in seconds [default: "2^(2-log(2, l))*(60/T)"]
-v VARIABLE=VALUE, --variable VARIABLE=VALUE
add a variable named VARIABLE (an single letter) for the sheet music and all expressions and set its initial value to VALUE (you can override n, t, l and T which is the only way to set the initial tempo)
-m NAME:EXPANSION, --macro NAME:EXPANSION
add a macro named NAME (single character, must not be alphanumeric) which expands to EXPANSION when called in the sheet music
-s NAME:VARIABLE=EXPR, --slope NAME:VARIABLE=EXPR
add a slope expression named NAME which replaces the value of VARIABLE with the result of EXPR each frame (EXPR can use all available variables and instrument variables plus the variables α for the initial value of VARIABLE, β for the final value and Δ for the total duration of the specific slope)
-f, --format FORMAT
audio format to use [default: mp3 or raw if the codec is unavailable]
see "help formats"
-o, --output FILENAME
output file [default: standard out]
help - help menu
syntax
show a help message about expression and sheet music syntax
examples
show a list of expression and sheet music examples
example <n>
show the nth example from the list provided by --examples
formats
show a list of available formats for audio export