You can either use relative paths, or absolute paths. An absolute path is the full path to the file, e.g. on Windows C:\Users\username\Documents\file.txt
A relative path starts without a starting delimiter, and will be resolved from the current working directory. For example "file.txt" will be resolved to WorkingDirectory + "\" + "file.txt". You can also include sub directories, so "folder\file.txt" will be resolved to WorkingDirectory + "\" + "folder\file.txt".
A special function here have the special folders "." and "..", where "." refers tho the current folder and ".." referrs to the parent folder. E.g. "C:\Windows\..\Users" will be resolved to "C:\Users" because .. will go back one step (i.e. back from C:\Windows to C:\).
So when you want to use a file which is one directory below your current working directly you can use a relative paths with ..: "..\file.txt" for the working directory "C:\Users\Username\Folder" will be resolved to "C:\Users\Username\file.txt" because the .. goes back one step from "(...)Username\Folder" to "(...)Username".
But be careful with relative paths. If you don't know the working directory from which you are called, you might not find the desired files. The working directory is not always (on linux not even most of the time) the directory where you application is located. So it's better to work with absolute paths here.
To get the absolute path to your current application use "ParamStr(0)":
filename := IncludeTrailingPathDelimiter(ExtractFileDir(ParamStr(0))) + 'sounds' + PathDelim + 'sound.mp3';