background image

HH

VS1005 VSOS A

UDIO

S

UBSYSTEM

VS1005g

14

Audio Encoders

There are currently two Audio Encoders. They are for Ogg Vorbis and MP3 formats.
Both are intended to operate properly at the 60 MHz standard operating speed. For
details of how to use them, see the source code for the VSIDE solution Rec (more
information for Rec is available in the

VSOS Shell document

).

14.1

ENCVORB.DL3 - Ogg Vorbis Encoder

ENCVORB.DL3 offers a high-quality encoder for the free end open Ogg Vorbis audio
format. This is the recommended format for those users that don’t specifically need the
MP3 format, and for whom the variable bitrate property of Ogg Vorbis is not a problem.

The Ogg Vorbis encoder is a Variable BitRate encoder, and works best when given an
encoding quality value. The range for the quality is from 0 and 10 (10 is the best; qualities
above 6 may require a higher clock speed than 60 MHz). If set to Constant bitrate, the
encoder will convert that to an approximate quality value, and still use Variable BitRate.

14.2

ENCMP3.DL3 - MP3 Encoder (VS1205 only)

ENCMP3.DL3 offers a high-quality encoder for the popular MP3 audio format. While
not capable of getting quite the same quality as Ogg Vorbis when using similar bit-rates,
the MP3 encoder still offers high fidelity sound at bit-rates between 160-192 kbit/s, and
acceptable speech quality at very much lower bitrates.

The MP3 encoder can operate either with a Variable BitRate or Constant BitRate en-
coder depending on whether a quality or bitrate value is set. For best quality per bit,
Variable BitRate is recommended.

14.3

ENCFLAC.DL3 - FLAC Encoder

ENCFLAC.DL3 offers a lossless encoder for 16-bit audio up to 48 kHz. Typically a 48 kHz
16-bit stream is compressed from 1.536 Mbit/s to 0.8-1.3 Mbit/s. Because encoding is
lossless, compression efficiency depends on the audio data.

Because the bitrates are much higher than for the Ogg Vorbis or MP3 encoders, storing
the result to e.g. an SD card may require a separate buffer memory.

Rev. 3.57

2019-04-10

Page

59(62)

Summary of Contents for VS1005

Page 1: ...nerator audio driver 3 55 2018 04 05 HH Added Reverb Generator audio driver 3 52 2018 01 22 HH Updated for VSOS 3 52 3 42 2017 05 18 HH More S PDIF drivers FLAC Encoder Pitch Shifter 3 40 2016 11 03 HH Updated for VSOS 3 40 3 30a 2016 07 14 HH Bug patch release for VSOS 3 30 3 30 2016 06 22 HH Updated for VSOS 3 30 1 03 2016 02 15 HH New AUXPLAY fract rates updated AuOutput 1 02 2016 01 27 HH Adde...

Page 2: ...L3 16 7 4 Analog Input ADC Audio Drivers 17 7 4 1 Driver AUIADC DL3 17 7 5 I2S Audio Drivers 19 7 5 1 Driver AUOI2SMA DL3 19 7 5 2 Driver AUOI2SM DL3 20 7 5 3 Driver AUOI2SS DL3 20 7 5 4 Driver AUII2SM DL3 21 7 5 5 Driver AUII2SS DL3 21 7 5 6 Driver AUXI2SM DL3 21 7 5 7 Driver AUXI2SS DL3 21 7 6 S PDIF Audio Drivers 22 7 6 1 Driver AUOSPDA DL3 22 7 6 2 Driver AUISPD DL3 23 7 6 3 Driver AUXSPD DL3 ...

Page 3: ...d I2S S PDIF Outputs 43 10 3 Basic config sys for Recording 43 10 4 Versatile config sys for Recording with AGC and I2S S PDIF Outputs 44 10 5 config sys for Playback Recording from I2S in Slave Mode and Monitor ing to DAC with Automatic Synchronization 44 10 6 Loading Unloading Drivers Using the VSOS Shell 44 11 VSOS Audio ioctl Controls 46 11 1 Resetting a Driver 46 11 1 1 IOCTL_RESTART 46 11 2 ...

