Analog Devices, Inc. · NASDAQ:ADI

Analog Devices — Technical Presentation (December 2008)

35 slides from Analog Devices's technical presentation, December 2008

  1. Slide 1: VisualAudio Advanced Features

    The World Leader in High Performance Signal Processing Solutions VisualAudio Advanced Features Presented by: Paul Beckmann Analog Devices CPSG

  2. Slide 2: About this Module

    About this Module ‹ This module provides advanced training on VisualAudio. Examples and demonstrations will be based on the ADSP- BF533 EZ-KIT. You will learn about: z Advanced tool features such as high and low-level variables, the expression language, and presets. z How to use the external interfa

  3. Slide 3: Module Outline

    Module Outline ‹ VisualAudio Designer advanced features z High and low-level parameters z The expression language z Presets ‹ Using the external interface ‹ Writing custom audio modules ‹ Conclusion 3

  4. Slide 4: VisualAudio Designer Advanced Features

    VisualAudio Designer Advanced Features 4

  5. Slide 5: High and Low-Level Module Variables

    High and Low-Level Module Variables High-level variables appear on a module’s inspector typedef struct { AMF_Module b; Low-level (or render) variables appear within the module’s float ampSmoothing, ampTarget, b0; data structure float amp, state; } AMF_ToneControlBass; 5

  6. Slide 6: Expression Language

    Expression Language The expression language Inspector converts between high-level and low-level parameters High-level variables Expression language examples: Expression 1. Convert from smoothing Language time (msecs) to coefficient 2. Convert from dB to linear units. 3. Convert a balance control Low

  7. Slide 7: Presets

    Presets ‹ Convenient mechanism for managing audio module parameter sets ‹ Step 1 – Tune the system to a desired state z Inspectors z External interface ‹ Step 2 – Capture the preset ‹ Step 3 – Apply the preset from the Tool ‹ Step 4 – Optionally compile the preset with the application. ‹ Presets are

  8. Slide 8: Presets

    Presets Inspectors ‹ Convenient mechanism for managing audio module parameter sets ‹ Step 1 – Tune the system to a desired state z Inspectors z External interface ‹ Step 2 – Capture the preset ‹ Step 3 – Apply the preset from the Tool ‹ Step 4 – Optionally compile the preset with External Interface

  9. Slide 9: Presets

    Presets ‹ Convenient mechanism for managing audio module parameter sets ‹ Step 1 – Tune the system to a desired state z Inspectors z External interface ‹ Step 2 – Capture the preset ‹ Step 3 – Apply the preset from the Tool ‹ Step 4 – Optionally compile the preset with the application. ‹ Presets are

  10. Slide 10: Presets

    Presets ‹ Convenient mechanism for managing audio module parameter sets ‹ Step 1 – Tune the system to a desired state z Inspectors z External interface ‹ Step 2 – Capture the preset ‹ Step 3 – Apply the preset from the Tool ‹ Step 4 – Optionally compile the preset with the application. ‹ Presets are

  11. Slide 11: Presets

    Presets ‹ Convenient mechanism for managing audio module parameter sets ‹ Step 1 – Tune the system to a desired state z Inspectors z External interface ‹ Step 2 – Capture the preset ‹ Step 3 – Apply the preset from the Tool ‹ Step 4 – Optionally compile the preset with the executable. ‹ Presets are

  12. Slide 12: The External Interface

    12 The External Interface co DEVICES

  13. Slide 13: External Interface

    External Interface ‹ Works in both Design Mode and Tuning Mode z Design mode Æ module data structures z Tuning mode Æ module data structures AND sent to the DSP in real-time ‹ Capabilities z Manipulating audio module parameters z Basic control of the system (loading, saving, building, capturing pres

  14. Slide 14: Uses of the External Interface

    Uses of the External Interface ‹ Creating custom audio module design functions ‹ Creating custom GUIs z Control panels z Full or restricted functionality ‹ Leveraging existing design tools and methodologies ‹ Automating system design and tuning ‹ Regression testing of audio modules and systems 14

  15. Slide 15: Expression Language is Included

    Expression Language is Included Other Application External applications can access the high-level and low-level render variables. External Interface Changes to high-level High-level variables invoke the variables expression language. Expression Low-level accesses bypass Language the expression langu

  16. Slide 16: MATLAB Interface Layer

    MATLAB Interface Layer MATLAB scripts ‹ Simplifies usage with MATLAB ‹ Each audio module appears MATLAB Interface Layer as a MATLAB object ‹ Objects can be manipulated as if they were MATLAB structures External Interface Meta- variables Expression Language Render variables in audio module structure

  17. Slide 17: Querying a Single Audio Module

    Querying a Single Audio Module >> S=va_module(‘VolumeFletcherMunson_S1'); ‹ Queries VisualAudio for information regarding this audio module z Variables names z Data types z Sizes ‹ Generates and returns a MATLAB object 17

  18. Slide 18: Comparison with the Inspector

    Comparison with the Inspector S = smoothingTime: [ 100] fmGain: [ 0] lowFreq: [ 30] lowQ: [ 1] One-to-one correspondence between MATLAB structure members and interface variables shown on the inspector 18

  19. Slide 19: Manipulating Module Parameters

    Manipulating Module Parameters ‹ Treat them as if they were standard MATLAB structures: VolumeFletcherMunson_S1.smoothingTime=50; VolumeFletcherMunson_S1.fmGain=-3; VolumeFletcherMunson_S1.lowFreq=40; VolumeFletcherMunson_S1.lowQ=1.1; ‹ Often used to initialize parameters in a repeatable method usin

  20. Slide 20: Accessing Low-Level Render Variables

    Accessing Low-Level Render Variables ‹ The previous example demonstrated how to access the high- level variables shown on the inspector. ‹ To access low-level render variables in Tuning Mode, issue the command: va_module(‘VolumeFletcherMunson_S1’,0) VolumeFletcherMunson_S1 = ampSmoothing: [ 0.002081

  21. Slide 21: Regression Testing Capabilities

    Regression Testing Capabilities External Application Platform operates in “demand render mode” External application generates data. Audio passed block- COM Interface by-block through the tuning interface. External application analyzes data for correctness. MATLAB examples are provided. 21

  22. Slide 22: MATLAB Testing API

    MATLAB Testing API ‹ Place platform into “demand render” mode va_demandrender(‘begin’); ‹ Send and receive individual blocks of data DATA_OUT=va_demandrender(‘process’, DATA_IN) DATA_IN=TickSize x NumberOfInputs DATA_OUT=TickSize x NumberOfOutputs ‹ Repeat for multiple blocks ‹ Exit demand render mo

  23. Slide 23: Tone Control Example

    Tone Control Example ‹ Place all modules into bypass mode except the treble tone control ‹ Generate input data in MATLAB t=((0:2047)/48000).'; DATA_IN=chirp(t, 20, t(end), 24000, 'logarithmic', -90)*ones(1,2); ‹ Process the data va_demandrender(‘begin’); DATA_OUT=va_demandrender(‘process’, DATA_IN);

  24. Slide 24: Tone Control Results

    Tone Control Results 24

  25. Slide 25: Writing Custom Audio Modules

    Writing Custom Audio Modules 25

  26. Slide 26: Standard vs. Custom Modules

    Standard vs. Custom Modules ‹ Standard modules are supplied with VisualAudio ‹ Custom modules are written by the user ‹ Standard and custom modules appear on separate tabs within VisualAudio Designer. This is the only distinction between standard and custom modules – no limitations or cost overhead

  27. Slide 27: Components of an Audio Module

    3 Components of an Audio Module ‹ A header file which contains the module’s run-time interface and a description of the associated data structure ‹ The module’s run-time function (“render function”). This can be: z C code z ASM code z Object or library ‹ An XML file that describes the module in deta

  28. Slide 28: Instance Data Structure

    Instance Data Structure ‹ Each instance of an audio module has an associated C data structure ‹ All data structures start with the same set of fields z These contain elements common to all audio modules z Describe the “base class” of the “object” ‹ This is followed by module specific fields 28

  29. Slide 29: AMF_ScalerSmoothed.h

    AMF_ScalerSmoothed.h ‹ Defines the data structure associated with the audio module #include "AudioProcessing.h" typedef struct { Common Commonheader header AMF_Module b; // parameters fract32 ampSmoothing; fract32 oneOverTickSize; Module Modulespecific specific // state fract32 amp; variables variab

  30. Slide 30: AMF_ScalerSmoothed.c – Render Function

    AMF_ScalerSmoothed.c – Render Function (C example. Actual code is in ASM.) SEG_MOD_FAST_CODE void AMF_ScalerSmoothed_Render(AMF_ScalerSmoothed * instance, AMF_Signal ** buffers, int tickSize) { int i; fract32 amp = instance->amp; fract16 ampTarget = instance->ampTarget; fract32 ampSmoothing = instan

  31. Slide 31: Class Structure Declaration

    Class Structure Declaration ‹ All audio modules of the same type share a single “Class Structure” ‹ Describes the behavior of the module to VisualAudio’s run-time interface z Number of inputs and outputs z Mono input and mono output z Name of render function z Bypass behavior ‹ Typically declared wi

  32. Slide 32: AMF_ScalerSmoothed – Class Structure

    AMF_ScalerSmoothed – Class Structure SEG_MOD_SLOW_CONST const AMF_ModuleClass AMFClassScalerSmoothed = { /** Flags. */ 0, /** Reference to render function. */ (AMF_RenderFunction) AMF_ScalerSmoothed_Render, /* Default bypass */ (void *)0, /* Input descriptor - 1 input, and it is mono. */ 1, 0, /* Ou

  33. Slide 33: Audio Module XML

    Audio Module XML ‹ Describes the audio module to VisualAudio Designer z Module name and palette location z Input and output pins z Compatible processors z Instance data structure z High-level variables and expressions z Memory allocation rules z Other usage rules 33

  34. Slide 34: Conclusion

    Conclusion ‹ VisualAudio’s design features simplify the development of advanced audio features z High and Low-level variables z Expression language z Presets ‹ Open API’s allow VisualAudio’s capabilities to be extended by z Interfacing to external COM compliant applications z Interfacing to MATLAB z

  35. Slide 35: For Additional Information

    For Additional Information ‹ A free download is available at the VisualAudio product page z http://www.analog.com/en/prod/0,2877,VISUALAUDIO,00.html ‹ Additional examples and tutorials can be found at the VisualAudio Developer’s Web site: z www.visualaudiodeveloper.com ‹ Specific technical questions

Analog Devices — Technical Presentation (December 2008) on 6ix