Project Name: SpeexEcho-BF561.dpj Project Type: ADSP-BF533 [ ] ADSP-BF537 [ ] ADSP-BF561 [X] Hardware Used: ************************************** ************************************** *** PLEASE READ THE RELEASE NOTE *** *** FOR SPECIFIC HARDWARE AND *** *** SOFTWARE CONFIGURATIONS *** *** SUPPORTED BY THIS APPLICATION *** ************************************** ************************************** ADSP-BF561 EZ-Kit Lite VisualDSP++ Emulator System Services Components Used: DMA Manager [X] Deferred Callback Manager [X] Interrupt Manager [X] Timer Module [X] Power Management Module [X] Flag Module [X] External Bus Interface Unit Module [X] Port Module [X] OVERVIEW ========= This project contains an application which uses the fixed-point Speex port library to to encode and decode speech frames in real time. It allows for pass thru of the stream as well. This application Speex encodes a stream coming into the input jack of the hardware and then decodes it so that it is played out. Button 1 when pressed toggles the application between pass thru and Speex en/decoder being active. Look at LED 3 to determine whether the en/decoder is engaged or it in pass thru mode. When the LED is off the stream is not being touch and is instead in a pass thru mode. WHAT IS SPEEX? (Refer to http: //www.speex.org for more details) Speex is based on CELP and is designed to compress voice at bitrates ranging from 2 to 44 kbps. Some of Speex’s features include: * Narrowband (8 kHz), wideband (16 kHz), and ultra-wideband (32 kHz) compression in the same bitstream. * Intensity stereo encoding. * Packet loss concealment. * Variable bitrate operation (VBR). * Voice Activity Detection (VAD). * Discontinuous Transmission (DTX). * In-progress fixed-point port. A project is created and provided which builds Speex the library. RUNNING THE APPLICATION ======================= Software Setup -------------- All the software was tested using VisualDSP++ 4.5 which includes a project file for a ADSP BF561 processor. Hardware Setup -------------- -- BF561 Ez Kit -- SW2: 1-OFF 2-OFF 3-OFF 4-OFF 5-OFF 6-ON SW3: 1-OFF 2-ON 3-ON 4-OFF SW4: 1-ON 2-ON 3-ON 4-ON 5-ON 6-ON SW5: 1-OFF 2-ON 3-ON 4-ON SW10: 1-OFF 2-OFF 3-OFF 4-OFF 5-OFF 6-OFF SW11: 1-OFF 2-OFF 3-OFF 4-OFF SW12: 1-ON 2-ON 3-ON 4-ON SW13: 1-ON 2-ON Connections ----------- Connect an audio source to the AUDIO IN RCA jacks (the pair closest to AUDIO OUT) and an output device to the AUDIO OUT RCA jacks (the pair closest to AUDIO IN) RCA-style jacks labeled "AUDIO IN" +---------------------------------+ | Audio IN L > O O | (White) | Audio IN R > O O | (Red) +---------------------------------+ RCA-style jacks labeled J7 +---------------------------------------------------+ | O O O < Audio Out L | (White) | O O O < Audio Out R | (Red) +---------------------------------------------------+ Running the Application ----------------------- Having set up the software and hardware, open the project listed above and build (debug or release) the project and then run it as desired. You should see directions and some debug output in the console window before hearing the output. Run the executables by pressing "multiprocessor run" (CTRL-F5) on the tool- bar. The application comes up running not in pass thru mode which is indicated by the LED8 which is solid on. Pressing button SW7 will toggle it to pass thru. LED5 when solid on indicates that the board and the hardware was success- fully initialized. Button SW6 when pressed will halt the execution of the application and terminate the application. LED 6 & 7 will blink indicating action described by the app when it is run. REFERENCES ========== To learn about the Vorbis standard and the API for the Tremor library, refer to http://www.xiph.org/ogg/vorbis/docs.html. SOFTWARE HIERARCHY ================== This application consists of the following files: "AudDriverFuncs.h" "AudDriverFuncs_AD1836.c" "AudioDeviceIF.c" "AudioDeviceIF.h" "AudioStreaming.h" "EZKitHWConfig.h" "SpeexEcho.c" All are found on the folder "Multimedia-1.0\SpeexEcho" inside the Blackfin SDK root folder typically installed at "Program Files\Analog Devices\ Blackfin" Other common files such as includes that are also used by the speex library are found inside the common include folder named "OggSpeex-TremorLowMem" and is found in the Blackfin SDK root "Include" folder. These files include: "speex.h" "speex_bits.h" "speex_callbacks.h" "speex_config_types.h" "speex_stereo.h" "spee_types.h" Libraries to link are found in "Lib" folder of the Blackfin SDK root. These include the following libraries: "libspeex561_fixed_lowmem.dlb" - Used with RELEASE build. "libspeex561_fixed_lowmemd.dlb" - Used with DEBUG build.