Page 4: ...PUT 53 11 6 Fractional Sample Rates 54 12 Controlling Audio from VSOS Shell with UiMessages 55 12 1 Setting Volume anywhere from VSOS Shell 55 12 2 Sending Equalizer Controls from VSOS Shell 55 13 Audio Decoders 56 13 1 Decoder Loop Functionality 58 14 Audio Encoders 59 14 1 ENCVORB DL3 Ogg Vorbis Encoder 59 14 2 ENCMP3 DL3 MP3 Encoder VS1205 only 59 14 3 ENCFLAC DL3 FLAC Encoder 59 15 Latest Docu...

Page 5: ... 17 6 AUOI2SMA DL3 audio path shown in bold brown 19 7 AUOI2SM DL3 audio path shown in bold brown 20 8 AUII2SM DL3 audio path shown in bold brown 21 9 AUOSPDA DL3 audio path shown in bold brown Software driver con necting to the filterless sample rate converter bold green shown in bold magenta 23 10 A filter input driver connects to the stdaudioin chain 28 11 A filter output driver connects to the...

Page 6: ...ers are presented in Chapter 7 Audio Drivers followed by a presentation of the currently existing filters in Chapter 8 Audio Driver Filters and control programs in Chapter 9 Audio Control Programs Some examples on how to start audio drivers from config txt or the VSOS Shell are shown in Chapter 10 Configuration Examples Chapter 12 shows how to control some aspects on audio using UiMessages even if...

Page 7: ...ectness of this docu mentation 3 Definitions DSP Digital Signal Processor I mem Instruction Memory LSW Least Significant 16 bit Word MSW Most Significant 16 bit Word RISC Reduced Instruction Set Computer VS_DSP4 VLSI Solution s DSP core VSIDE VLSI Solution s Integrated Development Environment VSOS VLSI Solution s Operating System X mem X Data Memory Y mem Y Data Memory Rev 3 57 2019 04 10 Page 7 6...

Page 8: ...rolled either with ioctl calls from the C language or from VSOS Shell control program While instructions for how to use each audio driver are provided in the README TXT or documentation PDF files of the drivers this document will provide an overview of the capabilities of the drivers However for details refer to documentation of the audio drivers themselves Rev 3 57 2019 04 10 Page 8 62 ...

Page 9: ... at least v3 23 released 2015 09 04 USB cable between DevBoard and PC for uploading new software If you want to use the VSOS Shell environment you will also need UART or USB UART cable connected between DevBoard and PC for using the UART interface Data speed is 115200 bps format is 8N1 Your favorite UART Terminal Emulation program installed on the PC Read the VS1005 VSOS Shell for further details ...

Page 10: ... in standard C It is not allowed for the user to close standard audio input or output files but the user may modify their parameters By default stdaudioout is connected to analog output pins LEFT and RIGHT although this can be changed with appropriate audio drivers Both standard audio input and output open in stereo 16 bit 48 kHz mode These pa rameters can be changed by the user with driver and ha...

Page 11: ...IZE int main void Remember to never allocate buffers from stack space So if you allocate the space inside your function never forget static static s_int16 myBuf 2 SIN_TAB_SIZE int i Build sine table for i 0 i SIN_TAB_SIZE i sinTab i s_int16 sin i 2 0 M_PI SIN_TAB_SIZE SIN_AMPLITUDE while 1 Clear buffer memset myBuf 0 sizeof myBuf Create sine wave to the left channel for i 0 i SIN_TAB_SIZE i myBuf ...

Page 12: ...nt include vo_stdio h include apploader h Contains LoadLibrary and DropLibrary include consolestate h define BUFSIZE 128 ioresult main char parameters static s_int16 myBuf BUFSIZE if stdaudioin stdaudioout printf E NO AUDIO IN OR OUT n return S_ERROR while appFlags APP_FLAG_QUIT Until Ctrl C is pushed fread myBuf sizeof s_int16 BUFSIZE stdaudioin fwrite myBuf sizeof s_int16 BUFSIZE stdaudioout ret...

Page 13: ...2S driver is Master or Slave DAOSET_LEFT DAOSET_RIGHT DAC_LEFT DAC_RIGHT I2S_LEFT I2S_RIGHT SP_LDATA SP_RDATA 24 24 24 24 24 24 24 24 24 DAC_VOL 32 16 SRC_CF DAC output drivers I2S_CF Analog I2S_BCK I2S_FRM I2S_DO SRC_LEFT SRC_RIGHT CBUF RIGHT LEFT DAOSET_CF DAC_SRC Digital RED Pin BLUE Register SPDIF_OUT encoder S PDIF 24 16 sample rate upconverter upconverter Sample rate with filters and hold Sa...

