Audio Weaver® Training

 

 

 

AWE Architecture

Start here for an introduction to Audio Weaver Core, Designer and Server, and how they can be used to build powerful DSP Applications.

Episodes:

Episode 1: Audio Weaver and aweLib/aweCore Feature Walkthrough

We start our training series with an explanation of our tools and libraries, and how we architect AudioWeaver to be so flexible and powerful. This video discusses available embedded target hardware with some benchmarks, as well as an overview of how we achieve real-time audio and tuning across a wide spectrum of targets. This series is intended to go along with our training guide, which can be downloaded from here.

Episode 2: Deep Dive into the AWE Architecture

This video goes over how our tool "talks" to targets. We discuss our matlab interface with our boards through various transport protocols.

Episode 3: Deep Dive into the AWE Architecture (cont'd)

This episode talks about how our AWE server converts matlab text commands to binary commands so that it is able to talk to any target. Once you have a communication handler, we can process binary packets on the target and tell the PC(master) that the target(slave) has finished.

Episode 4: Deep Dive into the AWE Architecture (cont'd)

In this episode, we go over some technical specifications such as memory overhead of the library (required for dynamic instantiation) as well as buffer re-use and what all comes with the audio framework. Our typical audio modules take 772 bytes. Our underlying framework takes about 12kbytes on a typical DSP or MCU. We also go into discussion on how to "strip down" some of this memory for downsizing during final product time.


Audio Weaver Designer

These videos go into more detail on the use of AWE Designer. Module Configuration, Layout setup and more will be covered in detail. A good place to start for beginners.

Episodes:

Episode 5: Audio Weaver Designer Basics

This episode goes over some introductory material for our Audio Weaver tool. You can follow along with our .pdf from here. This section starts on page 42 of the document. We also include an exercise to build up a system and start playing audio. That system can also be downloaded and opened from the tool (File-Open). Click here to download.

Episode 6: Designer Basics: Configuring Modules

This episode goes over the general principles of how to configure modules, and how to access inspectors and hidden properties of modules. You can follow along with our .pdf from here. This section starts on page 51 of the document.

Example: Left Delay

 

 


 

Commonly Used Modules

Learn more about some of the commonly used modules that AWE Designer has to offer.

Episodes:

Episode 7: Designer Basics: Commonly Used Modules (1 of 6)

This video continues training by going over a few commonly used modules. You can follow along on page 62 with our training pdf, which can be downloaded from here.

Episode 8: Designer Basics: Commonly Used Modules (2 of 6)

This video continues our list of commonly used modules. You can follow along on page 71 with our training pdf, which can be downloaded from here.

Episode 9: Designer Basics: Commonly Used Modules (3 of 6)

This video continues our list of commonly used modules. You can follow along on page 73 with our training pdf, which can be downloaded from here.

Episode 10: Designer Basics: Commonly Used Modules (4 of 6)

This video continues our list of commonly used modules. You can follow along on page 75 with our training pdf, which can be downloaded from here.

Episode 11: Example SPL Meter

In this video, we are creating an SPL meter inside AudioWeaver.

Episode 12: Designer Basics: Commonly Used Modules (5 of 6)

This episode will discuss how to place your existing algorithms inside a subsystem, which gives potential to design organization as well as a nice way to password protect algorithms. We encourage you to follow along in our pdf guide located here. This section begins on page 83.

Episode 13: Designer Basics: Commonly used modules (6 of 6)

Finishing Subsystems, going through pins and wires, explanation of block processing. We encourage you to follow along in our pdf guide located here. This section begins on page 88.


 

Advanced Modules

Discover the power of AWE Designer with these advanced modules.

Episodes:

Episode 14: AudioWeaver Designer Advanced Modules(1 of 4)

This episode begins our dive into some of our more advanced modules, explaining in detail all of the design choices and niceties within AudioWeaver modules. We begin with rebuffering and carry on into fletcher-munson volume control, mixers, advanced filters, lookup tables and dynamics, and crossovers with an example. We encourage you to follow along in our pdf guide located here. This section begins on page 104.

Episode 15: Audio Weaver Designer Advanced Modules(2 of 4)

This video continues our list of commonly used modules. You can follow along on page 115 with our training pdf, which can be downloaded from here.

Episode 16: Audio Weaver Designer Advanced Modules(3 of 4)

This episode finalizes our noise gate design, and implements param set "wireless" control tuning. We also go into debugging and discussion. You can follow along on page 123 with our training pdf, which can be downloaded from here.

Episode 17: Audio Weaver Designer Advanced Modules(4 of 4)

This video continues our list of advanced modules and features, specifically setting up feedback wires. You can follow along on page 131 with our training pdf, which can be downloaded from here.

 


 

Profiling, Automation and More

Take advantage of all the tools Audio Weaver has to offer. Learn how to profile your layouts, interact with AWE Designer through the Matlab API, and more.

Episodes:

Episode 18: Audio Weaver Designer Multirate Processing

This episode goes into detail of how to work with AudioWeaver's built in multithreading mode for more efficient processing or for using different sampling rates in the same system. We encourage you to follow along in our pdf guide located here. This section begins on page 124.

Episode 19: System Profiling and Tools

This episode goes over the last part of the Advanced slides, which is designer's built in tools and configuration. This includes an in depth look into profiling in realtime. We encourage you to follow along in our pdf guide located here. This section begins on page 139.

Episode 20: Configuring AudioWeaver Workflow and Generating Target Files

This episode discusses different ways to configure the designer, as well as interfacing with sound cards. We also go into detail about how to generate target files(which are all portable to any platform), and then we specify exactly how these files are formatted and what they do. We encourage you to follow along in our pdf guide located here. This section begins on page 153.

Episode 21: AudioWeaver Designer Wrap Up, Voice UI Training Outline

Empty Description

Episode 22: Matlab Scripting for Audio Weaver

In this episode, we discuss how to interface with Audio Weaver Pro Designer using matlab. Essentially, you can use matlab to automate and test systems, debug further into your system, and see a more complete level of messaging to and from AWE server. We encourage you to follow along in our pdf guide located here. This section begins on page 181.

Episode 23: Custom Modules in Audio Weaver

In this episode, we discuss how to create custom modules in matlab, and generate respective c interface code. You are responsible for enabling robustness of your module and for the processing code, but we supply all of the proper linking and document the complete process of making a module. We encourage you to follow along in our pdf guide located here. This section begins on page 267.

Episode 24: Developing Custom Platforms for AWELib and AWECore

In this episode, we discuss how to integrate our libraries and framework into your BSP. We touch on recommended order of development, threading priority, tuning interface concepts, and our realtime audio api. We encourage you to follow along in our pdf guide located here.This section begins on page 282.

Episode 25: Profiling, Deployment, Control code, Multicore, and Framework Overhead.

In this episode, we discuss how to implement our profiler onto your chip, and some nice "completeness" features. For instance, polling your board for available modules, specifying target information, deploying your design files, and linking application controls into audio weaver designs (like a volume button). We also touch on flash memory API and multicore concepts. Finally, we discuss the overhead and optimization of our libraries. We encourage you to follow along in our pdf guide located here. This section begins on page 300.


Voice User Interface

Improve the efficiency and accuracy of your Voice UI application with Audio Weaver.

Episodes:

Epsiode 26: Intro to Voice UI

In this episode, we discuss our findings on microphone details which hold importance in creating rich(robust and well working) user experiences. We encourage you to follow along in our pdf guide located here. This section begins on page 347.

Episode 27: Voice UI Algorithms

In this episode, we discuss our Voice UI Algorithms in a general sense. We introduce all components that we provide: AEC DOA Beamforming Noise Reduction (scnr and interference canceler) Trigger Word Voice Service Integration Playback Processing (EQ, N-band compressor, Bass enhancement, volume management) We encourage you to follow along in our pdf guide located here. This section begins on page 361.

Episode 28: Noise Reduction: SCNR, AIC, AEC

In this episode, we discuss in some detail the performance of our noise reduction algorithms, including realtime demos. We encourage you to follow along in our pdf guide located here. This section begins on page 370.

Episode 29: Nonlinearities vs. AEC, and DOA performance in noise

In this episode, we discuss how speaker nonlinearities affect AEC erle performance, and also how noise affects DOA performance. We encourage you to follow along in our pdf guide located here. This section begins on page 382.

Episode 30: Beamforming specs and figures

In this episode, we discuss our beamformer by detailing some beamforming principles, our beam weights algorithm, and performance plots of our suggested microphone arrays. We encourage you to follow along in our pdf guide located here. This section begins on page 388.

Episode 31: Recommended VUI Design Guidelines

In this episode, we review our recommended design guidelines for a variety of product types. We also review information from previous episodes to show whole-system recommendations. We encourage you to follow along in our pdf guide located here. This section begins on page 407.

Episode 32: VUI System Performance Testing

In this episode, we show testing methodologies we use in order to verify that our algorithms are working properly. We also show some data based on competing solutions. We encourage you to follow along in our pdf guide located here. This section begins on page 414.

Episode 33: Near-Field VUI

In this episode, we show a simpler voice UI system which is effective for low compute, low power needs. This reflects a system for use in hearable/wearable applications. We encourage you to follow along in our pdf guide located here. This section begins on page 440.

Episode 34: WOLA

In this episode, we discuss theory behind our wola filterbanks, and also go over error effects of variable block sizes for the filterbank. Users can use these details to optimize some of the frequency domain processing. We encourage you to follow along in our pdf guide located here. This section begins on page 445.

Episode 35: Example Noise Reduction

In this episode, we build up a basic frequency domain noise reduction design. Included are some debugging steps and commentary. We encourage you to follow along in our pdf guide located here. This section begins on page 454.

Episode 36: Beamformer Module And Testing

In this episode, we discuss and show how to use our beamformer module. We then give a realtime demo of how it sounds using our ST 769 board. As an added bonus, we show some of the beamforming plots used for our design. We encourage you to follow along in our pdf guide located here. This section begins on page 455.

Episode 37: SCNR

In this episode, we attach a Single Channel Noise Reduction block after the beamformer system from last episode, and demonstrate it's effects. We encourage you to follow along in our pdf guide located here. This section begins on page 469.

Episode 38: Interference Canceler Module

In this episode, we build up a basic 2 microphone Interference Canceler design, and demonstrate it's effects. The purpose of this module is to cancel an interfering noise source. We encourage you to follow along in our pdf guide located here. This section begins on page 473.

Episode 39: AEC Module

In this episode, we hook up an echo canceler and listen to the cancellation effect. We also show some tuning details in our implementation. We encourage you to follow along in our pdf guide located here. This section begins on page 479.

Episode 40: Sensory Module

In this episode, we attach a Sensory Trigger word module running in Audio Weaver, and watch as the engine detects triggers realtime. We encourage you to follow along in our pdf guide located here. This section begins on page 488.

Episode 41: QSD (low power mode)

In this episode, we show our low power C library(called Quiescent Sound Detector) which can turn VUI processing on and off, saving cycles and power while maintaining a responsive user experience. We encourage you to follow along in our pdf guide located here. This section begins on page 492.

Episode 42: Closing Statement and Post-Training Questions

This episode wraps up our training, and we answer some of the final questions from our audience. If you have any questions, don't hesitate to visit our forums at dspconcepts.com/forum so we can answer and help serve you better.