Many generators and the Csound command itself specify filenames to be read from or written to. These are optionally full pathnames, whose target directory is fully specified. When not a full path, filenames are sought in several directories in order, depending on their type and on the setting of certain environment variables. The latter are optional, but they can serve to partition and organize the directories so that source files can be shared rather than duplicated in several user directories. The environment variables can define directories for soundfiles SFDIR, sound samples SSDIR, sound analysis SADIR, and include files for orchestra and score files INCDIR.
In Csound version 5.00 and later, these environment variables can specify multiple directories as a ; separated list. If a file is found in more than one location, the first one has the highest precedence.
The search order is:
Soundfiles being written are placed in SFDIR (if it exists), else the current directory.
Soundfiles for reading are sought in the current directory. If default paths are not disabled, files will next be sought for relative to the CSD/ORC/SCO file. Finally they will be sought in SSDIR and then SFDIR.
Analysis control files for reading are sought in the current directory. If default paths are not disabled, files will next be sought for relative to the CSD/ORC/SCO file. Finally they will be sought in SADIR.
MIDI files for reading are sought in the current directory. If default paths are not disabled, files will next be sought for relative to the CSD/ORC/SCO file. Finally they will be sought in MFDIR, SSDIR and SFDIR.
Files of code to be included in orchestra and score files (with #include) are sought first in the current directory, then in the same directory as the orchestra or score file (as appropriate), then finally INCDIR.