Page 14: ...F_P LINE1_2 LINE2_2 LINE3_2 LINE1_3 L R 6 18 18 SP_LDATA SP_RDATA 24 24 SPDIF_IN 24 AD_CF_ADFS ADENA AD_CF_ AD1 S PDIF decoder demod FM DIA2 DIA3 VCO AD_RIGHT AD_MONO 24 24 24 24 24 AD_CF_ADFS FM_CF_UAD3 AD_CF_ AD3ENA AD3 AD_CF_ ADENA AD2 MIC2N MIC2P MIC1P MIC1N FM_CF_UAD1 FM_CF_UAD2 AD23_FLP AD_CF_ AD_CF_AD3FS Figure 2 VS1005g recording AD FM etc signal paths Figure 2 shows the VS1005 hardware in...

Page 15: ...gister Figure 3 AUODAC DL3 signal paths shown in bold brown Figure 3 shows the VS1005 high quality fully filtered analog output main audio path AUODAC DL3 is the basic DAC output driver It takes over the VSOS default driver and offers a lot of funtionality over it like 16 bit and 32 bit data transfers It takes over stdaudioout so all software that writes to standard output will send audio to this ...

Page 16: ... VS1005 analog output audio side path This audio path is not filtered it is only put through a Sample and hold upconverter As such audible aliasing distortion may be heard if low sample rates are used This audio path is best suitable for different kinds of alarm and effects sounds that may easily be independently overlayed on top of the audio of the main audio path see Chapter 7 2 1 The sample rat...

Page 17: ...r lets the user select a stereo input from a multitude of analog and even some digital sources The sources used may be chosen at startup time or changed dynamically while the driver is running Any brown source in Figure 5 may be combined with any green source to form a stereo signal However if the magenta coloured RF input is selected it takes over the whole stereo audio path Supported sample rate...

Page 18: ...megahertz domain from the microphones are fed to the high quality digital low pass filtering path of VS1005 On the VS1005 DevBoard LINE1_1 and LINE1_3 are used as the default analog inputs On the VS1005 BreakOut Board LINE1_1 and LINE1_2 are used The input can be controlled using the VSOS Shell environment using the AUINPUT program Chapter 9 1 Rev 3 57 2019 04 10 Page 18 62 ...

Page 19: ... AUOI2SMA DL3 all drivers connect to stdaudioin and or stdau dioout if started with parameter s Otherwise the drivers need to be opened and accessed manually 7 5 1 Driver AUOI2SMA DL3 DAOSET_LEFT DAOSET_RIGHT DAC_LEFT DAC_RIGHT I2S_LEFT I2S_RIGHT SP_LDATA SP_RDATA 24 24 24 24 24 24 24 24 24 DAC_VOL 32 16 SRC_CF DAC output drivers I2S_CF Analog I2S_BCK I2S_FRM I2S_DO SRC_LEFT SRC_RIGHT CBUF RIGHT L...

Page 20: ...er RED text Pin BLUE text Register Figure 7 AUOI2SM DL3 audio path shown in bold brown If you need to send independent audio to the DAC and I2S using AUOI2SM DL3 is required Note however that that driver can only support the basic master mode sample rates e g not 44100 Hz Figure 7 shows the manual audio path activated by the AUOI2SM DL3 driver 7 5 3 Driver AUOI2SS DL3 The AUOI2SS DL3 is otherwise ...

Page 21: ...r Chapter 7 7 1 7 5 6 Driver AUXI2SM DL3 The AUXi2SM DL3 audio driver handles both I2S input and output in master mode as shown in Figures 7 and 8 The I2S input and output are always kept in sync so software using both the input and output doesn t need to do synchronization Also because the exact I2S sample rates 24 and 48 kHz are directly supported by VS1005 s analog audio output path as well as ...

Page 22: ... X X X X Generic I O sync in out AUXSPD48 X X X Limited I O sync in out AUOSP48S X X Output sync with input AUOSPD48 X X Output at exactly 48 kHz 1 The driver modifies System Clock either 56 448 MHz for 44 1 or 88 2 kHz operation or 61 440 MHz for 48 or 96 kHz operation The driver is incompatible with any USB drivers or FM receiver software 2 The driver sample rate is as accurate as the input cloc...

