---
title: Music Understanding
framework: musicunderstanding
role: collection
role_heading: Framework
platforms: [iOS 27.0+, iPadOS 27.0+, Mac Catalyst 27.0+, macOS 27.0+, tvOS 27.0+, visionOS 27.0+, watchOS 27.0+]
path: musicunderstanding
---

# Music Understanding

Analyze audio content and extract music information.

## Overview

Overview Use the Music Understanding framework to analyze your audio content and receive information like the rhythm, pace, loudness, key, and instrument activity.

You create a MusicUnderstandingSession, specify which analysis to run, and receive the results. When complete, the framework presents the results in a single aggregate from MusicUnderstandingSession.SessionResult, or as a livestream of partial results. You can provide audio from an AVAsset for file-based analysis of a complete audio track, or an AsyncSequence of AVReadOnlyAudioPCMBuffer for a stream analysis of audio buffers. Some analyses also support incremental delivery through async sequences on the session. Use loudnessResults to receive values intermittently while analysis is in-progress. Call cancel() to stop an in-progress analysis. The framework returns each analysis type as a dedicated result structure, giving you detailed, time-stamped data for the requested analyses:

## Topics

### Essentials

- [Creating visuals with Music Understanding analysis results](musicunderstanding/create-visuals-using-musicunderstanding-analysis-results.md)

### Audio analysis

- [MusicUnderstandingSession](musicunderstanding/musicunderstandingsession.md)

### Content results

- [MusicUnderstandingSession.SessionResult](musicunderstanding/musicunderstandingsession/sessionresult.md)
- [RhythmResult](musicunderstanding/rhythmresult.md)
- [KeyResult](musicunderstanding/keyresult.md)
- [LoudnessResult](musicunderstanding/loudnessresult.md)
- [PaceResult](musicunderstanding/paceresult.md)
- [StructureResult](musicunderstanding/structureresult.md)
- [InstrumentActivityResult](musicunderstanding/instrumentactivityresult.md)

### Support types

- [MusicUnderstandingSession.TimedValue](musicunderstanding/musicunderstandingsession/timedvalue.md)
- [MusicUnderstandingSession.RangedValue](musicunderstanding/musicunderstandingsession/rangedvalue.md)
- [AnalysisType](musicunderstanding/analysistype.md)

### Errors

- [MusicUnderstandingError](musicunderstanding/musicunderstandingerror.md)
