Project Name: VorbisPlayer-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 a application which uses the Ogg Vorbis tremor low mem port library to decode Ogg Vorbis contents. The content file is located on an attached PC which is pulled into Blackfin processor memory and then decoded and played from there using the board audio output. This application reads a portions of the file into memory, about 1.5MB of it. It may be modified by changing the defined value of NUM_BYTES_TO_DECODE in "FilterFuncs_OVTLM.h". WHAT IS VORBIS? (Refer to http://www.xiph.org/ogg/vorbis for more details) "Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general- purpose compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel. This places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC." RUNNING THE APPLICATION ======================= Software Setup -------------- All the software was tested using VisualDSP++ 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 speaker to the AUDIO OUT RCA jacks (the pair closest to AUDIO IN) jacks. 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. 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. NOTE: The Tremor library code is based on the lowmem Tremor branch available from xiph.org's SVN server svn.xiph.org Both this app and the vorbis library projects are set up to build with optimization, as defined by the OPT_CACHE, OPT_MEMCPY, OPT_MAX and OPT_FRACTIONAL macros. Read comments in decode.c (source code for the vorbis libarary) to gain insight into the application. It contains two important user-configurable macros: OGG_FILENAME - Defines a 48 kHz, stereo Ogg Vorbis file. You can make a file with Oggdrop -- http://www.vorbis.com/download_win.psp. NUM_BYTES_TO_DECODE - The file needs to be accessed via the emulator or USB debugger which will take some time for a large number of bytes, so this limits the amount of data to send over the emulator 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" "AudioFilterFuncs.h" "AudioDeviceIF.c" "AudioDeviceIF.h" "AudioFilterIF.c" "AudioFilterIF.h" "AudioStreaming.h" "EZKitHWConfig.h" "FilterFuncs_OVTLM.c" "FilterFuncs_OVTLM.h" "VorbisPlayer.c" All are found in the folder "Multimedia-1.0\VorbisPlayer" 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 "OggVorbis-TremorLowMem" and is found in the Blackfin SDK root "Include" folder. These files include: "config_types.h" "ivorbiscodec.h" "ivorbisfile.h" "ogg.h" "os_types.h" Finally, the audio content clips are found in the "AudioClips" folder inside the project root folder "Multimedia-1.0\VorbisPlayer". Libraries to link are found in "Lib" folder of the Blackfin SDK root. These include the following libraries: "libvorbis561_lowmem.dlb" - Used with RELEASE build. "libvorbis561_lowmemd.dlb" - Used with DEBUG build.