Page 23: ...will use an output rate of 48 kHz Only use this option if no audio that you play back has a sample rate over 48 kHz The driver can be opened manually in which case it has a separate volume control that can be used As a default full output volume is used However if the driver is started with parameter v it will automatically copy any volume setting sent to stdaudioout If the driver has not started ...

Page 24: ...utput with the input It supports 44 1 kHz 48 kHz 88 2 kHz and 96 kHz sample rates Because this driver automatically synchronizes its output with its input there is no need to run a separate synchronization driver like AUXSYNCS DL3 This driver automatically sets the VSDSP core clock to enable S PDIF operation It is incompatible with any USB drivers or FM Radio receiver software Example of how to ac...

Page 25: ...there is no need to run a separate synchronization driver like AUXSYNCS DL3 This driver automatically sets the VSDSP core clock to enable S PDIF operation It is incompatible with any USB drivers or FM Radio receiver software Example of how to activate under VSOS Shell so that input from I2S slave mode is automatically played back to the S PDIF output note nothing is played through analog audio the...

Page 26: ...alog Earphone Line Out driver AUODAC DL3 Before starting the Sync Driver the user must first load and connect a slave audio input driver to stdaudioin and the analog output driver to stdaudioout When the driver is loaded it will automatically adjust the analog output sample rate according to the input The adjustment range is up to 97500 Hz so standard sample rates up to 96 kHz can be received The ...

Page 27: ...ly trivial it does so in the background allowing the user to do other operations while sound is being played back Normally the driver reports to stdout if there are input buffer overflows or output buffer underflows The amount of the overflows underflows are given in stereo samples so e g 4800 at a sample rate of 48000 means 1 10s The reports use the following format AUXSPLAY In overflow 4088 AUXS...

Page 28: ...er input driver connects to the stdaudioin chain All filter input drivers connect directly between the current stdaudioin program chain and the user program as shown in Figure 10 It is important to first start the base driver responsible for stdaudioin before starting the filter driver driver driver user program audio driver audio driver user program stdaudioout output filter output filter stdaudi...

Page 29: ...g the filter driver If the user wishes to remove an audio driver or some filters they always have to removed in reverse order as they were allocated E g if AUODAC DL3 and FTOEQU DL3 have been loaded they must be released in order FTOEQU DL3 AUODAC DL3 Rev 3 57 2019 04 10 Page 29 62 ...

Page 30: ...F gain qFactor h i Set stdaudioin o Set stdaudioout default n Use filter number n 1 MAX_FILTERS flags 1 left 2 right centerF Center frequency in Hz gain Gain in dB 12 0 12 0 qFactor Q Factor 0 1 4 0 h Show this help Examples setequ 1 3 400 6 0 0 5 Set filter 1 L R 400 Hz 6 dB Q 0 5 setequ 1 0 Clear filter 1 setequ 1 Show filter 1 setequ Show all filters SETEQU DL3 is a program to set and or displa...

Page 31: ...enly around the center point but has an offset of about 0 35 While the figure has been greatly exaggerated this is a real phenomenon caused by a myriad of different reasons 0 100 200 300 400 1 0 5 0 0 5 1 Figure 13 Audio with DC blocking DC offset may cause many issues including increased power consumption audible cracks and pops waring down of speaker elements and non ideal audio compression Beca...

Page 32: ...he driver itself or from the VSOS Shell using the SETAGC DL3 command 8 2 2 Driver FTIAGC DL3 In addition to the DC Block driver described in 8 2 1 the AGC driver offers an Automatic Gain Control function The driver may be controlled either through C ioctl function calls as described in the README TXT file for the driver itself or from the VSOS Shell using the SETAGC DL3 command 8 2 3 Control Progr...

Page 33: ...le rate is be tween 32 and 48 kHz 8 3 1 Driver FTOPITCH The Pitch shifter driver FTOPITCH DL3 connects to stdaudioout as shown in Figure 11 on page 28 The driver may be controlled either through C ioctl function calls as described in the README TXT file for the driver itself or from the VSOS Shell using the SETPITCH DL3 command 8 3 2 Control Program SETPITCH Usage SetPitch i o sx px h i Set stdaud...

