Introducing DirectX 9.0
DirectX Graphics
DirectInput
DirectPlay
DirectSetup
DirectMusic
DirectSound
DirectShow
DirectX Media Objects
DirectMusic
What's New in DirectMusic
Introduction to DirectMusic
The Power of DirectMusic
Elements of a DirectMusic Application
Loader
Segments and Segment States
Performance
Messages
Performance Channels
Downloadable Sounds
Instruments and Downloading
Audiopaths and Buffers
Audio Scripts
Overview of Audio Data Flow
Introduction to Dynamic Musical Soundtracks
Styles
Chordmaps
Style-based Segments
Templates
How Music Varies During Playback
Music Values and MIDI Notes
Getting Started with DirectMusic
Building DirectMusic Projects
Debugging DirectMusic Projects
First Steps in DirectMusic Programming
Using DirectMusic
Loading Audio Data
Setting the Loader's Search Directory
Scanning a Directory for Objects
Enumerating Objects
Loading an Object from a File
Loading an Object from a Resource or Memory Address
Containers
Getting Object Descriptors
Cache Management
Garbage Collection
Setting Objects
Playing Sounds
Creating the Performance
Using Segments
Creating Segment Objects
Playing Segments
Segment States
Pausing Segments
Control Segments
Self-Controlling Segments
MIDI-Based Segments
WAV-Based Segments
Playing WAV Sounds in Music Time
Changing the Pitch of Waveforms
Using Bands
Downloading and Unloading Bands
Automatically Downloading Bands
Manually Downloading Bands
Patch Collisions
Unloading Bands
Making Band Changes Programmatically
Ensuring Timely Band Changes
Playing a MIDI File with Custom Instruments
Timing
Master Clock
Clock Time and Music Time
Changing the Tempo
Prepare Time
Latency and Bumper Time
Reducing Latency
Segment Timing
Notification and Event Handling
Troubleshooting Playback
Performance Parameters
Setting and Retrieving Track Parameters
Identifying the Track
Disabling and Enabling Track Parameters
Setting and Retrieving Global Parameters
Using Audiopaths
Creating Audiopaths
Default Audiopath
Standard Audiopaths
DMUS_APATH_DYNAMIC_3D
DMUS_APATH_DYNAMIC_MONO
DMUS_APATH_DYNAMIC_STEREO
DMUS_APATH_SHARED_STEREOPLUSREVERB
Playing Sounds on Audiopaths
Retrieving Objects from an Audiopath
Using 3-D Sound in DirectMusic
Using Effects in DirectMusic
Buffer Chains
Using Compositional Elements
Music Files for Composition
Overview of Programming for Composition
Using Styles
Using Motifs
Using Chordmaps
Using Templates
Using Transitions
Track Composition
Using Audio Scripts
Capturing MIDI
Advanced Topics in DirectMusic
DirectMusic Tracks
Standard Track Types
Track Configuration
Using DirectMusic Messages
Channels
Message Creation and Delivery
Application-Created Messages
Performance Message Types
Curves
MIDI Messages
MIDI Channel Messages
MIDI Notes
Program Changes
Bank Selection
DirectMusic Patch Numbers
MIDI System Messages
Using DirectMusic Ports
Default Port
Custom Loading
Using Instrument Collections
Loading and Downloading Collections
Working with Instruments
Low-Level DLS
Creating DLS Instruments Programmatically
DirectMusic Tools
Creating a Tool
Implementing a Tool in the Client Application
Property Sets for DirectMusic Ports
Related Software
DirectMusic Producer
DirectMusic Style Library
DirectMusic Tool Wizard
Audio Effect DMO Wizard
DirectMusic C++ Samples
DirectMusic Sample Framework
CMusicManager Sample Class
CMusicScript Sample Class
C3DMusicSegment Sample Class
CMusicSegment Sample Class
3D Audio Sample
Audio Path Sample
Audio Scripts Sample
AudioFX Sample
Cross Fade Sample
Music Tool Sample
Play Audio Sample
Play Motif Sample
Play Multi Sample
DirectMusic C++ Tutorials
Tutorial 1: Playing Audio Files
Step 1: Initialize
Step 2: Load a File
Step 3: Play the File
Step 4: Close Down
Tutorial 2: Using Audiopath Objects
Step 1: Create the Audiopath
Step 2: Retrieve the Buffer
Step 3: Change Buffer Parameters
DirectMusic C/C++ Reference
DirectMusic Interfaces
IDirectMusic8 Interface
IDirectMusic8::Activate
IDirectMusic8::CreateMusicBuffer
IDirectMusic8::CreatePort
IDirectMusic8::EnumMasterClock
IDirectMusic8::EnumPort
IDirectMusic8::GetDefaultPort
IDirectMusic8::GetMasterClock
IDirectMusic8::SetDirectSound
IDirectMusic8::SetExternalMasterClock
IDirectMusic8::SetMasterClock
IDirectMusicAudioPath8 Interface
IDirectMusicAudioPath8::Activate
IDirectMusicAudioPath8::ConvertPChannel
IDirectMusicAudioPath8::GetObjectInPath
IDirectMusicAudioPath8::SetVolume
IDirectMusicBand8 Interface
IDirectMusicBand8::CreateSegment
IDirectMusicBand8::Download
IDirectMusicBand8::Unload
IDirectMusicBuffer8 Interface
IDirectMusicBuffer8::Flush
IDirectMusicBuffer8::GetBufferFormat
IDirectMusicBuffer8::GetMaxBytes
IDirectMusicBuffer8::GetNextEvent
IDirectMusicBuffer8::GetRawBufferPtr
IDirectMusicBuffer8::GetStartTime
IDirectMusicBuffer8::GetUsedBytes
IDirectMusicBuffer8::PackStructured
IDirectMusicBuffer8::PackUnstructured
IDirectMusicBuffer8::ResetReadPtr
IDirectMusicBuffer8::SetStartTime
IDirectMusicBuffer8::SetUsedBytes
IDirectMusicBuffer8::TotalTime
IDirectMusicChordMap8 Interface
IDirectMusicChordMap8::GetScale
IDirectMusicCollection8 Interface
IDirectMusicCollection8::EnumInstrument
IDirectMusicCollection8::GetInstrument
IDirectMusicComposer8 Interface
IDirectMusicComposer8::AutoTransition
IDirectMusicComposer8::ChangeChordMap
IDirectMusicComposer8::ComposeSegmentFromShape
IDirectMusicComposer8::ComposeSegmentFromTemplate
IDirectMusicComposer8::ComposeTemplateFromShape
IDirectMusicComposer8::ComposeTransition
IDirectMusicContainer8 Interface
IDirectMusicContainer8::EnumObject
IDirectMusicDownload8 Interface
IDirectMusicDownload8::GetBuffer
IDirectMusicDownloadedInstrument8 Interface
IDirectMusicGetLoader8 Interface
IDirectMusicGetLoader8::GetLoader
IDirectMusicGraph8 Interface
IDirectMusicGraph8::GetTool
IDirectMusicGraph8::InsertTool
IDirectMusicGraph8::RemoveTool
IDirectMusicGraph8::StampPMsg
IDirectMusicInstrument8 Interface
IDirectMusicInstrument8::GetPatch
IDirectMusicInstrument8::SetPatch
IDirectMusicLoader8 Interface
IDirectMusicLoader8::CacheObject
IDirectMusicLoader8::ClearCache
IDirectMusicLoader8::CollectGarbage
IDirectMusicLoader8::EnableCache
IDirectMusicLoader8::EnumObject
IDirectMusicLoader8::GetObject
IDirectMusicLoader8::LoadObjectFromFile
IDirectMusicLoader8::ReleaseObject
IDirectMusicLoader8::ReleaseObjectByUnknown
IDirectMusicLoader8::ScanDirectory
IDirectMusicLoader8::SetObject
IDirectMusicLoader8::SetSearchDirectory
IDirectMusicObject8 Interface
IDirectMusicObject8::GetDescriptor
IDirectMusicObject8::ParseDescriptor
IDirectMusicObject8::SetDescriptor
IDirectMusicPatternTrack8 Interface
IDirectMusicPatternTrack8::CreateSegment
IDirectMusicPatternTrack8::SetPatternByName
IDirectMusicPatternTrack8::SetVariation
IDirectMusicPerformance8 Interface
IDirectMusicPerformance8::AddNotificationType
IDirectMusicPerformance8::AddPort
IDirectMusicPerformance8::AdjustTime
IDirectMusicPerformance8::AllocPMsg
IDirectMusicPerformance8::AssignPChannel
IDirectMusicPerformance8::AssignPChannelBlock
IDirectMusicPerformance8::ClonePMsg
IDirectMusicPerformance8::CloseDown
IDirectMusicPerformance8::CreateAudioPath
IDirectMusicPerformance8::CreateStandardAudioPath
IDirectMusicPerformance8::DownloadInstrument
IDirectMusicPerformance8::FreePMsg
IDirectMusicPerformance8::GetBumperLength
IDirectMusicPerformance8::GetDefaultAudioPath
IDirectMusicPerformance8::GetGlobalParam
IDirectMusicPerformance8::GetGraph
IDirectMusicPerformance8::GetLatencyTime
IDirectMusicPerformance8::GetNotificationPMsg
IDirectMusicPerformance8::GetParam
IDirectMusicPerformance8::GetParamEx
IDirectMusicPerformance8::GetPrepareTime
IDirectMusicPerformance8::GetQueueTime
IDirectMusicPerformance8::GetResolvedTime
IDirectMusicPerformance8::GetSegmentState
IDirectMusicPerformance8::GetTime
IDirectMusicPerformance8::Init
IDirectMusicPerformance8::InitAudio
IDirectMusicPerformance8::Invalidate
IDirectMusicPerformance8::IsPlaying
IDirectMusicPerformance8::MIDIToMusic
IDirectMusicPerformance8::MusicToMIDI
IDirectMusicPerformance8::MusicToReferenceTime
IDirectMusicPerformance8::PChannelInfo
IDirectMusicPerformance8::PlaySegment
IDirectMusicPerformance8::PlaySegmentEx
IDirectMusicPerformance8::ReferenceToMusicTime
IDirectMusicPerformance8::RemoveNotificationType
IDirectMusicPerformance8::RemovePort
IDirectMusicPerformance8::RhythmToTime
IDirectMusicPerformance8::SendPMsg
IDirectMusicPerformance8::SetBumperLength
IDirectMusicPerformance8::SetDefaultAudioPath
IDirectMusicPerformance8::SetGlobalParam
IDirectMusicPerformance8::SetGraph
IDirectMusicPerformance8::SetNotificationHandle
IDirectMusicPerformance8::SetParam
IDirectMusicPerformance8::SetPrepareTime
IDirectMusicPerformance8::Stop
IDirectMusicPerformance8::StopEx
IDirectMusicPerformance8::TimeToRhythm
IDirectMusicPort8 Interface
IDirectMusicPort8::Activate
IDirectMusicPort8::Compact
IDirectMusicPort8::DeviceIoControl
IDirectMusicPort8::DownloadInstrument
IDirectMusicPort8::GetCaps
IDirectMusicPort8::GetChannelPriority
IDirectMusicPort8::GetFormat
IDirectMusicPort8::GetLatencyClock
IDirectMusicPort8::GetNumChannelGroups
IDirectMusicPort8::GetRunningStats
IDirectMusicPort8::PlayBuffer
IDirectMusicPort8::Read
IDirectMusicPort8::SetChannelPriority
IDirectMusicPort8::SetDirectSound
IDirectMusicPort8::SetNumChannelGroups
IDirectMusicPort8::SetReadNotificationHandle
IDirectMusicPort8::UnloadInstrument
IDirectMusicPortDownload8 Interface
IDirectMusicPortDownload8::AllocateBuffer
IDirectMusicPortDownload8::Download
IDirectMusicPortDownload8::GetAppend
IDirectMusicPortDownload8::GetBuffer
IDirectMusicPortDownload8::GetDLId
IDirectMusicPortDownload8::Unload
IDirectMusicScript8 Interface
IDirectMusicScript8::CallRoutine
IDirectMusicScript8::EnumRoutine
IDirectMusicScript8::EnumVariable
IDirectMusicScript8::GetVariableNumber
IDirectMusicScript8::GetVariableObject
IDirectMusicScript8::GetVariableVariant
IDirectMusicScript8::Init
IDirectMusicScript8::SetVariableNumber
IDirectMusicScript8::SetVariableObject
IDirectMusicScript8::SetVariableVariant
IDirectMusicSegment8 Interface
IDirectMusicSegment8::AddNotificationType
IDirectMusicSegment8::Clone
IDirectMusicSegment8::Compose
IDirectMusicSegment8::Download
IDirectMusicSegment8::GetAudioPathConfig
IDirectMusicSegment8::GetDefaultResolution
IDirectMusicSegment8::GetGraph
IDirectMusicSegment8::GetLength
IDirectMusicSegment8::GetLoopPoints
IDirectMusicSegment8::GetParam
IDirectMusicSegment8::GetRepeats
IDirectMusicSegment8::GetStartPoint
IDirectMusicSegment8::GetTrack
IDirectMusicSegment8::GetTrackGroup
IDirectMusicSegment8::InitPlay
IDirectMusicSegment8::InsertTrack
IDirectMusicSegment8::RemoveNotificationType
IDirectMusicSegment8::RemoveTrack
IDirectMusicSegment8::SetDefaultResolution
IDirectMusicSegment8::SetGraph
IDirectMusicSegment8::SetLength
IDirectMusicSegment8::SetLoopPoints
IDirectMusicSegment8::SetParam
IDirectMusicSegment8::SetPChannelsUsed
IDirectMusicSegment8::SetRepeats
IDirectMusicSegment8::SetStartPoint
IDirectMusicSegment8::SetTrackConfig
IDirectMusicSegment8::Unload
IDirectMusicSegmentState8 Interface
IDirectMusicSegmentState8::GetObjectInPath
IDirectMusicSegmentState8::GetRepeats
IDirectMusicSegmentState8::GetSeek
IDirectMusicSegmentState8::GetSegment
IDirectMusicSegmentState8::GetStartPoint
IDirectMusicSegmentState8::GetStartTime
IDirectMusicSegmentState8::SetTrackConfig
IDirectMusicStyle8 Interface
IDirectMusicStyle8::EnumBand
IDirectMusicStyle8::EnumChordMap
IDirectMusicStyle8::EnumMotif
IDirectMusicStyle8::EnumPattern
IDirectMusicStyle8::GetBand
IDirectMusicStyle8::GetChordMap
IDirectMusicStyle8::GetDefaultBand
IDirectMusicStyle8::GetDefaultChordMap
IDirectMusicStyle8::GetEmbellishmentLength
IDirectMusicStyle8::GetMotif
IDirectMusicStyle8::GetTempo
IDirectMusicStyle8::GetTimeSignature
IDirectMusicSynth Interface
IDirectMusicSynthSink Interface
IDirectMusicThru8 Interface
IDirectMusicThru8::ThruChannel
IDirectMusicTool8 Interface
IDirectMusicTool8::Clone
IDirectMusicTool8::Flush
IDirectMusicTool8::GetMediaTypeArraySize
IDirectMusicTool8::GetMediaTypes
IDirectMusicTool8::GetMsgDeliveryType
IDirectMusicTool8::Init
IDirectMusicTool8::ProcessPMsg
IDirectMusicTrack8 Interface
IDirectMusicTrack8::AddNotificationType
IDirectMusicTrack8::Clone
IDirectMusicTrack8::Compose
IDirectMusicTrack8::EndPlay
IDirectMusicTrack8::GetParam
IDirectMusicTrack8::GetParamEx
IDirectMusicTrack8::Init
IDirectMusicTrack8::InitPlay
IDirectMusicTrack8::IsParamSupported
IDirectMusicTrack8::Join
IDirectMusicTrack8::Play
IDirectMusicTrack8::PlayEx
IDirectMusicTrack8::RemoveNotificationType
IDirectMusicTrack8::SetParam
IDirectMusicTrack8::SetParamEx
IKsControl Interface
IKsControl::KsProperty
IReferenceClock Interface
IReferenceClock::AdvisePeriodic
IReferenceClock::AdviseTime
IReferenceClock::GetTime
IReferenceClock::Unadvise
DirectMusic Messages
DMUS_CHANNEL_PRIORITY_PMSG
DMUS_CURVE_PMSG
DMUS_LYRIC_PMSG
DMUS_MIDI_PMSG
DMUS_NOTE_PMSG
DMUS_NOTIFICATION_PMSG
DMUS_PATCH_PMSG
DMUS_PMSG
DMUS_SYSEX_PMSG
DMUS_TEMPO_PMSG
DMUS_TIMESIG_PMSG
DMUS_TRANSPOSE_PMSG
DMUS_WAVE_PMSG
DirectMusic Structures
DMUS_AUDIOPARAMS
DMUS_BAND_PARAM
DMUS_BUFFERDESC
DMUS_CHORD_KEY
DMUS_CHORD_PARAM
DMUS_CLOCKINFO8
DMUS_COMMAND_PARAM
DMUS_COMMAND_PARAM_2
DMUS_EVENTHEADER
DMUS_MUTE_PARAM
DMUS_NOTERANGE
DMUS_OBJECTDESC
DMUS_PLAY_MARKER_PARAM
DMUS_PORTCAPS
DMUS_PORTPARAMS8
DMUS_RHYTHM_PARAM
DMUS_SCRIPT_ERRORINFO
DMUS_SUBCHORD
DMUS_SYNTHSTATS8
DMUS_TEMPO_PARAM
DMUS_TIMESIGNATURE
DMUS_VALID_START_PARAM
DMUS_VARIATIONS_PARAM
DMUS_VERSION
DMUS_WAVES_REVERB_PARAMS
KSPROPERTY
DLS Structures
DMUS_ARTICPARAMS
DMUS_ARTICULATION
DMUS_ARTICULATION2
DMUS_COPYRIGHT
DMUS_DOWNLOADINFO
DMUS_EXTENSIONCHUNK
DMUS_INSTRUMENT
DMUS_LFOPARAMS
DMUS_MSCPARAMS
DMUS_OFFSETTABLE
DMUS_PEGPARAMS
DMUS_REGION
DMUS_VEGPARAMS
DMUS_WAVE
DMUS_WAVEARTDL
DMUS_WAVEDATA
DMUS_WAVEDL
DirectMusic File Format
About RIFF
RIFF Notation
Common Chunks
Audiopath Form
Band Form
Chordmap Form
Container Form
DirectSound Buffer Configuration Form
Effects Form
Reference List
Script Form
Segment Form
Style Form
Tool Form
Toolgraph Form
Track Form
Band Track Form
Chord Track List
Chordmap Track List
Command Track Chunk
Lyrics Track List
Marker Track List
Mute Track Chunk
Parameter Control Track List
Pattern Track Form
Script Track List
Segment Trigger Track List
Sequence Track Chunk
Signpost Track Chunk
Style Track List
Sysex Track Chunk
Tempo Track Chunk
Time Signature Track List
Wave Track List
Wave Header Chunk
DirectMusic File Structures
DMUS_IO_BAND_ITEM_HEADER
DMUS_IO_BAND_ITEM_HEADER2
DMUS_IO_BAND_TRACK_HEADER
DMUS_IO_BUFFER_ATTRIBUTES_HEADER
DMUS_IO_CHORD
DMUS_IO_CHORDENTRY
DMUS_IO_CHORDMAP
DMUS_IO_CHORDMAP_SIGNPOST
DMUS_IO_CHORDMAP_SUBCHORD
DMUS_IO_COMMAND
DMUS_IO_CONTAINED_OBJECT_HEADER
DMUS_IO_CONTAINER_HEADER
DMUS_IO_CURVE_ITEM
DMUS_IO_INSTRUMENT
DMUS_IO_LYRICSTRACK_EVENTHEADER
DMUS_IO_MOTIFSETTINGS
DMUS_IO_MUTE
DMUS_IO_NEXTCHORD
DMUS_IO_PARAMCONTROLTRACK_CURVEINFO
DMUS_IO_PARAMCONTROLTRACK_OBJECTHEADER
DMUS_IO_PARAMCONTROLTRACK_PARAMHEADER
DMUS_IO_PARTREF
DMUS_IO_PATTERN
DMUS_IO_PCHANNELTOBUFFER_HEADER
DMUS_IO_PLAYMARKER
DMUS_IO_PORTCONFIG_HEADER
DMUS_IO_REFERENCE
DMUS_IO_SCRIPT_HEADER
DMUS_IO_SCRIPTTRACK_EVENTHEADER
DMUS_IO_SEGMENT_HEADER
DMUS_IO_SEGMENT_ITEM_HEADER
DMUS_IO_SEGMENT_TRACK_HEADER
DMUS_IO_SEQ_ITEM
DMUS_IO_SIGNPOST
DMUS_IO_STYLE
DMUS_IO_STYLE_ANTICIPATION
DMUS_IO_STYLECURVE
DMUS_IO_STYLEMARKER
DMUS_IO_STYLENOTE
DMUS_IO_STYLEPART
DMUS_IO_STYLERESOLUTION
DMUS_IO_SUBCHORD
DMUS_IO_SYSEX_ITEM
DMUS_IO_TEMPO_ITEM
DMUS_IO_TIMESIG
DMUS_IO_TIMESIGNATURE_ITEM
DMUS_IO_TOOL_HEADER
DMUS_IO_TRACK_EXTRAS_HEADER
DMUS_IO_TRACK_HEADER
DMUS_IO_VALID_START
DMUS_IO_VERSION
DMUS_IO_WAVE_HEADER
DMUS_IO_WAVE_ITEM_HEADER
DMUS_IO_WAVE_PART_HEADER
DMUS_IO_WAVE_TRACK_HEADER
DSOUND_IO_3D
DSOUND_IO_DSBUFFERDESC
DSOUND_IO_DSBUSID
DSOUND_IO_DXDMO_DATA
DSOUND_IO_DXDMO_HEADER
Standard Track Parameters
GUID_BandParam
GUID_ChordParam
GUID_Clear_All_Bands
GUID_CommandParam
GUID_CommandParam2
GUID_CommandParamNext
GUID_ConnectToDLSCollection
GUID_Disable_Auto_Download
GUID_DisableTempo
GUID_DisableTimeSig
GUID_Download
GUID_DownloadToAudioPath
GUID_Enable_Auto_Download
GUID_EnableTempo
GUID_EnableTimeSig
GUID_IDirectMusicBand
GUID_IDirectMusicChordMap
GUID_IDirectMusicStyle
GUID_MuteParam
GUID_Play_Marker
GUID_RhythmParam
GUID_SeedVariations
GUID_StandardMIDIFile
GUID_TempoParam
GUID_TimeSignature
GUID_Unload
GUID_UnloadFromAudioPath
GUID_Valid_Start_Time
GUID_Variations
DirectMusic Enumerated Types
DMUS_CHORDKEYF_FLAGS
DMUS_CLOCKTYPE
DMUS_COMMANDT_TYPES
DMUS_COMPOSEF_FLAGS
DMUS_CURVE_FLAGS
DMUS_EMBELLISHT_TYPES
DMUS_NOTEF_FLAGS
DMUS_PATTERNT_TYPES
DMUS_PLAYMODE_FLAGS
DMUS_PMSGF_FLAGS
DMUS_PMSGT_TYPES
DMUS_SEGF_FLAGS
DMUS_SHAPET_TYPES
DMUS_STYLET_TYPES
DMUS_TIME_RESOLVE_FLAGS
DMUS_TRACKF_FLAGS
DMUS_VARIATIONT_TYPES
DirectMusic GUIDs
DirectMusic Interface GUIDs
DirectMusic Component GUIDs
DirectMusic Return Values
DirectMusic Return Values by Number
DirectMusic Return Values by Name