X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/e775f23a10c4ba37fc1a762299f52cd0d71593b7..f1f94803668061f90a5ce88bf06ee72bba8e41a5:/interpretor/lib/src/libsndfile-1.0.25/doc/dither.html diff --git a/interpretor/lib/src/libsndfile-1.0.25/doc/dither.html b/interpretor/lib/src/libsndfile-1.0.25/doc/dither.html new file mode 100644 index 0000000..01a416f --- /dev/null +++ b/interpretor/lib/src/libsndfile-1.0.25/doc/dither.html @@ -0,0 +1,1017 @@ + + + +
++ + int sf_command (SNDFILE *sndfile, int cmd, void *data, int datasize) ; ++
+ This function allows the caller to retrieve information from or change aspects of the + library behaviour. + Examples include retrieving a string containing the library version or changing the + scaling applied to floating point sample data during read and write. + Most of these operations are performed on a per-file basis. +
++ The cmd parameter is a integer identifier which is defined in <sndfile.h>. + All of the valid command identifiers have names begining with "SFC_". + Data is passed to and returned from the library by use of a void pointer. + The library will not read or write more than datasize bytes from the void pointer. + For some calls no data is required in which case data should be NULL and datasize + may be used for some other purpose. +
++ The available commands are as follows: +
+ +SFC_GET_LIB_VERSION | +Retrieve the version of the library. | +
SFC_GET_LOG_INFO | +Retrieve the internal per-file operation log. | +
SFC_CALC_SIGNAL_MAX | +Retrieve the measured maximum signal value. | +
SFC_CALC_NORM_SIGNAL_MAX | +Retrieve the measured normalised maximum signal value. | +
SFC_CALC_MAX_ALL_CHANNELS | +Calculate peaks for all channels. | +
SFC_CALC_NORM_MAX_ALL_CHANNELS | +Calculate normalised peaks for all channels. | +
SFC_SET_NORM_FLOAT | +Modify the normalisation behaviour of the floating point reading and writing functions. | +
SFC_SET_NORM_DOUBLE | +Modify the normalisation behaviour of the double precision floating point reading and writing functions. | +
SFC_GET_NORM_FLOAT | +Retrieve the current normalisation behaviour of the floating point reading and writing functions. | +
SFC_GET_NORM_DOUBLE | +Retrieve the current normalisation behaviour of the double precision floating point reading and writing functions. | +
SFC_GET_SIMPLE_FORMAT_COUNT | +Retrieve the number of simple formats supported by libsndfile. | +
SFC_GET_SIMPLE_FORMAT | +Retrieve information about a simple format. | +
SFC_GET_FORMAT_INFO | +Retrieve information about a major or subtype format. | +
SFC_GET_FORMAT_MAJOR_COUNT | +Retrieve the number of major formats. | +
SFC_GET_FORMAT_MAJOR | +Retrieve information about a major format type. | +
SFC_GET_FORMAT_SUBTYPE_COUNT | +Retrieve the number of subformats. | +
SFC_GET_FORMAT_SUBTYPE | +Retrieve information about a subformat. | +
SFC_SET_ADD_PEAK_CHUNK | +Switch the code for adding the PEAK chunk to WAV and AIFF files on or off. | +
SFC_UPDATE_HEADER_NOW | +Used when a file is open for write, this command will update the file + header to reflect the data written so far. | +
SFC_SET_UPDATE_HEADER_AUTO | +Used when a file is open for write, this command will cause the file header + to be updated after each write to the file. | +
SFC_FILE_TRUNCATE | +Truncate a file open for write or for read/write. | +
SFC_SET_RAW_START_OFFSET | +Change the data start offset for files opened up as SF_FORMAT_RAW. | +
+Retrieve the version of the library as a string. +
++Parameters: +
+ sndfile : Not used + cmd : SFC_GET_LIB_VERSION + data : A pointer to a char buffer + datasize : The size of the the buffer ++
+Example: +
++ char buffer [128] ; + sf_command (NULL, SFC_GET_LIB_VERSION, buffer, sizeof (buffer)) ; ++ +
+Retrieve the log buffer generated when opening a file as a string. This log +buffer can often contain a good reason for why libsndfile failed to open a +particular file. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_GET_LOG_INFO + data : A pointer to a char buffer + datasize : The size of the the buffer ++
+Example: +
++ char buffer [2048] ; + sf_command (sndfile, SFC_GET_LOG_INFO, buffer, sizeof (buffer)) ; ++ +
+Retrieve the measured maximum signal value. This involves reading through +the whole file which can be slow on large files. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_CALC_SIGNAL_MAX + data : A pointer to a double + datasize : sizeof (double) ++
+Example: +
++ double max_val ; + sf_command (sndfile, SFC_CALC_SIGNAL_MAX, &max_val, sizeof (max_val)) ; ++ +
+Retrieve the measured normailised maximum signal value. This involves reading +through the whole file which can be slow on large files. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_CALC_NORM_SIGNAL_MAX + data : A pointer to a double + datasize : sizeof (double) ++
+Example: +
++ double max_val ; + sf_command (sndfile, SFC_CALC_NORM_SIGNAL_MAX, &max_val, sizeof (max_val)) ; ++ +
+Calculate peaks for all channels. This involves reading through +the whole file which can be slow on large files. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_CALC_MAX_ALL_CHANNELS + data : A pointer to a double + datasize : sizeof (double) * number_of_channels ++
+Example: +
++ double peaks [number_of_channels] ; + sf_command (sndfile, SFC_CALC_MAX_ALL_CHANNELS, peaks, sizeof (peaks)) ; ++
+Calculate normalised peaks for all channels. This involves reading through +the whole file which can be slow on large files. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_CALC_NORM_MAX_ALL_CHANNELS + data : A pointer to a double + datasize : sizeof (double) * number_of_channels ++
+Example: +
++ double peaks [number_of_channels] ; + sf_command (sndfile, SFC_CALC_NORM_MAX_ALL_CHANNELS, peaks, sizeof (peaks)) ; ++
+This command only affects data read from or written to using the floating point functions: +
++ size_t sf_read_float (SNDFILE *sndfile, float *ptr, size_t items) ; + size_t sf_readf_float (SNDFILE *sndfile, float *ptr, size_t frames) ; + + size_t sf_write_float (SNDFILE *sndfile, float *ptr, size_t items) ; + size_t sf_writef_float (SNDFILE *sndfile, float *ptr, size_t frames) ; ++
+Parameters: +
++ sndfile : A valid SNDFILE* pointer + cmd : SFC_SET_NORM_FLOAT + data : NULL + datasize : SF_TRUE or SF_FALSE ++
+For read operations setting normalisation to SF_TRUE means that the data from all +subsequent reads will be be normalised to the range [-1.0, 1.0]. +
++For write operations, setting normalisation to SF_TRUE means than all data supplied +to the float write functions should be in the range [-1.0, 1.0] and will be scaled +for the file format as necessary. +
++For both cases, setting normalisation to SF_FALSE means that no scaling will take place. +
++Example: +
++ sf_command (sndfile, SFC_SET_NORM_FLOAT, NULL, SF_TRUE) ; + + sf_command (sndfile, SFC_SET_NORM_FLOAT, NULL, SF_FALSE) ; ++
+This command only affects data read from or written to using the double precision +floating point functions: +
++ size_t sf_read_double (SNDFILE *sndfile, double *ptr, size_t items) ; + size_t sf_readf_double (SNDFILE *sndfile, double *ptr, size_t frames) ; + + size_t sf_write_double (SNDFILE *sndfile, double *ptr, size_t items) ; + size_t sf_writef_double (SNDFILE *sndfile, double *ptr, size_t frames) ; ++
+Parameters: +
++ sndfile : A valid SNDFILE* pointer + cmd : SFC_SET_NORM_DOUBLE + data : NULL + datasize : SF_TRUE or SF_FALSE ++
+For read operations setting normalisation to SF_TRUE means that the data +from all subsequent reads will be be normalised to the range [-1.0, 1.0]. +
++For write operations, setting normalisation to SF_TRUE means than all data supplied +to the double write functions should be in the range [-1.0, 1.0] and will be scaled +for the file format as necessary. +
++For both cases, setting normalisation to SF_FALSE means that no scaling will take place. +
++Example: +
++ sf_command (sndfile, SFC_SET_NORM_DOUBLE, NULL, SF_TRUE) ; + + sf_command (sndfile, SFC_SET_NORM_DOUBLE, NULL, SF_FALSE) ; ++
+Retrieve the current float normalisation mode. +
++Parameters: +
++ sndfile : A valid SNDFILE* pointer + cmd : SFC_GET_NORM_FLOAT + data : NULL + datasize : anything ++
+Example: +
++ normalisation = sf_command (sndfile, SFC_GET_NORM_FLOAT, NULL, 0) ; ++
+Retrieve the current float normalisation mode. +
++Parameters: +
++ sndfile : A valid SNDFILE* pointer + cmd : SFC_GET_NORM_DOUBLE + data : NULL + datasize : anything ++
+Example: +
++ normalisation = sf_command (sndfile, SFC_GET_NORM_DOUBLE, NULL, 0) ; ++
+Retrieve the number of simple formats supported by libsndfile. +
++Parameters: +
++ sndfile : Not used. + cmd : SFC_GET_SIMPLE_FORMAT_COUNT + data : a pointer to an int + datasize : sizeof (int) ++
+Example: +
++ int count ; + sf_command (sndfile, SFC_GET_SIMPLE_FORMAT_COUNT, &count, sizeof (int)) ; ++
+Retrieve information about a simple format. +
++Parameters: +
++ sndfile : Not used. + cmd : SFC_GET_SIMPLE_FORMAT + data : a pointer to an SF_FORMAT_INFO struct + datasize : sizeof (SF_FORMAT_INFO) ++
+The SF_FORMAT_INFO struct is defined in <sndfile.h> as: +
++ typedef struct + { int format ; + const char *name ; + const char *extension ; + } SF_FORMAT_INFO ; ++
+When sf_command() is called with SF_GET_SIMPLE_FORMAT, the value of the format +field should be the format number (ie 0 <= format <= count value obtained using +SF_GET_SIMPLE_FORMAT_COUNT). +
++Example: +
++ SF_FORMAT_INFO format_info ; + int k, count ; + + sf_command (sndfile, SFC_GET_SIMPLE_FORMAT_COUNT, &count, sizeof (int)) ; + + for (k = 0 ; k < count ; k++) + { format_info.format = k ; + sf_command (sndfile, SFC_GET_SIMPLE_FORMAT, &format_info, sizeof (format_info)) ; + printf ("%08x %s %s\n", format_info.format, format_info.name, format_info.extension) ; + } ; ++
+Retrieve information about a major or subtype format. +
++Parameters: +
++ sndfile : Not used. + cmd : SFC_GET_FORMAT_INFO + data : a pointer to an SF_FORMAT_INFO struct + datasize : sizeof (SF_FORMAT_INFO) ++
+The SF_FORMAT_INFO struct is defined in <sndfile.h> as: +
++ typedef struct + { int format ; + const char *name ; + const char *extension ; + } SF_FORMAT_INFO ; ++
+When sf_command() is called with SF_GET_FORMAT_INFO, the format field is +examined and if (format & SF_FORMAT_TYPEMASK) is a valid format then the struct +is filled in with information about the given major type. +If (format & SF_FORMAT_TYPEMASK) is FALSE and (format & SF_FORMAT_SUBMASK) is a +valid subtype format then the struct is filled in with information about the given +subtype. +
++Example: +
++ SF_FORMAT_INFO format_info ; + + format_info.format = SF_FORMAT_WAV ; + sf_command (sndfile, SFC_GET_FORMAT_INFO, &format_info, sizeof (format_info)) ; + printf ("%08x %s %s\n", format_info.format, format_info.name, format_info.extension) ; + + format_info.format = SF_FORMAT_ULAW ; + sf_command (sndfile, SFC_GET_FORMAT_INFO, &format_info, sizeof (format_info)) ; + printf ("%08x %s\n", format_info.format, format_info.name) ; ++
+Retrieve the number of major formats. +
++Parameters: +
++ sndfile : Not used. + cmd : SFC_GET_FORMAT_MAJOR_COUNT + data : a pointer to an int + datasize : sizeof (int) ++
+Example: +
++ int count ; + sf_command (sndfile, SFC_GET_FORMAT_MAJOR_COUNT, &count, sizeof (int)) ; ++
+Retrieve information about a major format type. +
++Parameters: +
++ sndfile : Not used. + cmd : SFC_GET_FORMAT_MAJOR + data : a pointer to an SF_FORMAT_INFO struct + datasize : sizeof (SF_FORMAT_INFO) ++
+Example: +
++ SF_FORMAT_INFO format_info ; + int k, count ; + + sf_command (sndfile, SFC_GET_FORMAT_MAJOR_COUNT, &count, sizeof (int)) ; + + for (k = 0 ; k < count ; k++) + { format_info.format = k ; + sf_command (sndfile, SFC_GET_FORMAT_MAJOR, &format_info, sizeof (format_info)) ; + printf ("%08x %s %s\n", format_info.format, format_info.name, format_info.extension) ; + } ; ++
+For a more comprehensive example, see the program list_formats.c in the examples/ +directory of the libsndfile source code distribution. +
++Retrieve the number of subformats. +
++Parameters: +
++ sndfile : Not used. + cmd : SFC_GET_FORMAT_SUBTYPE_COUNT + data : a pointer to an int + datasize : sizeof (int) ++
+Example: +
++ int count ; + sf_command (sndfile, SFC_GET_FORMAT_SUBTYPE_COUNT, &count, sizeof (int)) ; ++
+Retrieve information about a subformat. +
++Parameters: +
++ sndfile : Not used. + cmd : SFC_GET_FORMAT_SUBTYPE + data : a pointer to an SF_FORMAT_INFO struct + datasize : sizeof (SF_FORMAT_INFO) ++
+Example: +
++ SF_FORMAT_INFO format_info ; + int k, count ; + + sf_command (sndfile, SFC_GET_FORMAT_SUBTYPE_COUNT, &count, sizeof (int)) ; + + /* Retrieve all the subtypes supported by the WAV format. */ + for (k = 0 ; k < count ; k++) + { format_info.format = k ; + sf_command (sndfile, SFC_GET_FORMAT_SUBTYPE, &format_info, sizeof (format_info)) ; + if (! sf_format_check (format.info | SF_FORMAT_WAV)) + continue ; + printf ("%08x %s\n", format_info.format, format_info.name) ; + } ; ++
+For a more comprehensive example, see the program list_formats.c in the examples/ +directory of the libsndfile source code distribution. +
++By default, WAV and AIFF files which contain floating point data (subtype SF_FORMAT_FLOAT +or SF_FORMAT_DOUBLE) have a PEAK chunk. +By using this command, the addition of a PEAK chunk can be turned on or off. +
++Note : This call must be made before any data is written to the file. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_SET_ADD_PEAK_CHUNK + data : Not used (should be NULL) + datasize : TRUE or FALSE. ++
+Example: +
++ /* Turn on the PEAK chunk. */ + sf_command (sndfile, SFC_SET_ADD_PEAK_CHUNK, NULL, SF_TRUE) ; + + /* Turn off the PEAK chunk. */ + sf_command (sndfile, SFC_SET_ADD_PEAK_CHUNK, NULL, SF_FALSE) ; ++
+The header of an audio file is normally written by libsndfile when the file is +closed using sf_close(). +
++There are however situations where large files are being generated and it would +be nice to have valid data in the header before the file is complete. +Using this command will update the file header to reflect the amount of data written +to the file so far. +Other programs opening the file for read (before any more data is written) will +then read a valid sound file header. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_UPDATE_HEADER_NOW + data : Not used (should be NULL) + datasize : Not used. ++
+Example: +
++ /* Update the header now. */ + sf_command (sndfile, SFC_UPDATE_HEADER_NOW, NULL, 0) ; ++
+Similar to SFC_UPDATE_HEADER_NOW but updates the header at the end of every call +to the sf_write* functions. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_UPDATE_HEADER_NOW + data : Not used (should be NULL) + datasize : SF_TRUE or SF_FALSE ++
+Example: +
++ /* Turn on auto header update. */ + sf_command (sndfile, SFC_SET_UPDATE_HEADER_AUTO, NULL, SF_TRUE) ; + + /* Turn off auto header update. */ + sf_command (sndfile, SFC_SET_UPDATE_HEADER_AUTO, NULL, SF_FALSE) ; ++
+Truncate a file open for write or for read/write. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_FILE_TRUNCATE + data : A pointer to an sf_count_t. + datasize : sizeof (sf_count_t) ++ +
+Truncate the file to the number of frames specified by the sf_count_t pointed +to by data. +After this command, both the read and the write pointer will be +at the new end of the file. +This command will fail (returning non-zero) if the requested truncate position +is beyond the end of the file. +
++Example: +
++ /* Truncate the file to a length of 20 frames. */ + sf_count_t frames = 20 ; + sf_command (sndfile, SFC_FILE_TRUNCATE, &frames, sizeof (frames)) ; ++
+Change the data start offset for files opened up as SF_FORMAT_RAW. +
++Parameters: +
+ sndfile : A valid SNDFILE* pointer + cmd : SFC_SET_RAW_START_OFFSET + data : A pointer to an sf_count_t. + datasize : sizeof (sf_count_t) ++ +
+For a file opened as format SF_FORMAT_RAW, set the data offset to the value +given by data. +
++Example: +
++ /* Reset the data offset to 5 bytes from the start of the file. */ + sf_count_t offset = 5 ; + sf_command (sndfile, SFC_SET_RAW_START_OFFSET, &offset, sizeof (offset)) ; ++
+ The libsndfile home page is here :
+
+ http://www.mega-nerd.com/libsndfile/.
+
+Version : 1.0.25
+