Page 34: ...ioout as shown in Fig ure 11 on page 28 The Reverb Generator signal paths are shown in Figure 14 The driver may be controlled either through C ioctl function calls as described in the README TXT file for the driver itself or from the VSOS Shell using the SETREV DL3 command Note To easily test how modifying parameters affects sound you can start the automatic playback driver AUXPLAY Chapter 7 8 1 a...

Page 35: ...e first reflection option f in SETREV Chapter 8 4 3 is not available Audio Driver Dry Gain Wet Gain Generator Reverb stdaudioout Reverb Generator driver VS23S0X0 S RAM Figure 15 Reverb Generator FTOREV23 signal paths The Reverb Generator driver FTOREV23 DL3 is like FTOREV DL3 except that it uses an external VS23S010 or VS23S040 S RAM IC for buffering making it possible to create larger rooms than ...

Page 36: ...er auodac s S driver auiadc s S auoutput b32 r96000 s2048 S auinput b32 r96000 s2048 S driver ftorev23 S driver auxplay S setclock t CPU speed effective speed 7 33 86 02 MHz 8 5 overhead 78 68 MHz S 8 4 3 Control Program SETREV Usage SetRev i o v v sx tx fx dx wx h i Set stdaudioin o Set stdaudioout default rx Set first reflection time in milliseconds sx Set room size to x cm 200 1200 recommended ...

Page 37: ... there is available in the system When you run SetRev the displayed parameter Delay pairs tells how well the reverb driver has been able to set its filters In an ideal case Delay pairs should be 8 Anything below 4 usually gives a somewhat artificial result Also if you define a room that is way too large to being implemented it will automatically be resized In the example below we try to make a roo...

Page 38: ...om higher frequencies will attenuate faster than low frequencies making the room feel warmer Dry Gain d 0 32768 Dry Gain is the gain setting for the direct input to output audio path 1024 is the nominal gain the original sound is passed through with no volume change To avoid distortion it is recommended that Dry Gain Wet Gain 1024 or at least not much over 1024 Wet Gain w 0 32768 Wet Gain is the g...

Page 39: ...o if audio is set to 32 bits the noise killer is disabled The noise killer driver FTINOISE DL3 connects to stdaudioin as shown in Figure 10 on page 28 The driver may be controlled either through C ioctl function calls as described in the README TXT file for the driver itself or from the VSOS Shell using the SETNOISE DL3 command Note To easily test how the algorithm works you can start the RDS Radi...

Page 40: ...iller at 0 dB S The default for the noise killer is a signal to noise ratio of 50 dB If the reception is poor lower numbers may be required Note that by the value of 30 dB the stereo image mostly disappears Setting the noise killer to 0 dB will disable it Rev 3 57 2019 04 10 Page 40 62 ...

Page 41: ...ments line1_1 line2_1 line3_1 mic1 dia1 Right elements line1_2 line2_2 line3_2 line1_3 mic2 dia2 dia3 Example auinput line1_1 line1_3 AUINPUT lets the user display control several parameters of stdaudioin or any unlocked audio input driver or file pointer if it is known If used with the analog input driver AUIADC Chapter 7 4 1 AUINPUT can also be used to configure the input channels multiplexers I...

Page 42: ... any un locked audio input driver or file pointer if it is known If called without any command line arguments that change a value AUOUTPUT will display the status of the audio driver as shown below S auoutput stdaudioout 0x1fea auodac audioFile 3139 0xc43 Identify 0x3b4f auxsyncs Identify returns AUXSYNCS op 0x1ff1 auodac audioFileOps 0 0x0 Ioctl 0x355b auodac AudioIoctl Write 0x39fb auxsyncs Audi...

Page 43: ...matic out automatic is hardware so doesn t require CPU AUOI2SMA S PDIF automatic out parameter can be either 48000 or 96000 default If v is defined stdaudioout volume control is copied to S PDIF otherwise it needs to be controlled manually otherwise it stays at maximum level AUOSPDA 96000 v Equalizer set 100 and 10000 Hz to 6 dB with Q Factor 0 7 FTOEQU RUN SETEQU 1 3 100 6 0 7 RUN SETEQU 2 3 1000...

Page 44: ...UII2SS s Load Line Out Earphone output driver and make it stdaudioout AUODAC s Connect and synchronize stdaudioout with stdaudioin slave AUXSYNCS Copy stdaudioin to stdaudioout If loaded q parameter buffer under overflows are NOT reported AUXPLAY 10 6 Loading Unloading Drivers Using the VSOS Shell Using the VSOS Shell Environment you can use the DRIVER DL3 program to load drivers to memory and to ...

