Audio API Graph Modification and Clock Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional audio application programming interfaces (APIs) face limitations in modifying audio processing graphs during processing without affecting performance and in coordinating clock synchronization among different audio rendering devices, applications, and processors.

Innovation Solution

The proposed audio API allows for graph modifying commands to be inserted into asynchronous or deferred command queues, with pending commands executed on the next processing pass, and includes a clock manager to synchronize clocks by defining control groups with master and slave clocks, adjusting slave clock rates as needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If graph modifying commands are executed immediately during audio processing, then the audio processing graph can be modified in real-time, but performance is negatively affected and unwanted side effects occur

Engineering Contradiction:
Improvereal-time graph modification capabilityVSAvoidperformance stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements command queues (asynchronous and deferred) that collect graph modifying commands in advance before execution. This preliminary action allows the system to prepare modifications without executing them immediately during critical audio processing intervals, thus maintaining performance stability while enabling real-time adaptability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent divides command execution into segmented processing passes, with commands organized in queues that are executed at specific intervals. This segmentation separates command collection from command execution, allowing the audio processing graph to maintain stability during processing while still accepting modification commands in real-time.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If different audio rendering devices use different clock rates, then each device can operate independently, but clock synchronization issues arise between devices

Engineering Contradiction:
Improvedevice independenceVSAvoidclock synchronization
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The clock manager implements a feedback mechanism that continuously monitors clock rates across different audio rendering devices and dynamically adjusts slave clock rates to match the master clock. This feedback loop maintains synchronization while allowing devices to initially operate independently with different clock rates.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent makes the clock system dynamic by allowing clock rates to be adjusted in real-time based on synchronization requirements. The clock manager can dynamically change slave clock rates to match the master clock, enabling the system to adapt to varying clock conditions while maintaining synchronization.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If audio samples are consumed at different rates by rendering devices, then each device can process at its own rate, but synchronization problems occur between producer and consumer

Engineering Contradiction:
Improveindependent rate processingVSAvoidsample rate synchronization
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The clock manager uses feedback to monitor the relationship between sample production and consumption rates, adjusting slave clock rates to ensure that audio samples are produced and consumed at synchronized rates, preventing buffer overflows or underruns while allowing independent device operation.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7746803B2Audio application programming interface
Publication Date: 2010.06.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7746803B2 patent drawing
  • US7746803B2 patent drawing
  • US7746803B2 patent drawing

AI summary

An audio application programming interface (API) enables an audio processing graph to be modified during processing. If they are received while the audio graph is playing or paused, graph modifying commands may be inserted into either an asynchronous command queue or a deferred command queue. The audio API may also include a clock manager for synchronizing clocks from a number of different connected audio rendering devices, applications, processors, functions, operations, modules, or other resources. The clock manager may provide an interface that enables a number of control groups to be defined. Each such control group may include a master clock, a slave clock, and a control.