Strings

String variables are variables with a name starting with S or gS (for a local or global string variable, respectively). These variables can be used as input argument to any opcode that expects a quoted string constant, and can be manipulated at initialization or performance time with the opcodes listed below.

It is also possible to use string p-fields. The string p-field can be used by many orchestra opcodes
directly, or it can be copied to a string variable first:

a1 diskin2 p5, 1

Sname strget p5
a1 diskin2 Sname, 1

Strings within Csound can be expressed using traditional double
quotes (" "), and also using {{ }}. The second method is useful
to allow ';' and '$' characters within the string without having
to used ASCII codes.

Note

String variables and related opcodes are not available in Csound versions older than 5.00.

Csound 5 also has improvements in parsing string constants. It is possible
to specify a multi-line string by enclosing it within {{ and }} instead of
the usual double quote characters, and the following escape sequences are
automatically converted:

\a alert bell

\b backspace

\n new line

\r carriage return

\t tab

\\ a single '\' character

\nnn the character of which the ASCII code (in octal) is nnn

Note

If the user does not want an escaped sequence to be automatically converted, she has to escape it
with an additional '\' character so that Csound knows it does not have to interpret the escaped sequence.
For example the string "Not escaped\nline return" will be converted to

"Not escaped
line return"

before being used, while the string "Escaped\\nline return" will be converted to

String Manipulation Opcodes

These opcodes perform operations on string variables (note: most of the opcodes run at init time only, and have a version with a "k" suffix that runs at both init and performance time; exceptions to this rule include puts and strget):