Page 45: ...HH VS1005 VSOS AUDIO SUBSYSTEM VS1005g To unload the drivers enter the following commands S driver auxplay S driver auxsyncs S driver auodac S driver auii2ss Rev 3 57 2019 04 10 Page 45 62 ...

Page 46: ...or the request doesn t exist in this driver any other value for success Generally for functions that set a value if arg is a pointer or a 16 bit calue it is casted to c char and passed to the function e g IOCTL_AUDIO_SET_BITS in Chapter 11 2 5 If arg is a larger entity e g 32 bit number a pointer to the value is passed instead e g IOCTL_AUDIO_SET_ORATE in Chapter 11 2 3 Again generally for functio...

Page 47: ...t and output sample rate if applicable Not available with Slave Mode drivers Example s_int32 rateBits 48000 Set to 48000 Hz 32 bits if ioctl fp IOCTL_AUDIO_SET_RATE_AND_BITS char rateBits printf Couldn t set sample rate and bits n 11 2 2 IOCTL_AUDIO_GET_IRATE IOCTL_AUDIO_GET_ORATE Get integer part of the current sample rate Note that sample rate may be larger than what can fit into 16 bits so it n...

Page 48: ...ate 48000 if ioctl fp IOCTL_AUDIO_SET_IRATE char sampleRate printf Couldn t set sample rate n Example for driver with output s_int32 sampleRate 48000 if ioctl fp IOCTL_AUDIO_SET_ORATE char sampleRate printf Couldn t set sample rate n 11 2 4 IOCTL_AUDIO_GET_BITS Get number of bits for driver Example bits ioctl fp IOCTL_AUDIO_GET_BITS NULL 11 2 5 IOCTL_AUDIO_SET_BITS Set number of bits for driver Ex...

Page 49: ...s with input capability Example iBufSize ioctl fp IOCTL_AUDIO_GET_INPUT_BUFFER_SIZE NULL 11 3 3 IOCTL_AUDIO_SET_INPUT_BUFFER_SIZE Set input buffer size in 16 bit words Only for drivers with input capability Example if ioctl fp IOCTL_AUDIO_SET_INPUT_BUFFER_SIZE char 1024 printf Couldn t set input buffer size n 11 3 4 IOCTL_AUDIO_GET_OUTPUT_BUFFER_FREE Get how many 16 bit words there are free in the...

Page 50: ... output capability Example oBufSize ioctl fp IOCTL_AUDIO_GET_OUTPUT_BUFFER_SIZE NULL 11 3 6 IOCTL_AUDIO_GET_OUTPUT_BUFFER_SIZE Set output buffer size in 16 bit words Only for drivers with DSP output capability Example if ioctl fp IOCTL_AUDIO_GET_OUTPUT_BUFFER_SIZE char 1024 printf Couldn t set output buffer size n Rev 3 57 2019 04 10 Page 50 62 ...

Page 51: ... may limit the range it actually accepts for its volume settings E g the analog output driver AUODAC only supports the range between 256 0 0 dB and 511 analog driver power down As another example the S PDIF driver supports the range between 208 24 0 dB and 511 silence If a driver does not support the whole range it will automatically limit itself so you can still call it with the extreme values 51...

Page 52: ...er this value increases at the rate of the sample counter that can be read with IOCTL_AUDIO_GET_SAMPLE_COUNTER Only for drivers with input Example s_int32 overFlow if ioctl fp IOCTL_AUDIO_GET_OVERFLOWS char overFlow printf Couldn t get overflow counter n 11 5 3 IOCTL_AUDIO_GET_UNDERFLOWS Get underflow sample counter for the output buffer If this number changes while an audio output program is runn...

Page 53: ...ts AID_LINE1_1 AID_LINE3_1 AID_LINE2_1 AID_MIC1 AID_DIA1 Right elements AID_LINE1_2 AID_LINE3_2 AID_LINE2_2 AID_MIC2 AID_DIA2 AID_DIA3 AID_LINE1_3 This ioctl is only applicable for the AUODAC driver Optionally AID_DEC6 may also be defined It activates the high quality down by 6 decimator Example s_int32 sampleCounter if ioctl fp IOCTL_AUDIO_SELECT_INPUT char AID_LINE1_1 AID_LINE1_3 printf Couldn t...

Page 54: ...ET_RATE_AND_BITS IOCTL_AUDIO_SET_IRATE and IOCTL_AUDIO_SET_ORATE all can take their pa rameters in a 32 bit integer compatible fractional representation where bits 30 24 of the sample rate parameter represent 1 128 Hz increments as shown in the following table 32 bit fractional sample rate representation Bits Range Description 31 0 Not used set to 0 30 24 0 127 Sample rate fractions in 1 128 Hz 23...

Page 55: ... 2 dB where HH is a hexadecimal number B 206mHHs Example To set volume to 20 dB you need to send 40 0x28 B 206m28s 12 2 Sending Equalizer Controls from VSOS Shell The filters are accessed with UiMessages that have the following format where X is the filter number 0 f and YY is the 16 bit signed value presented as an unsigned 16 bit hexadecimal number B 21XmYYs Example Let s assume we have the foll...

Page 56: ...iners aac m4a mp4 3gpp decaiff AIFF Apple uncompressed PCM format decalac ALAC Apple lossless in MP4 mp4 m4a or CAFF caf container decdsd DSD DSD bitstream files in DSF and DFF container LSb first only decflac FLAC Free Lossless Audio Codec decmp3 MP3 MPEG audio layer 3 decvorb Ogg Vorbis Vorbis audio in Ogg container decwav RIFF WAV Many RIFF WAV subformats decwma WMA Windows Media Audio mp4file ...

Page 57: ...up to 48 kHz 320 kbit s Library decvorb subformats and clock requirements Clock Description 12 MHz Ogg Vorbis up to 16 kHz 73 kbit s 18 MHz Ogg Vorbis up to 32 kHz 151 kbit s 37 MHz Ogg Vorbis up to 48 kHz 346 kbit s 55 MHz Ogg Vorbis up to 96 kHz 362 kbit s Library decwav subformats and clock requirements Clock Description 12 MHz RIFF WAV up to 96 kHz 16 bit 18 MHz RIFF WAV up to 96 kHz 24 bit 31...

Page 58: ...ftware is compatible with potential future versions of the driver which may start supporting the Set Timing feature Loop structure should be set as follows loop startSeconds loop endSeconds loop endSamples 0 loop endSeconds 0xFFFFFFFFU 2 If this feature is available looping is sample accurate If not available loop start and stop points may vary slightly 3 If this feature is available loop supports...

Page 59: ...itrate the encoder will convert that to an approximate quality value and still use Variable BitRate 14 2 ENCMP3 DL3 MP3 Encoder VS1205 only ENCMP3 DL3 offers a high quality encoder for the popular MP3 audio format While not capable of getting quite the same quality as Ogg Vorbis when using similar bit rates the MP3 encoder still offers high fidelity sound at bit rates between 160 192 kbit s and ac...

Page 60: ...Chapter 8 4 Reverb Generator Audio Drivers Added another Reverb Generator Driver and Chapter 8 4 2 Driver FTOREV23 Version 3 55 2018 04 05 Added Chapter 8 4 Reverb Generator Audio Drivers Version 3 52 2018 01 22 Release for VSOS 3 52 no major changes Version 3 42 2017 05 18 Release for VSOS 3 42 Added several new S PDIF drivers to Chapter 7 6 S PDIF Audio Drivers Added Chapter 14 3 ENCFLAC DL3 FLA...

Page 61: ... Changed version numbering to reflect on the VSOS release this document is writ ten for Ctrl A ASCII code 1 changed to Ctrl B ASCII code 2 for invoking UI messages in Chapter 12 Controlling Audio from VSOS Shell with UiMessages Version 1 03 2016 02 15 This is a release for VSOS 3 26 AuInput and AuOutput output updated Chapters 9 1 and 9 2 Added new concept fractional sample rates Chapter 11 6 Adde...

Page 62: ...katu 8 FI 33720 Tampere FINLAND URL http www vlsi fi Phone 358 50 462 3200 Commercial e mail sales vlsi fi For technical support or suggestions regarding this document please participate at http www vsdsp forum com For confidential technical discussions contact support vlsi fi Rev 3 57 2019 04 10 Page 62 62 ...

Reviews: