id = "csound" name = "Csound" homepage = "https://csound.com" description = "Sound and music computing system" executables = ["csound"] [dotfiles] # Csound's official manual says it reads the user's $HOME/.csoundrc before # project-local options: https://csound.com/docs/manual/Using.html paths = ["~/.csoundrc"] secret = [] [commands] format = 1 label = "Render a CSD file" description = "Render a Csound project (CSD, or orchestra plus score) to a sound file or the audio device. MIDI, realtime buffer, sample-format and display options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "manual" kind = "manual" url = "https://csound.com/docs/manual/CommandFlags.html" revision = "2026-10-27" evidence = """ csound [flags] [orchname] [scorename] csound [flags] [csdfilename] -o FILE, --output=FILE The name devaudio or dac (you can use -odac or -o dac) will request writing sound to the host audio output device. -i FILE, --input=FILE -n, --nosound -d, --nodisplays -v, --verbose -r NUM, --sample-rate=NUM -k NUM, --control-rate=NUM -m NUM, --messagelevel=NUM -W, --wave, --format=wave -A, --aiff, --format=aiff """ [[commands.field]] id = "files" label = "CSD file, or orchestra and score" type = "path" position = 0 multiple = true min = 1 path = { kind = "file", role = "input", must_exist = true } sources = ["manual"] [[commands.field]] id = "output" label = "Output sound file or dac" description = "A sound file name, or dac for the audio device." type = "string" option = ["--output", "-o"] suggestions = [{ value = "dac", label = "Audio device (dac)" }] effect = "overwrite" sources = ["manual"] [[commands.field]] id = "wave" label = "Write WAV file" type = "boolean" option = ["--wave", "-W"] sources = ["manual"] [[commands.field]] id = "aiff" label = "Write AIFF file" type = "boolean" option = ["--aiff", "-A"] sources = ["manual"] [[commands.field]] id = "nosound" label = "No sound output" description = "Run the score without writing any audio." type = "boolean" option = ["--nosound", "-n"] sources = ["manual"] [[commands.field]] id = "nodisplays" label = "Suppress displays" type = "boolean" option = ["--nodisplays", "-d"] sources = ["manual"] [[commands.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["manual"] [[commands.field]] id = "sample_rate" label = "Sample rate" type = "integer" option = ["--sample-rate", "-r"] sources = ["manual"] [[commands.field]] id = "control_rate" label = "Control rate" type = "integer" option = ["--control-rate", "-k"] sources = ["manual"] [[commands.field]] id = "input" label = "Input sound file" type = "path" option = ["--input", "-i"] path = { kind = "file", role = "input", must_exist = true } sources = ["manual"] [[commands.task]] id = "render-wav" label = "Render to WAV" fields = ["files", "output", "wave", "nodisplays"] required = ["files", "output"] set = { wave = [true], nodisplays = [true] } [[commands.task]] id = "play" label = "Play on audio device" fields = ["files", "output", "nodisplays"] required = ["files"] set = { output = ["dac"] } lock = ["output"] [[commands.group]] id = "basic" label = "Basic" fields = ["files", "output", "wave", "aiff", "nosound"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["nodisplays", "verbose", "sample_rate", "control_rate", "input"]