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:
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.
Strings can also be linked to a number using strset and strget.
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 tobefore being used, while the string
before being used."Escaped\\nline return"
will be converted to
It can be useful together with the system opcode:
instr 1
; csound5 lets you make a string with line returns inside double brackets
system {{ ps
date
cd ~/Desktop
pwd
ls -l
whois csounds.com
}}
endin
And the python opcodes, among others: