AFSETVIRTUALSAMPLEFO(3)

✨ afSetVirtualByteOrder, afSetVirtualChannels, afSetVirtualPCMMapping, afSetVirtualSampleFormat ✨

okay so bestie, this is the afSetVirtual... crew from section 3 of the manual β€” four lil functions that all do the same iconic thing: they set the virtual data format for a track in an audio file. πŸ’… not the real format, the virtual one. yes queen, they're different. iykyk.


🌸 SYNOPSIS 🌸

#include <audiofile.h>

int afSetVirtualByteOrder (AFfilehandle file, int track, int byteOrder);

int afSetVirtualChannels (AFfilehandle file, int track, int channels);

int afSetVirtualSampleFormat (AFfilehandle file, int track,
    int sampleFormat, int sampleWidth);

int afSetVirtualPCMMapping (AFfilehandle file, int track,
    double slope, double intercept, double minclip, double maxclip);

four functions, one header, zero drama. slay. 🫢


πŸŽ€ PARAMETERS πŸŽ€

here's the tea on every single argument, no skips, no skimming, fr fr:

  • file is an AFfilehandle which refers to an open audio file, and it's usually created by afOpenFile. so like, you already opened it. the file is right there. 😌
  • track is an integer which identifies a particular track in an open audio file. and babes, the only valid track is AF_DEFAULT_TRACK for all currently supported file formats. that's it. that's the whole list. one (1) valid value. πŸ’€
  • sampleFormat is an integer which denotes a virtual sample format. valid values are AF_SAMPFMT_TWOSCOMP, AF_SAMPFMT_UNSIGNED, AF_SAMPFMT_FLOAT, and AF_SAMPFMT_DOUBLE. four options, pick your fighter. ⭐
  • sampleWidth is a positive integer which specifies the number of bits in a sample. positive! don't come in here with a negative number. πŸ™ˆ
  • channels is a positive integer which specifies the number of interleaved audio channels in the given audio track. again: positive. we're being so real about that. πŸ¦‹
  • byteOrder is an integer which specifies the virtual byte order of samples in the given audio track. byteOrder can be either AF_BYTEORDER_BIGENDIAN or AF_BYTEORDER_LITTLEENDIAN. big endian or little endian, no in-between, no third thing. πŸ‘‘
  • slope and intercept are double-precision floating point values which indicate the audio data sample slope and zero-crossing value, respectively, for the given sample format. respectively!! slope = slope, intercept = zero-crossing. don't mix them up bestie. 🧚
  • minclip and maxclip are double-precision floating point values which indicates the minimum or maximum sample values to be returned. any values less than minclip will be set to minclip, and any values greater than maxclip will be set to maxclip. so it's a little clamping situation. values that stray too far get gently shoved back into the range. it's giving protective. πŸ₯Ί

πŸ’– RETURN VALUE πŸ’–

these functions return 0 for success and -1 for failure. that's it. zero is the good one, negative one is the "we don't talk about it" one. no in-between, no fancy error codes, just vibes and a number. πŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

Michael Pruett <michael@68k.org> β€” the main character who wrote this. we love him, we thank him, periodt. πŸ’œ


and that's the whole page, bestie!! πŸŽ€ this was pulled from Audio File Library 0.3.6, dated 03/06/2013, and the manual page goes by AFSETVIRTUALSAMPLEFO(3) β€” okurrr, go forth and set those virtual formats. mwah. πŸ’…βœ¨πŸŒΈ

πŸ“¦ where this page comes from