DirectMusic Producer

DirectMusic Producer

This documentation provides information about Microsoft® DirectMusic® Producer. Before using this documentation, please read the following material:

  • Legal Information.

    Describes the legal limitations and liabilities for using content created with DirectMusic Producer and other software applications.

If you are unfamiliar using documentation in a Help file such this, you may need to read the following:

  • Tips for Using this Documentation

    Describes how to use the table of contents at the left, including the Contents, Index, Search, and Favorites tabs.

To begin using this documentation, click the following link:

  • Documentation Roadmap

    Provides a summary of the DirectMusic Producer documentation, and identifies which portions of the documentation may be of greatest interest to different types of users. This includes an introduction to DirectMusic Producer for new users, and new information for experienced DirectMusic Producer users.

Information on further resources available on the Web is found in the following topic:

  • Other Resources
Built on Wednesday, October 04, 2000


Legal Information

Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, people and events depicted herein are fictitious and no association with any real company, organization, product, person or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

ActiveX, Direct3D, DirectDraw, DirectInput, DirectMusic, DirectPlay, DirectShow, DirectSound, DirectX, Microsoft, Microsoft Press, MS-DOS, MSN, Natural, NetShow, Visual C++, WebTV, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

GM/GS® Sound Set © Copyright 1996 Roland Corporation U.S.

Roland is a registered trademark of the Roland Corporation.

Note The GM.dls collection supplied with DirectMusic uses the GM/GS® Sound Set, which is trademarked by the Roland Corporation and is the legal property of the Roland Corporation. The GM/GS Sound Set must not be modified and may only be redistributed in its entirety, without alteration. The component sounds and waveforms in the Roland GM.dls collection must not be used as source material to create other DLS sounds or collections.

Some components supplied with DirectMusic Producer can be modified and used as source material for creating your own components. However, some components have specific copyright restrictions and must not be modified or used as source material for creating your own components. This is true of any DirectMusic Producer and interactive music components that you download from the Microsoft Network (MSN) or other commercial Web sites.

You must conform to the legal restrictions for any component you use and read any copyright information contained in the Info tab of the individual components you use.


Tips for Using this Documentation

The Contents tab in the project tree displays a table of contents for DirectMusic Producer documentation. Select any topic to display its contents. Most topics include subtopics that can be displayed by clicking the plus (+) next to the topic heading in the table of contents.

The Index tab displays an alphabetical list of topics and keywords.

Use the Search tab to find topics and subtopics containing a specific word or phrase.

Use the Favorites tab to store and retrieve topics and subtopics that you frequently use. You can right-click the Favorites list to display a shortcut menu, and choose Add to add the currently displayed topic to the list.


Documentation Roadmap

The following is a summary of the topics included in this documentation. Each topic description includes a brief description of the contents and identifies which portions of the documentation may be of greatest interest to new users of DirectMusic Producer, or experienced users familiar with a previous version of DirectMusic Producer.

The DirectMusic Producer documentation contains the following topics and subtopics:

  • What's New for DirectX 8

    Briefly describes changes to DirectMusic Producer for the DirectX 8.0 release.

    Especially of interest to experienced users of DirectMusic Producer.

  • Introduction

    Provides information for new users of DirectMusic Producer, including what you can do with this product, a comparison of DirectMusic Producer to other products, a brief description of the DirectMusic Producer environment shown on your screen, and how to get started with a simple project.

    Especially of interest to new users of DirectMusic Producer.

  • Tutorial

    Step-by-step guide to loading a MIDI file into DirectMusic Producer and playing it. Also provides instructions for viewing numerous demo files that show the use of multiple segments, styles, waves, scripts, DLS, and much more.

    Especially of interest to new users of DirectMusic Producer.

  • General Use

    Describes the use of menus, toolbars, properties windows, the project tree, and the editing widow. Also explains the different component types you can create, how to manage your files, how to customize the DirectMusic Producer workspace, and how to use variability in your files.

    Especially of interest to new users of DirectMusic Producer.

  • Playback and Recording

    Describes playback setup, including playback using MIDI devices and downloadable sounds (DLS). Provides links to information about recording from MIDI devices and recording wave files. Also provides important information about designing and playing transitions from one component to another.

    Information about the audio path editor is especially of interest to experienced users of DirectMusic Producer.

  • Creating Content

    Describes in detail how to create segments, bands, styles, DLS collections, chordmaps, audiopaths, toolgraphs, and scripts, and combine them in a project.

    Especially of interest to new users of DirectMusic Producer.

  • Using Files in the Developer Environment

    Explains how to deliver your DirectMusic Producer files to a software developer for use in a Web page, game, or multimedia application.

    Especially of interest to new users of DirectMusic Producer.

  • Advanced Use

    Explains some advanced techniques for creating DirectMusic Producer components, including using containers.

    Especially of interest to experienced users of DirectMusic Producer.

  • Tips

    Provides information about keyboard shortcuts, a comparison of pitch names to MIDI numbers, using drag-and-drop features, and useful tips from other users of DirectMusic Producer.

    Of interest to all users of DirectMusic Producer.


Other Resources

A list of frequently asked questions (FAQ) for Microsoft® DirectMusic® and DirectMusic Producer is provided on the Web at:

http://msdn.microsoft.com/library/backgrnd/html/dmprod_faq.htm

An alternative site is also provided at:

http://msdn.microsoft.com/directx/

At this site, select:

DirectX SDK Documentation

or

DirectX technical articles/Microsoft DirectX Developer FAQ

Then choose DirectMusic for a short FAQ list, or choose DirectMusic FAQ at the bottom of the Web page for a longer FAQ list.


What's New for DirectX 8

This section of the documentation briefly describes changes to Microsoft DirectMusic Producer for the DirectX 8.0 release. Links are provided below to any additional information that is available about a new feature.

DirectX 8.0 includes major enhancements to both DirectMusic Producer and the DirectMusic system components. The DirectX 8.0 version of DirectMusic Producer provides authoring capabilities for all new DirectMusic features. It also includes some enhancements that do not affect the use of the DirectMusic components, but allow for a more flexible and comprehensive authoring environment within DirectMusic Producer.

DirectX 8.0 also includes the very significant integration of DirectMusic functionality into the Microsoft DirectSound architecture. This makes all files that you create in DirectMusic Producer available for use by software developers who are using DirectMusic or DirectSound to enhance Web sites, computer games, and other multimedia applications.

The DirectX 8.0 release of DirectMusic Producer provides authoring support for the following new features:

  • Audiopaths and Audiopath Designer.

    An Audiopath is a performance configuration of settings for playback port usage and the use of filters and audio effects such as reverb and chorus, arranged so that each PChannel has a specific set of devices and effects for playback. An Audiopath List in the Transport Options Toolbar provides a choice of several standard audiopaths, or you can create your own custom audiopath files using Audiopath Designer. Audiopath files can contain settings for any number of PChannels, and any combination of playback ports and audio effects you want to use. You can create unique playback settings for each PChannel, or group multiple PChannels together so they share the same settings. You can choose a default audiopath that affects all PChannels, and you can embed audiopath files in other components so they always play with the specific playback settings appropriate for that component.

  • New segment track types
    • Wave track

      Enables one shot or looping waves with an interface that provides streamlined access to placement of a wave in the segment using clock time, even when the segment timeline uses music time.

    • Script track

      Lets users reference scripts, that in turn may reference DirectMusic tools, at specific points in the timeline.

    • Pattern track

      Essentially a sequence track that takes advantage of style note functionality and variations.

    • Segment Trigger track

      Lets users cue primary and secondary segments as well as motifs along the timeline.

    • Lyrics Notification track

      The Lyric track, which already exists in DirectMusic Producer files, has been enhanced to be an actual DirectMusic track type, allowing the user to use text cues for notifications.

    • Parameter Control track

      Enables real-time manipulation of parameters that are not otherwise available as standard MIDI control changes. Effect settings, EQ, master volume, and tool parameters can be manipulated.

    • Marker track

      Used for defining switch points within the segment where transitions to or from another segment can take place.

Note The Melody Formulation track is not implemented in the DirectX 8.0 release of DirectMusic Producer.

  • Templates Phased Out

    Templates are no longer created in Producer. Instead, you can create a segment that contains Signpost and Chordmap tracks to create variable chord progressions. This type of segment functions exactly as a template previously functioned. It responds to a compose command triggered each time the segment plays, when the segment loops, or by a compose command included in a software application using the segment. See Variable Chord Progressions.

  • Other segment enhancements
    • Segments now use groove ranges as opposed to groove levels. This enhances the control you have over a segment when it uses a style.
    • New "Bypass Activity" level in segments when creating chord progressions from a chordmap. This results in a chord progression that is selected at random from all chord paths, regardless of the number of chords it contains. See Audition Settings Tab.
  • Expanded Style functionality and editing
    • User-defined embellishments
    • Embellishment destination level
    • Enhanced variation performance using Variation Switch Points
  • Complete editing of DLS2 files
    • Layering of waves (with velocity mapping)
    • Low pass filter
    • Six segment envelopes and conditional chunks.
    • Other new features for DLS2. See DLS Designer.
  • Script Designer

    Provides composers and sound designers much greater control, and ability to craft audio that integrates with application trigger events using a simple scripting language. See Script Designer.

  • Toolgraph Designer

    Lets you apply several simple audio effects, such as echo and delay, to a segment using only the logical abilities of your computer, without the use of a synthesizer or additional files to create the effects. See Toolgraph Designer.

  • Containers

    Let you package up all of the files used for a given purpose into a single parent file, so that you can deliver a group of files to a software or Web page developer. Containers can exist on their own in the project tree, or they can be included as part of a segment or a script so that files that are referred to by the segment or script are available when needed by a developer. See Containers.

  • Flags

    Special options you can turn on or off to control how a component plays, behaves, and interacts with other components. See Properties Window Flags Tab.


Integration with DirectSound

Microsoft DirectMusic Producer now includes numerous features provided by the Microsoft DirectSound components of the Microsoft Windows operating system. These are used for mixing sound output and processing audio effects in real time. You can use the new Audiopath Designer in DirectMusic Producer to plug DirectSound audio effects into the playback of your files, and to edit the DirectSound buffers.

The tighter integration of DirectMusic and DirectSound allows developers to process all music in the same way they process sound effects with DirectSound (for example, 3D spatialization and effects). Conversely, sound effects can be controlled in the same manner as music, including scheduling through the performance, applying DLS articulation, and triggering playback in segments. This integration is primarily accomplished through a mechanism to plug into 3D spatialization and DirectShow plug-ins, as well as the development of a new wave playback track type. See Audiopath Designer, and also see information provided under Microsoft DirectX Audio in the DirectX SDK help file.


Introduction

This section of the documentation provides information for new users of Microsoft® DirectMusic® Producer. Information is organized into the following topics:

  • About DirectMusic Producer

    Provides an introduction to what you can do with DirectMusic Producer, gives a short overview of its features and power, and how it works, and compares DirectMusic Producer to older methods of composing music.

  • Getting Started

    Lets you jump directly into using the program.


About DirectMusic Producer

Microsoft® DirectMusic® Producer is an authoring tool used to create music and audio content for multimedia applications, computer games, and Web sites. It lets you combine any number of complex audio files, including MIDI files, wave files, and variable/interactive music files, and it provides highly flexible control of the timing of all files used.

The following lists describe the highlights of the features and power of DirectMusic Producer, and how it works:

Features

  • A single timeline controls all playback, no matter how many files you combine.
  • Precise millisecond timing is applied to play your files in any order or combination.
  • Changes in volume, tempo, instrumentation, repeats, and much more, are applied to any or all files by inserting a command in the timeline.
  • DLS provides uniform, high-quality instrument sounds based on digitally sampled waves.
  • Variable music files virtually eliminate repetition, and are small so delays in playback are eliminated. This is especially useful in computer applications that play music for long periods.
  • Interactive music files change as much or as little as you like in response to the actions of a computer user.

Power

  • DLS II standard provides immense flexibility for instrument sounds, including multiple layers of waves for each note in an instrument.
  • Unlimited number of files can play at the same time.
  • Unlimited channels and voices.
  • Unlimited number of playback devices.
  • Complete control over shaping of notes and sound using controller curves for volume, pitch bend, pan, modulation, and more.
  • Audio sound effects are provided, such as reverb, chorus, and flanger, and third parties can write plug-in effects.
  • Playback sends data to the DirectSound buffers for complete 3D control and use of high-quality audio effects.

How It Works

  • You can create or import fixed musical/audio content, such as MIDI or wave files.
  • You can create variable music content for run-time variation and on-the-fly composition. Files can combine and recombine melodic, rhythmic chord information, and more, creating new music performances each time a piece repeats.
  • You can combine these freely in a single file, or link multiple files together to play at the same time.
  • You can make any musical/audio content interactive so that changes in melody, chords, instrumentation, tempo, and much more, can occur in response to actions of the user.
  • Music notes in variable music files are not fixed tones, but musical values that can take different MIDI pitches when applied to different situations, such as when different chords are used.
  • Variable content can be broken up into short phrases that mix to create innumerable combinations.
  • Music notes are ultimately sent as MIDI signals to the Microsoft® Synthesizer, or hardware playback if desired.


Organizing a Project

When you compose with Microsoft® DirectMusic® Producer, you create and edit separate music components that are combined to create a piece of music. Files that you create are organized and stored in a project. A project can contain as many files as are necessary to provide the information for musical content, chords, instrumentation, sound effects, and anything else that contributes to the performance.

Files you can insert in a project can include:

  • Bands
  • DLS collections
  • MIDI files
  • Waves
  • Styles (variable music files)
  • and much more.

Following is a quick overview of basic steps you can use to create a performance:

• Step 1 Create a Segment

A segment is the basic file type that contains and controls all content. A segment has a timeline that can display clock time in seconds, or music time in measures and beats.

A segment has 18 different track types; all other files go into the tracks on a particular measure, beat, grid division and tick (768 ticks in a quarter note).

• Step 2 Create or Import Content

Import a MIDI file into a segment, or record new music into the segment, and then edit as desired.

Import a band of instrument settings with the MIDI file, or create a new band in the segment. Edit as desired.

Import wave files. Edit as desired, and insert them into a segment for playback or use them in a DLS instrument.

Create DLS instruments using imported waves, and design DSL collections containing multiple instruments.

Record notes via MIDI or use mouse entry.

Enter and edit notes using piano roll or hybrid view.

• Step 3 Create Variable Content

Make alterations to wave files, and save the changes as variations in the Wave track.

Make alterations to any notes in a MIDI file, and save the changes as variations in the Pattern track.

Create more patterns using short phrases (2-4 measures) in each instrument.

Place many patterns of variable notes in a style, using each pattern for a different purpose, such as high-energy, low-energy, ending, intro, and so on.

Create 32 variations in each instrument part. Patterns are selected for their intensity or purpose, and variations within the patterns are combined at random, or you can set levels of control.

Notes in a pattern conform to a chord that it encounters in a segment.

• Step 4 Create Secondary Segments

Create a master segment that controls the playback of other segments.

Transition between segments in multiple ways, such as smoothly, abruptly, with modulation, and so on.

• Step 5 Create Variable Segments

Chordmaps can supply variable chord progressions, so harmonic content of a piece is variable as well.

You can supply "groove" changes for where intensity is high or low (100 levels), and embellishments for intros, endings, and fills.

Developer can plug in any style and chordmap.

• Other things to do

Capture a performance of MIDI files and variable music as a wave file.

Pack all files into a Container to deliver to a software developer.

Create a script, and insert it into a segment for timing.

String numerous segments together a script.

...and much more.

The following topics provide additional information about DirectMusic, DirectMusic Producer, and how they work together:

  • What Is DirectMusic
  • What you can do with DirectMusic Producer


What Is DirectMusic

Microsoft® DirectMusic® is a part of the Microsoft® Windows operating system that is installed with the Microsoft® DirectX® components. You can install DirectMusic components in the System folder of a computer to add special functionality to a computer's sound output. In combination, the DirectMusic components provide a computer running Windows with the enhanced potential for playing music accompaniment and sound effects with a variety of applications. These include:

  • Web sites
  • Computer games
  • CD-ROM multimedia applications
  • Audio examples in word documents, spreadsheets, or other files created in a Windows-compatible application
  • Any live multimedia presentation or multimedia experience

DirectMusic and DirectMusic Producer are two separate entities that you can use together to create powerful, flexible music to output on a computer.

DirectMusic Producer is the authoring tool you use to create music files, and DirectMusic is the engine that combines and plays the files. As the author of music content, you can use the DirectMusic Producer software on your computer to create, control, and edit music content for use with Windows 95, Windows 98, and Windows 2000. The files can then be played on any device that supports the DirectX system components, including handheld devices, game consoles, and other Windows CE devices.

DirectMusic provides quick, flexible access to a computer's sound capabilities. As the author of music content, you do not work directly with DirectMusic components in the operating system. Instead, you use DirectMusic Producer to create music files that play through and are processed by DirectMusic.

When you work with DirectMusic Producer, you have significant control over the music output using any combination of music files and settings. This can range from the simple playback of an existing MIDI file using a tempo you choose, to the combination of multiple sound effects, MIDI files, and files with built-in variability. You can use any setting to combine elements and to set when to stop, start, and repeat.

After creating files in DirectMusic Producer, you can deliver them to a software or Web-site developer. The developer can use the features in DirectMusic to process and control the music files you create. This includes the ability to link the timing and manipulation of music output to the actions of the user, including clicking or moving the mouse, using the keyboard, and touching the screen.

Most importantly, DirectMusic provides authors and software designers with downloadable sounds (DLS). Downloadable sounds are sampled instrument sounds or sounds from any source, that can be stored in every computer, ensuring consistent sound quality on every system. This removes the limitation of a fixed palette of instrument sounds stored in a computer's hardware.

For more information about the use of DirectMusic Producer files by software developers to enhance other software products, see Using Files in the Developer Environment.


What You Can Do with DirectMusic Producer

With Microsoft® DirectMusic® Producer, you create files that can be played and processed by DirectMusic. Specifically, you create the music content that a user interacts with after the music is placed in an application or on a Web page.

After you create music files in DirectMusic Producer, you pass those files to a software developer. The developer writes code that uses your files to generate a performance using the DirectMusic components in the Microsoft® Windows operating system. Ultimately, the developer is responsible for making your music come alive as part of an application or Web page.

However, as the author of the music content, you can use DirectMusic Producer in a number of ways ranging from quickly setting up the playback of an existing MIDI file to creating a new music piece. You can also use DirectMusic Producer to combine any number of MIDI files and sampled sound effects. This creates a music performance of MIDI data that follows your settings for timing, length, start and stop times, instrument use, and other parameters.

Variability

DirectMusic Producer gives you many options for incorporating variability into your pieces. As a piece plays, there are multiple possible paths it can follow, including different chord choices, alternate melodies, changes in rhythm, and increased or decreased intensity.

Interactivity

You can use DirectMusic Producer to design interactive music pieces that are linked to the changes on the computer screen, timing built into an application, or to an action of the computer user. You can add interactivity to all DirectMusic Producer files you create, whether you build them using an imported MIDI sequence or create them as new files. To the extent that you design a piece with built-in variability, you increase its ability to move instantly and seamlessly to a different set of chords, melodies, intensity levels, or other options.

For example, the appearance of a villain in a CD-ROM game might be accompanied by a particular music theme; the theme could vary depending on the circumstance, such as a game character being in peril. Each time the player passes through a doorway, a special theme could play over the background music. As another example, a multimedia CD-ROM about international travel could have a different style of music accompany each country or city, with smooth transitions from one style to another as the user explores. In addition, each mouse click could have a special sound effect or motif dedicated to it. On a Web site, music could accompany each page and make a smooth transition from one style of music to another as a user browses through the site.

You can use DirectMusic Producer to create your own interactive music files with built-in variability, or use a predesigned interactive music file included with DirectMusic Producer.


DirectMusic Producer vs. Older Methods

In the past, a common way to create interactive music was to provide multiple music clips, usually MIDI or wave files, to cover every combination of paths that a user might follow in an application or Web page. Every time the user initiated an action or a change occurred on the screen, a new music clip loaded into the computer's memory and played. This method had many drawbacks: large files, heavy CPU memory requirements, repetitive use of the same music, slow reaction times, and long waits while music clips loaded.

Traditional sequencing tools produce music that is linear in nature: they play music from beginning to end in a defined sequence of events. You can stop or restart the sequence of events, but the order in which they occur, the chords supporting the music, and the combinations of the instrument parts remain the same for each performance of the piece.

Microsoft® DirectMusic® Producer uses a new paradigm for creating variable and interactive music. This consists of building a knowledge base of music information that you can combine and recombine at run time to create an almost infinite variety of music performances. The files you create with DirectMusic Producer do not have a limit to their length, nor are they necessarily constructed using a fixed progression of chords or a fixed key. The performance of a piece created with DirectMusic Producer can be different every time it occurs, based on the parameters that you specify.

You can use DirectMusic Producer as a tool for composing linear music files, just like other MIDI file editors. DirectMusic Producer also provides immediate access to DLS instruments for use with an existing MIDI file. For more information, see Importing MIDI Files. However, because the music you create in DirectMusic Producer has the potential for variability and interactivity, there are fundamental differences between composing with DirectMusic Producer and composing with other tools.


DirectMusic Producer and the Composing Process

Composing music with Microsoft® DirectMusic® Producer, in some respects, is similar to using other computer-based sequencing tools: you can compose melodies, accompaniment, percussion parts, chords, and contrapuntal lines just as for typical playback over the computer's internal sound card or external playback device. However, DirectMusic Producer has increased flexibility and immediate access to DLS instruments for use with an existing MIDI file.

Also, because much of the music you compose in DirectMusic Producer will be used as interactive music, there are fundamental differences between composing with DirectMusic Producer and composing with other tools. Specifically, you design a DirectMusic Producer file to respond to changing situations on the computer, so that the music performance is composed and recomposed at the time of the performance, using different chord structures and playing variations that are never repeated.

As an example, assume you are composing music for a CD-ROM game where the villain is associated with a particular music theme, but you want the theme to vary according to the game circumstances. If you were composing linear music, such as a MIDI file, you might achieve the variation by composing separate versions of the theme, each with a unique harmonic structure. However, to achieve this result in DirectMusic Producer, you only have to compose the theme once and specify chord progressions that are used interchangeably to alter the sound of the theme.

When you compose in DirectMusic Producer, you are building a music knowledge base that developers can use to write the code that generates music in an application or Web page. The knowledge base can be defined as precisely or as loosely as you choose, giving you a wide range of control over what the user hears. The more tightly you define the music components, the greater control you have over the music that is generated in the final application or Web page. For more information, see Variability.


Background

The original concept behind the variability and interactivity in Microsoft® DirectMusic® Producer was introduced in an earlier software application called Microsoft® Interactive Music Architecture. IMA was used internally by Microsoft to create interactive music files for other Microsoft products. DirectMusic and DirectMusic Producer were an outgrowth of IMA, and were designed so that composers and software developers outside of Micosoft could create interactive music files as well.

DirectMusic's variability and interactivity imitates the behavior of live musicians performing in ensembles, including the elements of improvisation and individual interpretation found in most types of folk, rock, and jazz. In these genres, when a given chord or tonal region is encountered, each band member is expected to perform a music phrase that is appropriate to the chord or tonal region; fits the genre, the tempo, and the emotional mood of the piece; and conforms to the instrument's defined role within the band.

DirectMusic Producer imitates the functions of multiple band members in such improvisational genres. It uses sophisticated logic to choose and combine suitable patterns and rhythms that live musicians would typically play.

DirectMusic Producer has also proven effective in creating nonimprovisational music, such as symphonic, chamber, and contemporary concert music, as well as other complex music styles. This is because the files you create with DirectMusic Producer can use any type of chord or tonality and can accurately play complex music. You have complete control over the amount of variability in a piece of music; a piece can be as randomly varied or as predictable and unchanging as you choose.

A well-designed DirectMusic Producer piece can contain hundreds of patterns and rhythms for each instrument. Thus, when DirectMusic performs a piece of music, the possible combinations and variations of patterns are almost infinite. Several example files are included with DirectMusic Producer that illustrate this range and variety of music combinations.


Getting Started

You can begin using Microsoft® DirectMusic® Producer immediately by importing a MIDI file and playing it.

The following topics are provided so you can quickly learn about DirectMusic Producer:

  • DirectMusic Producer Environment

    An introduction to what you see on the screen when you run the program.

  • Tutorial

    Step-by-step instructions for importing a MIDI file, and how the file can be improved and enhanced.

  • Exploring the Demo Files

    Instructions for opening, viewing, and playing a wide variety of demo files that show the many exciting things you can do.


DirectMusic Producer Environment

When you open the Microsoft® DirectMusic® Producer application, it displays the DirectMusic Producer window. In this window you can create projects and access the various style, chordmap, band, segment, or DLS components used to build the project.

The following illustration shows the DirectMusic Producer window with an open segment component titled My Segment. A segment is the most important type of component you create with DirectMusic Producer. It contains multiple tracks, such as the Tempo, Time Signature, Chordmap, Signpost, and Chord tracks, as shown in the illustration. You create a piece of music by inserting files and performance information into the tracks of a segment, so the segment can control the timing with which the files and information are used during playback.

The DirectMusic Producer window contains four major elements:

  • Menus

    With these menus, and the commands that they contain, you can open, view, edit, and save a project or component.

  • Toolbars

    Sets of buttons, lists, tools, and controls you use to edit and play your files.

  • Project Tree

    The project tree displays the multiple music components that make up a project. It also provides quick access to many functions on the File menu and access to the File Management tools.

  • Editing Window

    The editing pane is the region on the screen where you edit individual components. When you open a component, one of five design modules is launched. Each design module contains its own set of editing tools and methods for each DirectMusic Producer component.

    You can click on any of the above links for detailed information about the major elements of the DirectMusic Producer environment, or you can go to the Tutorial for step-by-step instructions for getting started with using the application.

Following are some of the main components that can make up a project:

  • Segment

    The segment is the basic unit of performance that DirectMusic plays. You can see it as a package in which you place multiple music elements, including MIDI files, waves, and other DirectMusic Producer components such as styles, chordmaps, and bands.

  • Style

    A style is a collection of patterns, rhythms, and melodies in a composition. Each style file reproduces the sound and feel of a particular music genre, such as bluegrass, Latin, or funk. It contains hundreds of melodic phrases and rhythmic patterns that follow traditional playing practices used by live musicians in a music genre. A style also contains one or more bands matching the typical instrumentation used in the genre.

    An important aspect of a style is the encoded functionality or music value, in which all notes in a music pattern can be transposed to fit any chord or scale.

  • Band

    A band is a collection of instrument patch and channel settings used to perform a composition. For a file that has specific instruments associated with it, DirectMusic Producer stores the instrument settings as a special band file you can modify, save, and copy for reuse with other files.

  • Downloadable Sounds (DLS)

    Downloadable sounds are the instrument sounds you can design for consistent sound quality on any computer. DirectMusic Producer contains downloadable sounds you can use immediately, or you can create all new sounds.

  • Wave

    A digitally recorded sound file.

  • Chordmap

    A chordmap is a collection of multiple chord progressions you can use to provide chords for a composition. Various chords are organized along paths, with each path leading to different chords. DirectMusic Producer combines the paths in varied combinations to yield different chord progressions.

Many other components types can be used in a project as well. For more information, see Components and Design Modules.

Note The General MIDI DLS Collection (GM.dls) is installed in the Windows/System32/Drivers folder each time you install the DirectMusic system components on your computer. The default setting in DirectMusic Producer uses the GM.dls collection for playback on all performance channels (PChannels).


Tutorial

This step-by-step tutorial introduces the skills you need to use Microsoft® DirectMusic® Producer and also demonstrates how to import an existing MIDI file for immediate use. In addition, it explains the array of options you have for reusing that MIDI data to create far more sophisticated and flexible DirectMusic Producer components, and for designing your own unique, interactive music files to enhance any game, Web page, or multimedia presentation.

Before using this tutorial, it would be very useful to read "About Producer," which explains many key concepts on how DirectMusic Producer and Microsoft® DirectMusic® work. Throughout this tutorial, reference is made to the topics in "About Producer".

After completing this tutorial, you may want to open the Demo8 project, which contains numerous illustrative example files that demonstrate advanced design options, and include explanatory notes within the files. See Exploring the Demo Files.

  • Lesson 1—Getting Started

    You will become acquainted with the DirectMusic Producer environment and test playback output on your computer.

  • Lesson 2—Importing a MIDI File into a Segment

    You will import a simple MIDI file (called DemoMIDI) into a DirectMusic Producer segment and learn about some of the options for playing the file, zooming in and out, and isolating individual parts in the MIDI file.

  • Lesson 3—Changing Segment Tempos, Bands, and Repeats

    You will use the segment to modify the playback of the DemoMIDI file.

  • Lesson 4—Using DLS

    You will learn about the advantage and convenience of using the available downloadable sounds (DLS) in place of MIDI playback hardware.

  • Lesson 5—Importing the DemoMIDI File into a DirectMusic Producer Style

    You will import the DemoMIDI file into a style and learn about the similarities and differences between MIDI data in a style and in a segment.

  • Lesson 6—Exploring DemoMIDI Data as a Predesigned DemoStyle

    You will view a style that has been created beforehand, with the individual phrases of the DemoMIDI file separated out for more variable playback and mixing by DirectMusic Producer.

Lessons 1 through 4 quickly get you started using DirectMusic Producer by showing you the basic tasks of importing a standard MIDI file into a DirectMusic Producer segment and using downloadable sounds (DLS). A DirectMusic Producer segment is the essential file type that gives you complete control over the playback of any music file, including MIDI files, wave files, and other DirectMusic Producer components, such as styles and bands.

Lessons 5 and 6 introduce you to the concept of DirectMusic Producer styles, and compare the sophistication and variability of a style with the predictability of a MIDI file.

After you have finished the tutorial, you can begin using DirectMusic Producer immediately to prepare files for use with DirectMusic. Or, you can read the remainder of the DirectMusic Producer documentation to learn more about DirectMusic Producer and its various components.

Note You are by no means restricted to the use of a MIDI file to create music in DirectMusic Producer. Importing a MIDI file is presented here as a quick way to show you how efficient and flexible DirectMusic Producer is in using MIDI data. After you have learned more about DirectMusic Producer, you will be able to enter MIDI data directly in DirectMusic Producer files using the mouse or by recording from a MIDI keyboard. Also, note that the demo MIDI file used as an example for this tutorial is a simple file with little harmonic or melodic content. MIDI files you use can be as complex as you choose.

While MIDI files can be played repeatedly to create long pieces of music, DirectMusic Producer has a far more powerful ability. It can convert a long, continuous stream of MIDI data into a much more compact style file that is repeatedly played, but with constant variations. The DirectMusic Producer style sounds as if it were a long, continuous stream of ever-changing MIDI data. A MIDI file that would typically take up 200 KB of disk space can be replaced by a DirectMusic Producer style taking up only 25 KB or less.


Tutorial Lesson 1 - Getting Started

DirectMusic Producer

Tutorial Lesson 1—Getting Started

In this lesson you will start the Microsoft® DirectMusic® Producer application and familiarize yourself with the DirectMusic Producer environment.

To start DirectMusic Producer

  1. On the Start menu, click Programs.
  2. Click the DirectMusic submenu.
  3. Click the DirectMusic Producer program icon to start the application. The DirectMusic Producer Window is displayed.

The DirectMusic Producer window contains the following elements:

  • Project Tree

    Displays the music components that make up a project.

  • Standard Toolbar

    Includes File Management tools and Window View controls.

  • Bookmark Controls

    Used to recall the placement of windows at the time the bookmark is set.

  • Menus

    Used to open, view, edit, and save a project or component.

  • Transport Controls (including Tempo box)

    Contain buttons for recording and playback.

  • Output Status Toolbar

    Contains a combined button and meter for each active PChannel. Each button displays the PChannel number, the name assigned to the PChannel, and a graphic line representing the relative volume level of the PChannel during playback.

  • Transport Options Toolbar

    Used to set a metronome, a moving cursor for playback, and all playback devices.

  • Secondary Segment Toolbar

    Used to select additional segments or motifs to play on top of the component in the Transport list.

  • Synthesizer Status Window

    Displays the computer memory used by DirectMusic Producer.

  • Wave and MIDI Export Toolbar

    Used to capture the performance of a DirectMusic Producer file in real time.

  • Editing Window

    The region on the screen where you edit individual components.

  • Timeline

    Shows beats, measures, and elapsed time in seconds.

  • Zoom Buttons

    Used to increase or decrease magnification of the editing pane contents.

  • Status Bar

    Displays tips and information about an item on the screen that the mouse points to.


Tutorial - Opening the Tutorial Project

DirectMusic Producer

Tutorial—Opening the Tutorial Project

DirectMusic Producer comes with a predesigned project file called Tutorial, which contains several example files used for this step-by-step tutorial. In addition, a separate Demo8 project contains numerous illustrative example files that demonstrate advanced design options, and include explanatory notes within the files.

The Tutorial project contains the following example files:

  • DemoMIDI.mid

    A simple 13-measure song using only six instruments, and designed to quickly demonstrate the options DirectMusic Producer brings to MIDI files.

  • DemoStyle.stp

    A file that consists of data imported from the DemoMIDI file. The MIDI data is divided into short, individual patterns that DirectMusic Producer plays with variability.

  • Heartland.sgp

    A segment file that contains pre-inserted chords and commands for playing the Heartland style (also included in the Demo Project).

  • Heartlnd.stp

    A predesigned style file that you can play and explore.

To add the Tutorial Project to the project tree

  1. On the File menu, choose Open Project.
  2. In the Open Project window, locate and then double-click the Tutorial project folder. Its default location is C:\My Documents\DMUSProducer. The file icon for the Tutorial project is displayed.
  3. Double-click the file icon for the Tutorial project to add the Tutorial project to the project tree.
  4. In the project tree, click the plus (+) next to the icon of the Tutorial project. The Tutorial project is opened, displaying its component styles and segments, plus the DemoMIDI.mid file.


Tutorial - Using Segments, Styles, and Bands

DirectMusic Producer

Tutorial—Using Segments, Styles, and Bands

You use DirectMusic Producer to create several types of components, all of which can be combined to form a complete musical piece. (For more information, see What Each Component Contributes to a Composition.) In this tutorial, you will use the three most essential component types: segments, styles, and bands.

Segments

The most important type of component is the segment. A segment is like a container in which you can place multiple musical elements. You can specify the length of the segment (number of measures) and then insert in the segment MIDI files or other DirectMusic Producer components, such as styles and bands. Within the segment, you can then combine and tailor everything according to your needs. For any musical element you place in a segment, you can specify the tempo, start and stop time, number of repeats, and instrument substitution.

The segment is also the primary file type that is used by the DirectMusic components of the Windows operating system. Thus, when you provide musical content intended to play from a software application or Web site through the DirectMusic components, DirectMusic receives the musical data in the form of a segment file.

Styles

In DirectMusic Producer, a style is a collection of patterns, rhythms, and melodic phrases, and is the essential unit of musical content authored in DirectMusic Producer. Each style file is designed to reproduce the sound and feel of a particular musical genre (for example, bluegrass, Latin, or funk). It contains hundreds of melodic phrases and rhythmic patterns that follow the traditional playing practices used by live musicians in a musical genre. Its contents can be recombined to create thousands of variable performances. It also contains one or more bands that match the typical instrumentation used in the genre.

Bands

A DirectMusic Producer band is a collection of instrument patch and channel settings. For any file that has specific instruments associated with it, DirectMusic Producer stores all the instrument settings as a special band file that you can modify, save, and copy for reuse with other files. DirectMusic Producer provides a Band Editor through which you open and modify a band in a graphical environment. In addition to patch and channel assignment, you can use the Band Editor to adjust pan and volume settings, and choose any downloadable sound (DLS) collection as a source for instrument sounds.


Tutorial - Testing Playback Output

DirectMusic Producer

Tutorial—Testing Playback Output

If this is the first time you are running DirectMusic Producer on your computer, you will need to test the playback output. This is done by selecting a segment file in the project tree and playing it.

This tutorial assumes that your computer is set up to use a sound card connected to either headphones or external speakers. A simple Windows-compatible sound card (with or without any MIDI capabilities) is sufficient. In fact, the sound card in your computer can be any type regardless if it has any built-in MIDI sounds of its own. External MIDI devices are optional and required only for recording MIDI input.

Most DirectMusic Producer components (including segments) can be played by clicking the Play from Start button.

While a component is playing, the Play from Start button changes to the Stop Immediate button.

You can click this button to stop playback of all components.

To test playback output

  1. In the project tree, double-click heartland.sgp. The internal name and icon for the segment are displayed in the tree.
  2. In the Transport Controls toolbar, click the Play from Start button to play the entire segment one time through, beginning with the first measure.
  3. Click the Stop Immediate button at any time to halt playback, or let the segment play to its end. Playback stops automatically at the end of the segment.


Tutorial - Default Playback Setup

DirectMusic Producer

Tutorial—Default Playback Setup

The default setup for DirectMusic Producer sends all playback output through the Microsoft Synthesizer. This is a software synthesizer that is provided with the DirectX system components. Microsoft Synthesizer eliminates the need for MIDI hardware other than a simple sound card to provide a connection to speakers or headphones, and is the simplest way for playing sound from DirectMusic Producer.

One advantage in using the Microsoft Synthesizer is that it provides consistent playback on all systems, regardless of the brand or model of the sound card in the computer. Because Microsoft Synthesizer is included in all installations of the DirectX system components, it is generally distributed with multimedia software applications and games. The DirectX system components are also installed with all copies of the Windows 98 and Windows 2000 operating systems. As an author of music files, you can distribute the DirectX components to any other Windows user. This ensures that virtually all Windows users will hear the same instrument sounds.

While you are working with DirectMusic Producer on your own computer, you have several options for the playback of DirectMusic Producer files, including playback through the Microsoft Synthesizer, through the built-in synthesizer in a sound card, and through an external playback device. For information, see Playback Devices. By default, DirectMusic Producer uses the General MIDI patch changes and plays patches according to General MIDI guidelines.

If you are using MIDI hardware equipment that accepts General MIDI patch changes, DirectMusic Producer will have no problem playing music correctly during this tutorial. Fortunately, all Windows-compatible sound cards are General MIDI-compliant. If you do not have a General MIDI device, DirectMusic Producer cannot correctly choose instrument sounds. In this case, it is recommended that all playback use the Microsoft Synthesizer. For information about changing from the default setup for playback, see Transport Options Toolbar.


Tutorial Lesson 1 - What You Have Accomplished

DirectMusic Producer

Tutorial Lesson 1—What You Have Accomplished

  • You became familiar with the DirectMusic Producer window, including the project tree.
  • You learned about the Play from Start and Stop Immediate buttons, the Output Status toolbar, and the All Notes Off button.
  • You learned about the three basic types of DirectMusic Producer files: segments, styles and bands.


Tutorial Lesson 2 - Importing a MIDI File into a Segment

DirectMusic Producer

Tutorial Lesson 2—Importing a MIDI File into a Segment

In this lesson you will learn the simplest way to use Microsoft® DirectMusic® Producer—importing a MIDI file into a DirectMusic Producer segment. A segment is like a container into which you can place multiple musical elements. For more information, see Using Segments, Styles, and Bands.

To learn how DirectMusic Producer works, you will:

  • Import a standard MIDI file into a segment.
  • Play back the segment containing the imported data.
  • Experiment with soloing, muting, starting and stopping.
  • Zoom in and out to different magnification views.
  • Save the segment.

To import the DemoMIDI file

  1. On the File menu, point to Import File into Project, and then click MIDI File as Segment.
  2. Locate and double-click the Tutorial project folder. Its default location is C:\My Documents\DMUSProducer. The contents of the Tutorial project are displayed.
  3. Select the file named DemoMIDI.
  4. Click Open. The MIDI file is inserted in the project tree as a new segment file called DemoMIDI.sgp.

To open the newly created DemoMIDI.sgp segment file

  1. In the project tree, double-click the icon for DemoMIDI.sgp.

    or

    Click the plus (+) next to the icon for DemoMIDI.sgp. The internal name and icon for the DemoMIDI segment are displayed.

    The following Segment Designer window is displayed showing a segment with the newly imported MIDI data.

In the DemoMIDI.sgp, all MIDI note data, including velocity, volume, and continuous curves, are imported from the original file. All settings for tempo and length, plus all the instrument track and patch assignments, have been retained on the appropriate tracks in DirectMusic Producer.

The Segment Designer window contains the following elements:

  • Timeline

    Shows the time signature of the segment, plus the measures and beats in the segment. These correspond to the original measure and beat data of the imported MIDI file.

  • Tempo Track

    Contains one or more tempo marks for the segment. These correspond to the original tempo data in the imported MIDI file.

  • Sequence Track

    Contains all the note data imported into the segment, including the volume, velocity, continuous controller data, and all channel assignments for each MIDI track.

  • Band Track

    Contains one or more sets of instruments, referred to as bands. The instrument patch and channel assignments are imported from the original MIDI file into the segment as a separate group of settings, called Band1. These correspond to the original instrument patch data in the imported MIDI file.

  • Time Signature Track

    Contains one or more time signatures for the segment. These correspond to the original time signature data in the imported MIDI file.

Note This imported MIDI file contains 13 measures of music, and the new segment automatically has the same number of measures. You may have to scroll to view all 13 measures.


Tutorial - Playing the Imported MIDI File

DirectMusic Producer

Tutorial—Playing the Imported MIDI File

If a DirectMusic Producer component is open, you can click its title bar to make certain it is activated. If the title bar is gray, it is not active.

If a DirectMusic Producer component is activated, it can be played by clicking the Play from Start button.

To play the DemoMIDI segment

  1. If necessary, click the title bar of the DemoMIDI segment to make sure it is activated.
  2. In the Transport Controls toolbar, click the Play from Start button to play the entire segment through one time, beginning with the first measure.
  3. Click the Stop Immediate button at any time to halt playback, or let the segment play to the end. Playback stops automatically at the end of the segment.

Output Status Toolbar

When music begins playing, the Output Status toolbar displays a combined output status button and meter for each output channel that is active in the segment.

Each button contains a flashing, yellow output meter that shows the output level for the channel. In the DemoMIDI segment, the arrangement of instrument track and patch assignments is retained on the appropriate tracks in DirectMusic Producer. For more information, see Output Status Toolbar.

Note DirectMusic Producer can import a MIDI file containing up to 16 individual tracks. For simplicity, the DemoMIDI file has been constructed with only 6 tracks.


Tutorial - Muting and Soloing a Channel

DirectMusic Producer

Tutorial—Muting and Soloing a Channel

Playback for any channel in the segment can be turned off or muted. A single channel can also be isolated with all other channels turned off, so only the isolated channel plays.

To mute an instrument

  1. Click the Output Status button of a PChannel to switch off its output. The channel's button turns gray.
  2. Click the Play from Start button to play the entire segment one time through, beginning with the first measure.
  3. Click the Output Status button of the muted PChannel a second time to reactivate output.

To solo an instrument

  1. Double-click the Output Status button of a PChannel to mute all other channels in the segment. All meter buttons, except the one clicked, turn gray and their playback output is switched off.
  2. Click the Play from Start button to play the entire segment one time through, beginning with the first measure.
  3. Double-click the Output Status button of the solo PChannel to reactivate all channels.


Tutorial - Zooming In and Out

DirectMusic Producer

Tutorial—Zooming In and Out

You can use the following two buttons to zoom in or out to various magnification views.

Zooming in shows the contents of the segment in more detail, but it fits fewer measures of the segment into the viewing area. Zooming out shows less detail and fits more measures of the segment into the viewing area. You can zoom in to show one beat of music in an entire window, or zoom out to display several measures at a time.

To zoom in for more detail

  • In the lower-right corner of the segment window, click the plus (+) button.

To zoom out for less detail

  • In the lower-right corner of the segment window, click the minus ( – ) button.


Tutorial - Saving the Segment of Imported MIDI Data

DirectMusic Producer

Tutorial—Saving the Segment of Imported MIDI Data

The segment of new MIDI data is a complete file you can save and reuse. The name of the segment, the settings for its view magnification, and changes made to the segment are saved when you use the Save command.

To save the segment

  1. Click the title bar of the DemoMIDI segment to activate it. If a window's title bar is gray, it is not active.
  2. On the File menu, click Save DemoMIDI.sgp. The segment is saved in its current state.


Tutorial Lesson 2 - What You Have Accomplished

DirectMusic Producer

Tutorial Lesson 2—What You Have Accomplished

  • You imported and listened to a standard file of MIDI data.
  • You saved MIDI data as a new DirectMusic Producer segment.
  • You played the segment file and manipulated the output status button.
  • You became familiar with the Segment Designer window and some of its controls.

Summary

DirectMusic Producer is easy to use for importing MIDI files as well as playing and viewing them. There are many more ways you can work with the MIDI data in the Segment Designer window. These are introduced in Lesson 3 and are discussed in detail in Segment Designer.


Tutorial Lesson 3 - Changing Segment Tempos, Bands, Repeats, and Other Settings

DirectMusic Producer

Tutorial Lesson 3—Changing Segment Tempos, Bands, Repeats, and Other Settings

In this lesson you will become familiar with the controls in the Segment Designer window for:

  • Changing the tempo.
  • Inserting new tempo marks along the segment.
  • Changing the instrument mix, patch, and channel settings for playback.
  • Inserting new bands along the segment.
  • Looping playback.
  • Changing playback start and stop points.


Tutorial - Changing the Tempo

DirectMusic Producer

Tutorial—Changing the Tempo

The Tempo track contains a mark in the first measure showing the original tempo of the imported MIDI file. You can change the setting of the first mark to any tempo from 10 to 350 beats per minute.

To change the first tempo mark

  1. In the first measure of the Tempo track, right-click the tempo mark to highlight it. A shortcut menu is displayed.
  2. Choose Properties. The Tempo Properties window is displayed.
  3. In the Tempo box, enter a tempo from 10 to 350 beats per minute.
  4. Click the Close button to close the Tempo Properties window.
  5. Click the Play from Start button to hear the changed tempo. Playback stops automatically at the end of the segment.


Tutorial - Inserting New Tempos

DirectMusic Producer

Tutorial—Inserting New Tempos

In addition to changing the first tempo in a segment, you can insert as many new tempo marks as necessary along the full length of the segment, with a limit of one mark per measure. This enables you to control the playback of a MIDI file using tempo changes. Tempos are measured in beats per minute.

To insert one or more new tempo marks

  1. In the Tempo track, right-click a measure without a tempo mark. A shortcut menu is displayed.
  2. Choose Insert. A Tempo Properties window is displayed.
  3. In the Tempo box, enter a tempo from 10 to 350 beats per minute.
  4. If necessary, enter the measure and beat settings to adjust the placement of the tempo mark.
  5. To enter new tempo marks in other measures, repeat steps 1 through 4.
  6. Click the Close button to close the Tempo Properties window.
  7. Click the Play from Start button to hear the changed tempo. As each tempo is reached, the playback tempo immediately adjusts. Playback stops automatically at the end of the segment.


Tutorial - Changing the Instrument Mix, Patch, and PChannel Settings

DirectMusic Producer

Tutorial—Changing the Instrument Mix, Patch, and PChannel Settings

The Band track contains a band in the first measure showing the original set of instrument sounds (or the band) used in the imported MIDI file. By default, this band is inserted in the first measure of the segment and is called Band1. You can select any band in the Band track and open the Band Editor. Settings for all instruments currently in the band are displayed in an Instrument Settings list within the Band Editor.

In addition to instruments already in the band, any unused PChannels up to PChannel 16 are also included in the list as empty, unused PChannels.

You can change the following settings for any instrument in a band:

  • Volume

    The MIDI volume ranging from 1 to 127.

  • Pan Position

    The presence of the instrument in the left or right speaker.

  • Patch Setting

    The instrument sound choice, including all General MIDI sounds as well as any downloadable sounds (DLS) from a sampled collection.

  • Channel Assignment

    Referred to in DirectMusic Producer as the performance channel (PChannel), the channel assignment in DirectMusic Producer can be a number far exceeding the usual 16 channels available in MIDI. PChannel assignments can range from 1 to 999.

  • Channel Name

    Any name you enter for a PChannel. This is often the name of the instrument (for example, guitar), or the role the instrument plays in the band (for example, melody).

  • Octave Offset

    An octave transposition value for the PChannel. You can enter the offset by which all note data is transposed up or down.

  • Transposition

    A transposition value for the PChannel. You can enter the value by which all note data is transposed a fixed interval up or down.

In this tutorial, you will change the instrument patch, PChannel, volume, and pan settings.

To change the patch setting of an instrument

  1. In the first measure of the Band track, double-click Band1. The following Band Editor window is opened and an Instrument Settings list with settings for 16 instruments is displayed.

  2. In the Instrument Settings list, click 1 (Recorder) to highlight it.
  3. Right-click the selected line of instrument settings to display a shortcut menu.
  4. Choose Properties. The following PChannel Properties window is displayed for the instrument.

  5. Select the Instrument check box to activate the Recorder button.
  6. Click the Recorder button. A list of instrument families is displayed.
  7. In the Instrument Families list, choose Pipes and click Ocarina. The name of the instrument you select appears on the Instrument button.

To change the PChannel assignment of an instrument

  1. In the first measure of the Band track, double-click Band1. The Band Editor window is displayed.
  2. In the Instrument Settings list, click the instrument containing the PChannel to change.
  3. Right-click the instrument and choose Properties on the shortcut menu.
  4. Write down the instrument name, PChannel name, octave, and other settings to copy to the new PChannel.
  5. Click the Close button to close the Properties window.
  6. In the Instrument Settings list, click an unused PChannel.
  7. Right-click the PChannel and choose Properties on the shortcut menu.
  8. Next to the Instrument button, select the check box and click the Instrument button.
  9. In the Instrument Families list, click the instrument name being moved from the old PChannel.
  10. Enter all other settings being transferred from the old PChannel properties.


Tutorial - Band Editor Graphic Interface

DirectMusic Producer

Tutorial—Band Editor Graphic Interface

The Band Editor window contains a graphic interface with slider controls that can be used to quickly adjust the pan position and volume for an instrument in a band.

To alter the pan and volume of instruments in a band

  1. In the graphic interface, drag the instrument's slider control up or down to make it louder or softer in the band's mix. When you release the slider, the instrument's Vol setting is updated in the Instrument Settings list.
  2. Drag the instrument's slider control to the left or right to move its Pan setting toward the left or right speaker. When you release the slider, the instrument's Pan setting is updated in the Instrument Settings list.

To hear the changes made to a band

  1. Click the Close button in the Band Editor window to accept the changes made to the band.
  2. Click the Play from Start button to hear the segment file played using the changes to the band.

Note To adjust the settings in the band again, double-click the icon for the band to reopen the Band Editor window.


Tutorial - Inserting New Bands

DirectMusic Producer

Tutorial—Inserting New Bands

In addition to changing the first band in a segment, you can insert as many new bands as necessary along the full length of the segment, with a limit of one band per beat. This enables you to control the playback of a MIDI file using instrument patch changes at any time, for any channel in the imported MIDI data.

You can insert and design new bands while you are working in the current segment, or insert pre-existing bands borrowed from other projects, styles, or segments.

To insert one or more new bands

  1. In the Band track, right-click a beat without a band. A shortcut menu is displayed.
  2. Choose Insert. A Band Properties window is displayed.
  3. Click the Close button to close the Band Properties window.
  4. In the Band track, double-click the newly inserted band.
  5. Modify the band, adding patch, PChannel, and other settings.
  6. Click the Close button to close the Band Editor window.
  7. To enter new bands in other beats, repeat steps 1 through 6.
  8. Click the Play from Start button to hear the newly inserted bands play the segment. Playback stops automatically at the end of the segment.

To insert a pre-existing band

  1. In the project tree, click the band to highlight it.
  2. Drag the selected band from the project tree to the Segment Designer window, placing it in the Band track at the desired beat in the segment.
  3. To adjust the measure and beat position of the inserted band in the segment, right-click the band and choose Properties. Then, enter the desired measure and beat.


Tutorial - Looping Playback

DirectMusic Producer

Tutorial—Looping Playback

By default, playback of a segment halts when it reaches the end of the final measure. You can set the segment to loop any number of times, up to 32,767 times.

To loop playback of the segment

  1. In the project tree, right-click the internal icon of the DemoMIDI segment. A shortcut menu is displayed.
  2. Choose Properties.
  3. Click the Loop tab.
  4. In the Loop Repeat box, enter 2. Click the Close button to close the Properties window.
  5. Click the Play from Start button to hear the segment play with looping. The segment plays three times. You can click the Stop Immediate button to halt playback.

Note In the Loop tab of the Segment Properties window, there are options for adjusting the start and end points of the part of the segment to repeat. For this tutorial, you can leave these as they are. For more information about looping segments, see Segment Designer.


Tutorial - Changing Playback Start Point

DirectMusic Producer

Tutorial—Changing Playback Start Point

By default, playback of a segment begins on the first beat of measure 1. However, you can specify a different starting point for playback when you click the Play from Start button.

If you set the segment to loop, playback begins at the starting point you specify, proceeds to the end, and jumps to the beginning of the segment for looping.

To set the start point for segment playback

  1. In the project tree, right-click the internal icon of the DemoMIDI segment. A shortcut menu is displayed.
  2. Choose Properties.
  3. If necessary, click the Segment tab.
  4. Under Start Time, enter 3 in the Bar box.
  5. Click the Close button to close the Properties window.
  6. Click the Play from Start button to hear the segment play. Playback begins at measure 3.
  7. Click the Stop Immediate button to halt playback.


Tutorial Lesson 3 - What You Have Accomplished

DirectMusic Producer

Tutorial Lesson 3—What You Have Accomplished

You have made some basic changes to the imported MIDI file:

  • You increased the tempo.
  • You inserted multiple tempo marks.
  • You changed the volume and pan settings for instruments in the band.
  • You changed the instrument patch and channels used for playback.


Tutorial Lesson 4 - Using DLS

DirectMusic Producer

Tutorial Lesson 4—Using DLS

In this lesson you will be introduced to the way Microsoft® DirectMusic® Producer uses downloadable sounds (DLS) to enhance music you create. You will also learn how to assign DLS instruments to any part in the DemoMIDI segment.

An array of predesigned DLS instrument sounds and sound effects is supplied with DirectMusic Producer for use with any musical piece. In addition, you can use any DLS sound you create or obtain commercially to add instrument sounds or sound effects to a musical piece.

By default, DirectMusic Producer is set up to use the GM.dls collection for all playback. The GM.dls collection uses the GM/GS® Sound Set by the Roland Corporation, which consists of 254 instrument sounds and sound effects. These include the 128 standard instrument sounds of the General MIDI (GM) specification, plus 126 additional GS instrument sounds that are unique to sound sets designed by the Roland Corporation.

By default, the GM.dls sounds and all DLS sounds play on your computer through the Microsoft® Synthesizer, which is a software substitute for hardware synthesizers. Using the combination of downloadable sounds and the Microsoft Synthesizer to provide playback has three major advantages over using MIDI playback hardware:

  • Unlimited sound palette

    You can assign any sound to a part, whether it is a pre-existing sound, a sampled waveform that you create, or a commercially obtained DLS.

  • Consistent use of sounds on all computer systems

    DLS sounds maintain the same high quality on all computer systems and are independent of any MIDI sounds in a computer's hardware.

  • Eliminates the need for MIDI playback hardware

    Only the simplest type of sound card is required for output.

For information about changing the default playback setup in DirectMusic Producer, including choosing a different playback device or a different default DLS collection, see Playback Devices.

Important The GM/GS® Sound Set used in the GM.dls is trademarked by the Roland Corporation and is the legal property of the Roland Corporation. The GM.dls collection cannot be modified and must be redistributed in its entirety and without alteration. The component sounds and waveforms in the Roland GM.dls collection must not be used as source material to create other DLS sounds or collections. See Legal Information for information regarding the use of the GM.dls. In addition, for any component you use, read copyright information contained in the Properties window of the file.


Tutorial - Instrument Lists

DirectMusic Producer

Tutorial—Instrument Lists

The sounds in the GM/GS® Sound Set are organized into 16 instrument families:

  • Piano
  • Chromatic Percussion
  • Organ
  • Guitar
  • Bass
  • Orchestral
  • Ensemble
  • Brass
  • Reed
  • Pipe
  • Synth Lead
  • Synth Pad
  • Synth SFX
  • Ethnic Misc
  • Percussive
  • SXF

Each instrument family contains eight sounds belonging to the standard General MIDI specification.

There are also 126 GS sounds that are placed within these same instrument families. Some families contain several GS sounds, and some contain very few. Three families do not contain any GS sounds: Reed, Pipe, and Synth Pad.

You can view the entire instrument list when you open the properties of a PChannel in the Band Editor. Clicking the Instrument button in the PChannel Properties window displays the following menu, which shows the 16 instrument families, plus an option for choosing a sound from a different DLS sound set. For more information about choosing a different sound set, see Using Other DLS Collections.

Selecting any instrument family in the list opens a submenu of instruments, as well as an option for choosing from available GS sounds within that family. For more information, see Using GS Sounds.


Tutorial - Editing the DemoMIDI Segment Band

DirectMusic Producer

Tutorial—Editing the DemoMIDI Segment Band

You can use the Band Editor to open and modify a band. You can also change the instrument sound assignment for any PChannel in the band. In addition, you can use sounds from other DLS collections.

Choosing an instrument sound from the 128 standard GM sounds follows the same procedure as changing an instrument patch setting, as explained in Lesson 3. For more information, see Changing the Instrument Mix, Patch, and PChannel Settings. Because the default setting for playback is to use the GM.dls, selecting any patch setting from the instrument list uses a DLS.


Tutorial - Using GS Sounds

DirectMusic Producer

Tutorial—Using GS Sounds

When choosing a new patch setting, you have the option of using GS sounds. There are 126 GS sounds included in the GM.dls collection. These GS sounds serve to augment the number of instruments contained in the standard General MIDI (GM) set of sounds.

To assign a GS sound to a part in the DemoMIDI segment

  1. In the Band track of the DemoMIDI segment, double-click a band. The Band Editor window is displayed.
  2. In the Instrument Settings list, click the instrument at the top of the list to highlight it.
  3. Right-click the instrument and choose Properties. The PChannel Properties window is displayed.

  4. Click the Instrument button. A list of instrument families is displayed.
  5. In the Instrument Families list, choose any family that includes GS sounds—all families except Pipe, Reed, and Synth Pad include GS sounds. A submenu for the instrument family is displayed.
  6. On the Instruments submenu, click GS.
  7. In the GS list, choose the GS sound. The name of the instrument you select appears on the Instrument button.


Tutorial - Using Other DLS Collections

DirectMusic Producer

Tutorial—Using Other DLS Collections

When choosing a new patch setting, you can use a DLS collection other than the GM.dls supplied with DirectMusic Producer. You can choose a sound from that collection to use for an instrument part in the band.

To choose a sound from a different DLS collection for the DemoMIDI segment

  1. In the Band track of the DemoMIDI segment, double-click a band. The Band Editor window is displayed.
  2. In the Instrument Settings list, click the instrument at the top of the list to highlight it.
  3. Right-click the instrument and choose Properties. The PChannel Properties window is displayed.
  4. Click the Instrument button. A list of instrument families is displayed. Click Other DLS. The Choose DLS Instrument window is displayed containing a list of all the DLS collections found on your computer.

  5. In the DLS Collections list, choose the DLS collection containing the sound to use. For the DLS collection you choose, the Instruments list is updated to show available sounds.
  6. In the Instruments list, choose the sound. The name of the sound you select will appear on the Instrument button.


Tutorial Lesson 5 - Importing the DemoMIDI File into a Producer Style

DirectMusic Producer

Tutorial Lesson 5—Importing the DemoMIDI File into a Producer Style

In Lessons 1 through 4 you used a segment titled DemoMIDI and the original DemoMIDI file, both of which consist of a long, continuous stream of MIDI data. The MIDI data can be played repeatedly to create a long piece of music, but each time it repeats, the exact same music is played. However, Microsoft® DirectMusic® Producer can also be used to create a style that has built-in variability so each time the piece repeats, it sounds different.

You can build a style in two ways:

  • Import a pre-existing MIDI file.
  • Build a completely new style by entering MIDI data directly into the style (using the mouse or MIDI recording input).

In this tutorial, you will use only the first method (importing a MIDI file). To learn about building a completely new style, see Style Designer.

MIDI data in a style is used and reused in constantly changing combinations. As a result, the data is used far more efficiently than a standard MIDI file. Thus, when importing a MIDI file, you use DirectMusic Producer to convert MIDI data into a much more streamlined style that requires far less disk space on a computer, and that sounds different with each listening. The resulting style can be repeatedly looped to play over and over, but with variations, making it sound as if it were a long, continuous stream of changing MIDI data.

In this lesson, you will:

  • Import the entire DemoMIDI file (which is 13 measures in length) as one long pattern.
  • Explore it.
  • Play it.

For this lesson, you will keep all 13 measures of the imported DemoMIDI file in one piece, so you can easily compare it to the DemoMIDI segment. However, a style is typically made up of numerous short phrases (around two to four measures) called patterns that can be strung together in any order to create one long piece. You can then exercise as much or as little control over the order in which the patterns are played. In Lesson 6, you will see the imported MIDI data in a style already divided into several short patterns.


Tutorial - Importing the MIDI File into a Long, Single Pattern

DirectMusic Producer

Tutorial—Importing the MIDI File into a Long, Single Pattern

You will now import the DemoMIDI file into a new style. The entire 13-measure length of the MIDI file will be placed in the style as one long, single pattern.

To import the DemoMIDI file into a long, single pattern

  1. On the File menu, choose New.
  2. In the list, double-click Style. A new style named Style1 is added to the project tree, with its internal name and its component band, pattern, and motif folders displayed.
  3. In the project tree, double-click the Patterns folder of the newly created style to display its contents.

In the project tree, there is a pattern called Pattern1 already in the style. Pattern1, included in the new style by default, is an empty pattern.

  4. Right-click the style's internal icon. A shortcut menu is displayed.
  5. On the shortcut menu, click New and choose Import MIDI File As Pattern.
  6. In the Import MIDI File to Pattern window, locate the DemoMIDI.mid file and double-click it. The default location is C:\My Documents\DMUSProducer\Tutorial. The MIDI file is placed in the style as a new Pattern2.

The unaltered MIDI file is imported and retains the following characteristics:

  • All note information
  • All continuous controller data
  • Tempo
  • Length
  • Instrument patch and channel assignments

The instrument patch and channel assignments are imported into the style as a separate group of settings called a band in the exact same manner as when importing a MIDI file into a segment. The imported band is given the name Band1. For more information, see Tutorial Lesson 3 —Changing Segment Tempos, Bands, Repeats, and Other Settings.


Tutorial - Exploring the Single Pattern Imported DemoMIDI

DirectMusic Producer

Tutorial—Exploring the Single Pattern Imported DemoMIDI

After MIDI data is in a style, you can view it in detail and play it using Pattern Editor. Pattern Editor is a complete editing tool through which you view and modify all MIDI data in a style.

To open and play the pattern of imported DemoMIDI data

  1. In the project tree, double-click Pattern2 containing the newly imported MIDI data. The Pattern Editor window is opened, displaying the contents of the pattern.

  2. Click the Play from Start button. The pattern begins playback and loops repeatedly.

    Let the pattern of the newly imported MIDI data continue to play as you observe it on the screen and note the following:

  • The pattern contains 13 measures, which do not all fit into the Pattern Editor window at one time.
  • The pattern scrolls sideways during playback to display the measures playing.

The imported DemoMIDI pattern consists of 12 measures of song material plus a one-measure ending. The first four measures are actually two slightly different phrases, each two measures in length. The two-measure phrases are referred to as variations on the same two-measure phrase. The next set of four measures also consists of two slightly different phrases, as does the third set of four measures. The final measure of the imported MIDI data serves as an ending for the entire piece.

Following is a simple way to describe the form of the piece:

  • Phrase A variation 1 (two measures)
  • Phrase A variation 2 (two measures)
  • Phrase B variation 1 (two measures)
  • Phrase B variation 2 (two measures)
  • Phrase C variation 1 (two measures)
  • Phrase C variation 2 (two measures)
  • Ending (one measure)

The following is a rough graphic representation of the imported DemoMIDI file.

The phrases of a style are usually divided into separate patterns. The green lines along the top of the example would represent the divisions between patterns in the example. Typically, when DirectMusic Producer plays a style, the order in which its patterns play can vary. In addition, the order in which the variations within the patterns play can also vary. Furthermore, the individual variations played by the separate instruments can be played in any number of mixtures, creating numerous possible combinations. However, in this example, all the music is placed in one single pattern that plays the same way each time it repeats.

You will learn more about the structure of styles and the variability built into them in Lesson 6.


Tutorial Lesson 6 - Exploring DemoMIDI as a Predesigned DemoStyle

DirectMusic Producer

Tutorial Lesson 6—Exploring DemoMIDI as a Predesigned DemoStyle

A style is the most essential unit of musical content authored in Microsoft® DirectMusic® Producer and is at the heart of its ability to create variable music. In place of long phrases of several measures, a well-designed style has numerous, short patterns that DirectMusic Producer can play in any order to achieve variability. In addition, each pattern has variations within it. As DirectMusic Producer plays a pattern, the order in which the variations within the patterns play can also vary, and the individual variations played by the separate instruments can be played in any number of mixtures, creating a wide range of combinations.

For this tutorial, the 13-measure DemoMIDI file is divided into a predesigned style with four short patterns called DemoStyle to help you understand the structure of styles. After you learn more about using DirectMusic Producer, you can import any MIDI file and then use the Cut and Paste commands to divide the file into several smaller patterns.

The DemoStyle file is organized into three short patterns (Pattern A, Pattern B, and Pattern C), with each containing two variations of two measures, plus the one-measure ending pattern.

The following is a graphic representation of the structure of the DemoStyle.

In this lesson you will:

  • View the DemoMIDI file as a predesigned DemoStyle that has been divided into small patterns and variations.
  • Play the DemoStyle to hear DirectMusic Producer combine the individual variations in random mixtures.

To view the contents of DemoStyle

  1. In the project tree, double-click the file icon for DemoStyle.stp. The internal name of the DemoStyle and its icon are displayed, along with its pattern, motif, and band folders.

  2. Double-click the icon for the internal name of the DemoStyle. Style Designer is opened and the following window is displayed.

The preceding Style window shows Pattern A, Pattern B, and Pattern C, plus the ending called Pattern Ending. The three main patterns are each two measures long, and the ending pattern is one measure long, as indicated by the number listed in the Length column. The Pattern Ending also has an "E" in the Embellishment column, indicating that it is an ending. Note that the tempo and band are imported into the style from the original DemoMIDI file.


Tutorial - Variations

DirectMusic Producer

Tutorial—Variations

Though it is not shown in this window, each of the patterns A, B, and C contains two variations of its phrase. A variation consists of similar musical material that fits within the same time and space, but which has slightly different notes or melodic material. The variations in a pattern are similar enough that DirectMusic Producer can randomly substitute one variation for another when it plays the style without the piece sounding incorrect. In addition, DirectMusic Producer can combine the variations played by each instrument, substituting the melodic lines played by each instrument.

This variability creates a range of potential combinations when a pattern plays. In a single pattern of the DemoStyle, which contains only six instruments and two variations per pattern, there are 64 different combinations of musical lines that can occur. In a typical style, such as those delivered with DirectMusic Producer, there are 16 or more variations in each pattern, and 16 or more individual instrument parts. For a well-designed style, the potential combinations of musical lines can number in the millions. Additionally, most styles can switch between several different patterns at any point during a performance. Multiplying the number of variation choices by the number of possible pattern choices shifts the number of potential combinations into the order of several million for a well-designed style.


Tutorial - Testing Style Playback

DirectMusic Producer

Tutorial—Testing Style Playback

You will now play the predesigned DemoMIDI style to hear its individual patterns and variations. As the style is playing, you can click any of the patterns and then click the Transition button to hear the playback transition from one pattern to the next.

To hear all the patterns of the DemoMIDI style

  1. In the Style window, click Pattern A to highlight it.
  2. Click the Play from Start button. Pattern A plays from its beginning and repeats continually, alternating between its two variations after every two measures.
  3. As the style is still playing, click Pattern B to highlight it.
  4. Click the Transition button. Playback switches to Pattern B, alternating between its two variations after every two measures.
  5. As the style is still playing, click Pattern C to highlight it.
  6. Click the Transition button. Playback switches to Pattern C, alternating between its two variations after every two measures.
    1. While the style is still playing, click Pattern Ending to highlight it.
    2. Click the Transition button. Playback switches to the Pattern Ending and then halts.

This completes the Tutorial. To learn more about what you can do with DirectMusic Producer, see Exploring the Demo Files.


Exploring the Demo Files

You can open, view, and play numerous demonstration files provided with Microsoft® DirectMusic® Producer. These files demonstrate the use of styles, bands, secondary segments, chordmaps, groove levels, signpost chords, waves, and much more.

For the DX 8.0 release, demo files are all segments that use various files in special ways. All segments are all stored in a project called Demo8. When the project is open, the Bookmark list contains numerous bookmarks that you can choose to open one or another segment, and see it displayed on the screen in the last saved form. Choosing a bookmark recalls a view designed to best show the use of the demo file.

You must install the Demo8 project on your computer from the DirectX CD. Demo8 project is contained in a self-extracting file called dmpdemocontent.exe, which can be found on the CD in the following location:

\dxf\essentls\dmusprod\democontent\dmpdemocontent.exe.

Double-click the dmpdemocontent.exe file to install the Demo8 project folder on your computer. After doing so, you can use the following procedure at any time to open the Demo8 project in DirectMusic Producer.

To open a demo file

  1. On the File menu, choose Open Project.
  2. In the Open Project window, locate and then double-click the Demo8 project folder. Its default location is C:\My Documents\DMUSProducer. The file icon for the Demo8 project is displayed.
  3. Double-click the file icon for the Demo8 project to add the Demo8 project to the project tree.
  4. In the project tree, click the plus (+) next to the icon of the Demo8 project. The Demo8 project is opened, displaying its component files.
  5. In the Bookmark list, click any bookmark to display a demo file. Instructions for using the file are generally included in the Lyrics track of the segment.

When you are finished viewing the Demo8 project, you can click the File menu and choose Close Demo8 project to close the project without saving any changes you made.


General Use

This section includes information you need to use Microsoft DirectMusic Producer:

  • Menus
  • Toolbars
  • Project Tree
  • Components and Design Modules
  • Editing Window
  • File Management
  • Properties Windows
  • Customizing the Workspace
  • Variability


Menus

Producer provides numerous menus that you can open to select commands. There are two types of menus:

  • Drop-Down Menus

    Standard menus provided at the top of the DirectMusic Producer window.

  • Shortcut Menus

    Special menus that open when you right-click an object.

Accelerator Keys and Command Shortcuts

Most commands in drop-down menus and shortcut menus have accelerators or keyboard shortcuts that appear underlined in the menu. You can use these to help speed your work. See Keyboard Shortcuts.


Drop-Down Menus

The following menu bar is provided along the upper edge of the DirectMusic Producer window. It contains the names of several drop-down menus.

You can click a menu name to open it. Each menu contains several commands for viewing and working with projects and components:

  • File menu

    Contains commands for file management, such as New, Open Project, Insert Files into Project, Save File, and Save As.

  • Edit menu

    Contains commands for file editing, such as Cut, Copy, Paste, Undo and Redo.

  • View menu

    Contains commands for controlling the display of the project tree, toolbar, status bar, transport controls, properties windows, and more.

  • Add-Ins menu

    Contains commands for editing in the active editing module.

  • Window menu

    Contains commands for controlling the view of components and the work environment. Also lists all available open windows.

  • Help menu

    Contains commands for reading Help files and getting information about DirectMusic Producer.

Modular Menus

In addition to these standard drop-down menus, there are special menus that are displayed only when the window of a particular component is active. For example, the ChordMap menu is added to the menu bar when the Chordmap Designer is active.


File Menu

The File menu contains the following commands:

  • New

    Starts a new project or adds a new component of any type to an existing project. For information about creating new projects or component files, see Creating New Projects and Components.

  • Open Project

    Opens an existing project. See Opening an Existing Project.

  • Insert Files into Project

    Adds files of any type to a project. This includes existing DirectMusic Producer components as well as files from inside or outside the DirectMusic Producer environment such as text files and wave files. For information about adding all types of files, see Adding Existing Components to the Project Tree.

  • Save File

    Saves changes made to the component in the active editing module. The name and file extension of the component are included on the File menu with the Save command (for example, Save My Style.stp). The Save command is disabled if no component is displayed in the editing pane.

  • Save As

    Saves the file as it appears in the active editing module and provides the option to name the file and save it in any location on your computer. The name and file extension of the component are included on the File menu between Save and As (for example, Save My Style.stp As). The Save As command is disabled if no component is displayed in the editing pane.

  • Save Project

    Saves changes made to the selected project.

  • Duplicate Project

    Creates a duplicate of the selected project and provides the option to name the duplicate copy and save it in any location on your computer.

  • Close Project

    Closes the selected project and provides the option to save changes to each component that has changed in the project.

  • Runtime Save As

    Saves the file in the active editing module as a DirectMusic run-time file and provides the option to name and save it in any location on your computer. For more information, see Delivering Run-time Files.

  • Runtime Save All Files

    Saves all components in the selected project as DirectMusic run-time files. Each run-time file is saved using the exact name of the original file and is placed in the default directory C:\My Documents\DMUSProducer\Current_Project\Runtime Files. For more information, see Delivering Run-time Files.

  • Exit

    Closes DirectMusic Producer and provides the option to save changes to each project and its components.


Edit Menu

The Edit menu contains the following commands for file editing:.

  • Undo and Redo.
  • Cut
  • Copy
  • Paste
  • Delete
  • Select All

These commands affect items that you select or highlight. The following topics contain information about selecting objects:

  • Selection Buttons
  • Selecting and Editing Notes
  • Using the Timeline and Selection Buttons to Cut and Paste Notes
  • Using the Timeline and Selection Buttons to Cut and Paste Large Regions
  • Using the Timeline and Selection Buttons to Cut and Paste Segment Material
  • Selecting and Editing Multiple Variations
  • Selecting and Editing Multiple Chords


Undo and Redo

Undo and Redo commands are included in the Edit menu. When you change a component in the editing pane, the Undo and Redo commands become available on the Edit menu. You can also use CTRL+Z to undo a change or CTRL+Y to reapply the change. Each component in the editing pane works individually with the DirectMusic Producer interface. Thus, Undo and Redo operations work separately with each window.


View Menu

You can click the names of any window or toolbar listed in the View menu to turn on or off its display:

  • Project Tree
  • Standard Toolbar
  • Bookmarks
  • Status Bar
  • Transport Controls
  • Transport Options
  • Output Status
  • Secondary Segment Toolbar
  • Synth Status
  • Wave/MIDI Export Toolbar
  • DLS Conditions
  • Properties


Add-Ins Menu

The only item that currently uses the Add-Ins menu is the Message Window.


Window Menu

The Window menu contains commands for controlling the view of components and the work environment, and lists all available open windows:

  • Cascade

    Arranges the windows of the open components in the editing pane so they overlap, with at least the top edge of each window showing.

  • Tile Horizontally

    Arranges the windows of the open components in the editing pane so they line up from top to bottom without overlapping. This command is also included in the Window View controls.

  • Tile Vertically

    Arranges the windows of the open components in the editing pane so they line up side by side without overlapping. This command is also included in the Window View controls.

  • Close All

    Closes all windows contained within the editing window.

  • Other windows currently open

    The name of any open windows in the editing window are listed. The currently active window has a checkmark next to its name in the list. You can click any name to bring a window to the front, making it active.


Help Menu

The Help menu contains commands for reading Help files and getting information about DirectMusic Producer:

  • Contents

    Opens the DirectMusic Producer Help file, and displays its table of contents.

  • About

    Describes the currently active design module, and provides the version number and copyright date for the DirectMusic Producer application.


Shortcut Menus

Shortcut menus are used throughout DirectMusic Producer to provide lists of commands that apply specifically to an object or item you are editing. You can display the shortcut menu for most any item on the screen by right-clicking it. This includes right-clicking a component icon in the project tree, or right-clicking the editing window for the component you are viewing.

For information about project tree menus, see Shortcut Menus in the Project Tree.

Shortcut menus frequently contain more features and commands than the drop-down menus. Nearly every element in a component or window has a shortcut menu available for changing or editing the item.

Shortcut menus also contain a Properties command that displays the properties window for the component. You can use properties windows to set up and edit components, change various component settings, and store information about the associated component file. See Properties Windows.


Toolbars

The top of the DirectMusic Producer environment contains several toolbars. You can turn the display of a toolbar on or off by selecting it in the View menu. You can also drag a toolbar to any position on the screen. See Customizing the Workspace.

  • Standard Toolbar

    The standard toolbar includes the File Management tools and the Window View controls. The File Management tools are used to manage the project tree's contents, to open and save projects, and to add and delete components. This includes adding files to a project from inside or outside the DirectMusic Producer environment and importing a MIDI file. The Window View controls are used to change how the windows are arranged and displayed.

  • Transport Controls (including Tempo Box)

    The Transport controls contain the Play From Start, Play, Stop Immediate, and Stop buttons for recording and playback, a Tempo box, a Tempo Modifier button, a button to play a transition between two components, and a Transport list that displays the name of the component selected to play.

  • Output Status Toolbar

    Contains a combined playback signal output status button and meter for each active performance channel (PChannel). A button is not displayed for a PChannel in the Output Status toolbar until the PChannel is used for playback. Each button displays the PChannel number, the name assigned to the PChannel, and a graphic line representing the relative volume level of the PChannel during playback. The toolbar also contains the All Notes Off button.

  • Transport Options Toolbar

    Transport options are used to set up a metronome, a moving cursor for playback, and all playback devices, including DLS and MIDI playback hardware.

  • Secondary Segment Toolbar

    By default, the Secondary Segment Toolbar displays three sets of secondary transport controls. You can use the toolbar to select additional segments or motifs to play on top of the component in the Transport list. Up to 99 sets of Secondary Transport controls can be displayed

  • Synthesizer Status Window

    The Synthesizer Status window displays the current computer memory used by DirectMusic Producer, including the memory used by the Microsoft Synthesizer or other software synthesizers. The number of synthesizer voices used to play a file is also displayed.

  • Wave and MIDI Export Toolbar

    The Wave/MIDI Export tools enable you to capture the performance of a DirectMusic Producer file as it plays and save it as a wave file or a MIDI file. This includes the use of multiple segments, styles, and motifs playing simultaneously.

  • Timeline

    Chordmap Designer, Segment Designer, and Pattern Editor include a timeline showing beats, measures, and elapsed time in seconds.

  • Zoom Buttons

    The design modules that use a timeline have a pair of zoom buttons to enlarge or reduce the magnification of the editing pane's contents.

  • Status Bar

    The status bar displays information about an item on the screen that the mouse points to. The right side of the status bar contains windows that show the elapsed time and offset time during playback of DirectMusic Producer components. When you view a band, the window at the right side of the bar displays the pan and volume settings of a selected PChannel. When you view a wave file, the window at the right side of the bar displays information for the selected portion of the wave.

  • Bookmark Controls

    A bookmark is used to recall the placement of all windows at the time the bookmark is set. It also provides an easy way to open components. The Bookmark controls are used to add and delete bookmarks, and consist of the Add Bookmark, Remove Bookmark, and Remove All Bookmarks buttons and the Bookmark list.


Standard Toolbar

The Standard toolbar includes five buttons used for file management, and three Window View controls.

The Standard toolbar is typically displayed in the upper-left corner of the window, though you can drag it to any position on your screen. You can also hide it (for more information, see Customizing the Workspace.

The file-management buttons included in the Standard toolbar include the following. For more information, see File Management :

  • New

    Starts a new project or adds a new component of any type to an existing project. For information about creating new projects or component files, see Creating New Projects and Components.

  • Open Project

    Opens an existing project. See Opening an Existing Project.

  • Insert Files into Project
    Adds files of any type to a project. This includes existing DirectMusic Producer components as well as files from inside or outside the DirectMusic Producer environment such as text files and wave files. For information about adding all types of files, see Adding Existing Components to the Project Tree.
  • Save Project

    Saves changes made to the selected project.

  • Save File

    Saves changes made to the component in the active editing module. The Save button is disabled if no component is displayed in the editing pane.

The Window View controls are used to change how windows are arranged and displayed. For information see Window View Controls

These tools are typically displayed at the upper edge of the window. However, you can drag them as a set to any position on your screen. You can also hide them from view. For more information, see Customizing the Workspace.


Window View Controls

The Standard toolbar includes a group of buttons and settings used to control the display of various windows in DirectMusic Producer.

The following Window View controls are on the Standard toolbar:

  • Show/Hide Project Tree

    Toggles the display of the project tree so that it is shown or hidden.

  • Tile Horizontally

    Arranges the windows of the open components in the editing pane so they line up from top to bottom without overlapping.

  • Tile Vertically

    Arranges the windows of the open components in the editing pane so they line up side-by-side without overlapping.


Status Bar

The status bar displays information about an item on the screen that the mouse points to. The right side of the status bar contains windows showing the elapsed time and offset time during playback of most DirectMusic Producer components, for example, segments, patterns, and motifs.

When you view a band, the window at the right side of the bar displays the pan and volume settings of a selected PChannel. When you view a wave file, the window at the right side of the bar displays information for the selected portion of the wave.


Bookmark Controls

DirectMusic Producer provides a set of Bookmark controls you can use to save the current view of all windows and toolbars that are opened.

For any components you are currently editing, and for any windows and toolbars that are currently displayed (including the Project Tree), you can create a bookmark that recalls the exact arrangement and position of all windows and toolbars on the screen. This feature makes it easy to switch between multiple views of the components you are editing. Thus, you can create and recall a customized work space on your computer screen for each component or group of components you are designing. For information on options for customizing the view of windows and tools on your screen, see Customizing the Workspace.

The following controls are on the Bookmarks toolbar:

  • Bookmark List

    Consists of bookmarks that recall the placement of all windows at the time the bookmarks are set. You can use these bookmarks to easily open components. A bookmark can apply to multiple editors and multiple component files.

  • Add Bookmark

    Adds a bookmark for a displayed component.

  • Remove Bookmark

    Deletes a bookmark from the list.

  • Remove All Bookmarks

    Deletes all bookmarks from the list.

You can create any number of bookmarks while any components, windows, or toolbars are displayed. Each time you want to edit the component or components, or return to a previous view, you can select the bookmark to open and display them as they were when the bookmark was created.

Note A bookmark recalls the size, shape and position of the windows containing the components you want to open. The bookmark does not interfere with changes or edits you have made to any components contained in the windows, and does not cause the components to revert to a previous state.

To create a bookmark

  1. Arrange all windows and toolbars on the computer screen as desired.
  2. In the Bookmark controls, click the Add Bookmark button. The following New Bookmark window is displayed:

‹›

  3. In the Bookmark Name box, enter any name for the bookmark.
  4. Click OK.

Bookmarking Components in Multiple Projects

You can create a bookmark to display components from more than one project. The bookmark is included in the Bookmark list when any project is open that contains at least one of the components referred to by the bookmark. However, when you select a bookmark, a component is not displayed on the screen unless its project is already open and included in the project tree. See Opening an Existing Project.


Project Tree

The project tree consists of one or more projects; each project is indicated by a folder icon. The components of every project in the project tree are organized in a tree structure. The project tree is displayed in the left pane of the DirectMusic Producer window.

This gives you a consistent way of working with all components. For example, double-clicking a component brings up the menus and commands necessary to edit that component. Right-clicking a project or component in the project tree displays a shortcut menu that contains the file management options for that file type. For more information, see Shortcut Menus in the Project Tree.

The project tree also provides a visual cue to understand how components work together within a project: components are nested in a hierarchical structure within a project. The following illustration shows what the first and second tier of a typical project look like in DirectMusic Producer.

  • Plus and Minus Symbols

    Next to each component icon is a plus (+) or minus (–). A plus indicates there are additional contents in that component. You can display these contents by clicking the plus or by double-clicking the icon. Clicking the minus closes the contents displayed for that component.

  • Third Tier

    The third tier of a project contains an additional icon and name for each component. Each component in the project has two types of icons and two names: a file icon with a file name, and an internal, DirectMusic icon with an internal name. For more information, see Project and Component Names in the Project Tree. Double-click the icon of a file, or click the plus to display the second tier of the component names, as shown in the following illustration.

  • Moving Components within the Project Tree

    In DirectMusic Producer, you can use the drag-and-drop feature to move components in the project tree. You can easily organize and reorganize projects by copying items from one project to another. For more information, see Drag-and-Drop.

Important You should never set a component in one project to refer to a component in a different project. Doing so can be a risk to the data in your files.

  • Adding and Deleting Files in the Project Tree

    You can create new components and add existing components to a project at any time. You can also delete any component from a project and import files, such as MIDI files or text files, into a project from outside the DirectMusic Producer environment. For more information, see File Management.


Project and Component Names in the Project Tree

Each component in a project has two names that appear in the project: a file name and an internal name. In addition, each component has a separate icon associated with its name.

At the second tier of a project, a component appears as an icon followed by a name and an extension. The extension indicates what type of component it is. The following illustration shows a project named My Project that contains a style component named My Style.stp.

A project file has an extension of .pro, though the extension is not displayed in the project tree.

If you double-click a component icon, or click the plus next to the icon, a second icon and name are displayed. This is the internal name and icon used within the DirectMusic Producer application.

For more information about component names, see File Names and Internal Names.


File Names and Internal Names

Within a project, each component has two names: a file name and an internal name. The following illustration shows a style with the file name of Style1.stp and the internal name of MyStyle.

The file name and its icon are used outside DirectMusic Producer and are the name and icon displayed in Microsoft Windows Explorer. The icon is a generic DirectMusic icon. You can give a component a file name up to 60 characters long with a three-character extension.

The internal name and its icon are used only within the DirectMusic Producer environment. There are specific internal icons for each type of DirectMusic component. You can give a component an internal name up to 15 characters long.

When you create a new component, the internal name matches the file name without the three-character extension. See Default File Names and Internal Names.


Default File Names and Internal Names

When you create a new component, you can select the Use Default Names option to automatically give the new component a default name. A default name contains the component type and a number. For example, a new band might have a default name of Band1, Band2, Band3, and so on.

The number used in a default name is the number of components of that type using the default name in the project. For example, if a project already contains Style1 and Style2, then the next style you add will have a default name of Style3, as shown in the following figure.

The same default name is used for both the file name and internal name of the component, with the file name including a three-character extension, as shown in the preceding illustration. You can change one or both of the names at any time. See Changing File Names and Internal Names.


Changing File Names and Internal Names

You can change the internal name and the file name of a component in the project tree.

Note If the internal name matches the file name without a three-character extension, then changing the file name automatically changes the internal name, so they continue to match.

To change the file name of a file

  1. In the project tree, right-click the file name.
  2. Choose Rename. The file name is highlighted in the project tree.
  3. Type the new name for the file, up to 60 characters long, plus a three-character extension.
  4. Click anywhere in the project tree to cancel the selection.

To change the internal name of a file

  1. Click the component's internal name in the project tree to highlight it.
  2. Click the internal name a second time to place the cursor in the highlighted area.
  3. Type the new name for the file, up to 15 characters long.
  4. Click anywhere in the project tree to cancel the selection.

You can also change a component's internal name using its Properties window.


Subcomponents in the Project Tree

Some components in a project can be expanded to display folders that contain multiple subcomponents. A plus indicates that there are additional contents within a component. You can display subcomponents by clicking the plus or by double-clicking the icon. Clicking the minus closes the contents displayed for that component.

The following illustration shows a style with its band and pattern subcomponents displayed.

When you double-click components and subcomponents, they are displayed in the editing pane.

Note Component files and their subcomponents are stored in a project folder, but are not contained in the project file itself. The project file, with an extension of .pro, contains information about the project and its components. The project file contains a pointer to the location where the various component files are stored. If you delete a component from the project folder, you remove the pointer to the component. The component is then removed from your computer hard drive.

Organizing your work into projects offers several advantages. You can place several components into a single project, and set the components to share data with one another. Several components in a project can share references to a single component that serves as a source of data. For example, a style file can serve as the source of musical material for several segments in a project. If you make changes to the style file, the changes are reflected in the segment file that references it.

Important Do not set a component in one project to refer to a component in a different project. This can be a risk to the data in your files.

You can organize and modify the contents of a project tree in the following two ways:

  • Moving components within the project tree

    In DirectMusic Producer, you can use the drag-and-drop feature to move components in the project tree to organize and reorganize projects by sharing items between components in a single project. You can also press CTRL and drag an item to move a copy of the item from one project to another. For more information, see Drag-and-Drop.

  • Adding and deleting files in the project tree

    You can add new, empty producer components and existing components to a project. You can also delete a component from a project and import files (such as MIDI files or text files) into a project from outside the DirectMusic Producer environment. For more information, see File Management.


Shortcut Menus in the Project Tree

Each type of file in the project tree has a different shortcut menu associated with it. You can right-click the icon of a project or component to display its shortcut menu. This menu contains the file management options and commands specific to the file type for the selected item. The following illustration shows the shortcut menu for a project folder.

The shortcut menu can contain one or more of the following commands:

  • New
  • New Folder
  • Insert Files
  • Import
  • Save
  • Save As
  • Duplicate
  • Duplicate Project
  • Close
  • Delete
  • Rename
  • Properties
  • Revert to Saved

    Available only in the project tree shortcut menus for files.

  • Cut
  • Copy
  • Paste
  • Runtime Save As
  • Open
  • Import
  • Import MIDI

For information about using the commands in the shortcut menu, see File Management. For general information about shortcut menus, see Shortcut Menus.


Adding Existing Components to the Project Tree

If you save a DirectMusic Producer component or have an existing component on your computer, you can add it to the project tree and open it. Several predesigned component files are included with DirectMusic Producer; you can load these files into the project tree. In addition, you can add components to an existing project or create an empty project and insert components into it. For more information, see Creating New Projects and Components.

Note The General MIDI DLS Collection (GM.dls) is installed in the Windows/System32/Drivers folder each time you install the DirectMusic system components in your computer. The default setting in DirectMusic Producer uses the GM.dls collection for playback on all performance channels (PChannels). The GM.dls collection is available to all projects at all times. You do not need to add it to the project tree.

After a component is placed in the project tree, you can double-click its icon to launch the appropriate design module and display the component.

To add an existing component to the project tree

  1. In the project tree, click the project to add the component to. To create a new project, see Creating New Projects and Components.
  2. On the File menu, choose Insert Files into Project. The following window is displayed.

  3. In the Files of type box, select the file type to add.
  4. In the Look in box, locate the folder on your computer containing the file to use.
  5. Double-click the file. The component you select appears in the project tree.

Note When you select a file type to add to a project, you can choose either authoring mode components or run-time files. As shown in the graphic, segment files can have a .sgp (authoring mode) or .sgt (run-time) file extension. For more information, see Using Files in the Developer Environment.


Components and Design Modules

Each of the DirectMusic Producer design modules contributes a type of component to the compositions in your project. Some components are a part of every composition, while others are optional. This section describes the DirectMusic Producer components and how they relate to the composing process and interrelate to create interactive music.

A DirectMusic Producer project can contain the components shown in the following table.

Component name | File extensions | Description | Design Module
Segment | .sgp and .sgt | Main framework for organizing multiple music elements—MIDI files, waves, styles, chords, and bands—in which you can specify length, timing, repeats, and tempos. | Segment Designer
Style | .stp and .sty | Collection of melodic and rhythmic patterns with variations. Also includes a list of band choices. | Style Designer
Band | .bnp and .bnd | Collection of instrument program changes and patch changes used to play the music, including pan and volume settings for each instrument. | Band Editor
DLS Collection | .dlp and .dls | Collection of downloadable sounds available as instrument sounds. | DLS Designer
Chordmap | .cdp and .cdm | Collection of variable chord progressions. Includes a list of Signpost chords. | Chordmap Designer
Template | .tpp and .tpl | Replaced in DX 8.0 by segments using chordmaps. Combines styles or patterns with variable chord progressions. | Segment Designer
Wave | .wvp and .wav | Digitally recorded sound files. | Wave Editor
Audiopath | .aup and .aud | Setup for routing playback through synthesizers and effects. | Audiopath Designer
Script | .spp and .spt | Scripted routines of computer commands. | Script Designer
Toolgraph | .tgp and .tgr | Configuration for applying simple effects without the use of synthesizers. | Toolgraph Designer
Container | .cop and con | Container for multiple components that you can deliver to software developers. | Edited only in the project tree

In the previous table, each component type is shown with two file extensions. The first extension is used when the file is under construction in DirectMusic Producer (authoring mode). The second extension is used when the file is ready to play in an application or Web page (run-time mode). DirectMusic Producer can load files in both forms — it converts a run-time file into an authoring file. For more information about using run-time files, see Delivering Run-Time Files.

Sub Components

Some components contain three types of subcomponents, as shown in the following table.

Subcomponent Component Description Design Module

Band | Style or Segment | Collection of instrument program changes and patch changes designed specifically to play the style or segment. | Band Editor
Pattern | Style or Segment | Collection of individual instrument parts containing melodic and rhythmic figures that can adjust to different chords. | Pattern Editor in the Style Designer
Motif | Style | Melodic figure, usually brief, or a combination of sound to layer over other music. | Pattern Editor in the Style Designer
Embellishment | Style | A type of pattern, usually brief, designed to provide an intro, end, break, or fill in the music. | Pattern Editor
Sequence | Segment (contained only within the Sequence track of a segment, but not in the project tree). | MIDI notes and data for fixed playback of notes. | Sequence Editor


What Each Component Contributes to a Composition

When composing music in the traditional way, you might first decide on a particular genre, such as '50s rock or classical Viennese. Then, you might choose instrumentation, create melodic and rhythmic lines, and develop harmonies that evoke the nuances you want to create. You do not necessarily follow this order with every composition, but the basic elements remain fairly constant.

Each DirectMusic Producer component and subcomponent is responsible for one of these basic elements when you compose music. To better understand the DirectMusic Producer components, think of what each contributes to the composing process. The following table gives you a general picture, while the descriptions provide more detail.

Component or subcomponent |  | What it does
Segment | Provides a timeline of beats and measures, and provides tracks in which you combine all music elements.
Style | Stores a collection of rhythmic and melodic patterns, motifs, and embellishments, plus a list of band choices for playing them.
Pattern | Stores individual instrument parts that each contain up to 32 variations, with notes that adjust to chords during playback.
Motif | Used as a special pattern to be interactively layered over existing music.
Embellishment | Provides an intro, end, break, or fill pattern at selected times in the performance.
Band | Provides instrumentation.
DLS collection | Provides a variety of instrument sounds, including custom sounds.
Sequence | Provides fixed playback of MIDI notes and data.
Chordmap | Provides a variable chord progression.
Wave | Provides fixed playback of sampled sound that can be played in a segment, or used in a DLS instrument.
Audiopath | Provides instructions for playback using synthesizers and audio effects.
Container | Provides packaging for all music files.
Script | Provides custom access to computer commands.
Toolgraph | Provides simple audio effects such as echo and delay.

Following are detailed descriptions of each component and subcomponent.

  • Segment

    A segment is the basic unit of a DirectMusic performance. A segment is similar to a framework you use to combine multiple music elements, including MIDI files, wave files, and DirectMusic Producer components, such as styles and bands. You use the segment to control all playback of the elements you insert, playing them individually or combined.

    A segment has numerous tracks, each designed to contain a different type of element. For example, bands are inserted in a segment by placing them into its Bands track.

    You can specify the length of the segment—number of measures—and for any elements you place in a segment, you can specify parameters, such as the tempo, start and stop times, number of repeats, and instrument substitution.

    You can create three basic types of segments: style-based, wave-based, or sequence-based. After you insert a style, wave, or MIDI sequence as the main musical element, you can add any other tracks you like and fill them with other elements to enhance the segment.

    A style-based segment is typically used to provide variable music. The segment contains one or more styles, and plays the variations in the styles by combining them with chords, bands, and other musical elements to create a complete musical piece. See Style-Based Segments.

    A sequence-based segment is typically used to play a fixed sequence of MIDI data, with options for added flexibility. The segment contains a sequence of MIDI data that is either imported as a MIDI file, or created in the segment using the mouse or MIDI recording. The sequenced notes and rhythms are combined with bands and other musical elements to create a complete musical piece. See Sequence-Based Segments.

    A wave-based segment is typically used to play one or more wave files, with options for added flexibility. Waves are created using a separate software application, and are generally created by digitally sampling sounds. You can add tempo changes, volume changes, other wave files, MIDI sequences, or any elements you like to enhance the segment. See Wave-Based Segments.

  • Style

    A style component stores patterns of rhythmic and melodic phrases that can be strung together and combined to create a musical performance. Styles also contain embellishments that provide an intro, end, break, or fill in the performance, plus individual motifs—special sounds or patterns played on command—that can be layered over the background patterns, and bands used to play the style. The combination of patterns, embellishments, motifs, and bands can evoke certain music genres, such as bluegrass, Latin, or funk.

    Note content of a style is primarily stored in its patterns. A typical style contains several patterns, providing a choice of phrase lengths, various intensity levels, and other options. Each pattern can contain multiple instrument parts, and within each instrument part there can be as many as 32 variations.

    Styles are at the heart of DirectMusic Producer and its ability to create variable music. A modest style that uses only six instruments with each playing 16 variations of a pattern has over 16 million potential playback combinations. Even with the potentially vast content of styles, their streamlined size makes them fast and robust devices for the delivery of interesting music performances. For information about creating or modifying styles, see Style Designer.

  • Band

    A band component stores a collection of instruments to play your music. It is common to have more than one band assigned to a single style; this makes a variety of arrangements possible. You can assign any instruments to a band, including DLS instruments you design. For information about creating and modifying bands, see Band Editor.

  • DLS Collection

    The sounds in a DLS collection are used to make up the instruments in band components. The DLS collection defines musical instruments in terms of downloadable sounds rather than hardware wavetable synthesis. It is used with Microsoft Synthesizer to play music through software synthesis rather than using synthesized sounds that are built into a MIDI sound card or external playback device. In the future, most hardware will support DLS. However, you can use the Microsoft Synthesizer to take advantage of DLS in the absence of synthesizing hardware.

    You can modify sounds in an existing DLS collection or create your own DLS collection from custom sounds. For information about creating and modifying DLS collections, see DLS Designer.

Important The GM.dls collection supplied with DirectMusic uses the GM/GS® Sound Set, which is trademarked by the Roland Corporation, and is the legal property of the Roland Corporation. The GM.dls cannot be modified and must be redistributed in its entirety and without alteration. The component sounds and waveforms in the Roland GM.dls collection must not be used as source material to create other DLS sounds or collections. Please be certain to read the Legal Information regarding the use of the GM.dls. In addition, for any component you use, read any copyright information in the Properties window of the file.

  • Chordmap

    The chordmap component contains a collection of chords that define a varying harmonic structure for a music piece. The collection of chords is based on a scale, so a chordmap usually reflects a particular tonality, such as major, harmonic minor, or natural minor. You organize the chords in a chordmap to create musically sensible paths leading from one chord to another. Chordmaps also interact with styles so that the patterns of the style are altered to fit the chords and scales of the chordmap. For information about creating and modifying chordmaps, see Chordmap Designer.

  • Pattern

    A pattern is a subcomponent contained in a style and establishes rhythmic and melodic lines for particular instruments. You can define numerous variations for each pattern to add interest to the music. For information about creating patterns, see Creating a New Pattern.

  • Motif

    A motif is a subcomponent contained in a style. It is a brief melodic or rhythmic figure or a sound you design to layer over other music. Motifs can play any time during a performance. Think of motifs as instrumental solos that play without interrupting the music that is already playing.

    A motif is often designed to respond interactively to user events, such as clicking an object, or to programmatic events, such as an event in a computer game. Motifs play over the music that is currently playing. The sound of the motif may vary according to how its instruments are configured in the band that is in use. For information about creating motifs, see Motifs.

  • Wave

    A wave is usually an individual sound that is digitally recorded or sampled from a musical instrument or other sound source. A wave file is typically very short, with a duration of less than a second. A short wave file can be played repeatedly to create a sustained sound, and its pitch can be altered to play various frequencies for high notes and low notes. A wave can exist as a stand-alone component in the project tree, or included in a DLS instrument as a source of sound. For information about editing waves and including them in the design of DLS instruments, see DLS Designer.

    You can create longer waves that last for several seconds by recording the sound output from a variety of sources. Depending on the length of the recorded sound, you may wish to play the wave as part of a performance without repeating the wave. Thus, the wave plays as a brief recorded sound, like a sound effect or motif that plays over other music as part of a segment. For information, see Wave and MIDI Export Toolbar.

  • Sequence

    A sequence is fixed MIDI playback data. It can be any length, and contain any number of individual instrument parts. Each part in a sequence can have its own continuous controllers that affect playback of MIDI notes in the part. It is stored only in the Sequence track of a segment, and does not have an icon in the project tree. See Sequence Editor. You can import an entire MIDI file created in another MIDI application. The file is imported into DirectMusic Producer as a segment, and all MIDI data is places into the Sequence track of the segment. See Importing a MIDI File as a Segment.

  • Audiopath

    An audioPath is playback configuration for which synthesizers and playback devices are used to play your DirectMusic Producer files. This configuration can be saved along with your files so that they always play with the proper settings for balance, playback port usage, and the use of audio effects such as reverb and chorus. See AudioPath Designer.

  • Container

    A container can be used to package together several music files into a single file that you can deliver to a developer for use in a computer game, Web page or multimedia application. You can create a container file in the project tree, and then insert references to any number of components into the folders of the container. After creating a large number of components in a project, you can collect into a container a set of references to only the files that are necessary to playing a particular DirectMusic Producer piece without actually moving files from their places in the project. See Containers.

  • Script

    A script is set of computer commands that you can create to gain access to DirectMusic system components used to play your DirectMusic Producer files. You can create a script in a DirectMusic Producer project, and enter any script commands you like in the script. See Script Designer.

  • Toolgraph

    A toolGraph is a configuration you can create within a segment for applying simple audio effects such as echo and delay. The effects are applied to selected PChannels in the segment using the logical capabilities of the computer, and before notes are sent to a synthesizer. Thus, the effects are not dependent on a synthesizer creating them. See ToolGraph Designer.


Editing Multiple Components

The various DirectMusic Producer components you create work together to form a composition. As you play one component, it often must reference the data from another component. For example, a segment file often uses a style file and a band file. If you edit the contents of the style or the band, the behavior of the segment file is altered.

As you work, you can open more than one DirectMusic Producer component at a time. You can also edit a specific component and hear the changes immediately during playback. However, you will hear the changes only in that component. Thus, if another component must reference the data in the component you are editing, you must save the changes before the other component can use those changes. Furthermore, if the other component is playing as you make changes to the first component, you must restart playback for changes to take effect in the other component.

For example, if you are playing a segment that references a style file and you open the style file to change some pattern notes. In order for the changes to be heard in the segment playback, you must save the changes to the style file, and restart playback of the segment.


Editing Window

When you double-click music components in the project tree, they are displayed in the editing pane using the design module for that type of component. In the following illustration, a chordmap component and a DLS component are open.

Although more than one component can be displayed in the editing pane, only one component at a time is active and available for editing. The active component has a blue title bar, while an inactive component has a gray title bar. DirectMusic Producer automatically switches to the required design module for the component displayed in the active window. If you open multiple components, you can resize them by dragging their edges, or you can quickly organize all open windows using the window view commands. For more information, see Window View Controls.


Timeline

Three of the five design modules—the Chordmap Designer, the Segment Designer, and the Pattern Editor in the Style Designer—display a timeline, as shown in the following illustration, along the top of an editing pane.

The timeline displays the following elements about the music in a component:

  • Time Signature

    The time signature setting, not displayed in all components, is controlled by the settings in the style or chordmap components in a project. For more information, see Time Signatures.

  • Measure Barlines

    Measure lines are shown as heavy black lines in the timeline.

  • Beats

    Beats are shown as thin blue lines in the timeline.

  • Grid Divisions

    Grid divisions of each beat are shown as thin gray lines in the timeline in Pattern Editor only. They are not shown in the timelines in Chordmap Designer or Segment Designer. However, the grid divisions are present in all three design modules, and can affect the positioning of the cursor and notes in the editing pane.

    By default, the length of the grid divisions is determined by the time signature of each component, and is typically equal to 1/4 of each beat. Thus, the default time signature of 4/4 has a default grid division of sixteenth notes. Some time signatures with a denominator of 1/8 or less have a default grid division of 1/3 of each beat.

    In the Pattern Editor and Segment Designer, you can choose from a list of many different division values. For information about setting the grid division in a style, see Setting a Style Time Signature and Grid. For information about setting the grid division in a segment, see Segment Grid Divisions.

  • Elapsed Time in Seconds (optional)

    When you click the Real Time Display button, the seconds display in the timeline is turned on. For information, see Real Time Display.

  • Measure Numbers

    When seconds are displayed, you can click the Measure Numbers button to turn off measure numbers.


Real-time Display

In the timeline, you can display the elapsed time in seconds. The elapsed time at a given beat or measure in a file varies according to the tempo and time signature used in the file. For example, the following illustration shows the elapsed seconds if the tempo is 120 beats per minute (bpm) using a 4/4 time signature.

Each four-beat measure takes two seconds to complete. Changing to a different tempo alters the number of seconds required for each measure.

You can click the Real Time Display button in the timeline to toggle among the following three displays in the timeline:

  • Seconds

    A point is shown where each whole second falls. If you change the tempo, the position of each whole second moves earlier or later in the timeline.

  • Measures

    The elapsed time, measured to the nearest 1/100 second, is shown at the beginning of each measure. If you change the tempo, the elapsed time at the beginning of each measure adjusts accordingly.

  • Beats

    The elapsed time, measured to the nearest 1/100 second, is shown at each beat. If you change the tempo, the elapsed time at the beginning of each beat adjusts accordingly.

The following three illustrations show the timeline of a file with a tempo of 80 bpm and a 4/4 time signature, displayed in each mode. With these settings, each beat requires .75 seconds, and each measure lasts three seconds.

The first illustration shows the real-time display using the Seconds option to show each full second and where it falls in the timeline.

The following illustration shows the real-time display using the Measures option to show the elapsed time at each barline.

The following illustration shows the real-time display using the Beats option to show the elapsed time at each barline. The display is expanded using the Zoom feature to show greater detail for each beat.

To choose a mode for displaying the elapsed time

  1. Click the Realtime Display button to show elapsed seconds in the timeline.
  2. Right-click the timeline to display the following shortcut menu.

  3. Click Realtime Display and choose Seconds, Measures, or Beats.


Time and Beat Measurement

In recording and playing your music, DirectMusic Producer uses specific measurements for the timing. In many parts of DirectMusic Producer, you can use settings for measure and beat divisions that give you a high level of control over where a note is placed or where a piece begins playback.

The music timing in DirectMusic Producer can be defined and modified in the following four ways, from simple (measures) to more complex (ticks):

  • Measures

    Standard groupings of beats according to the time signature, such as 4/4.

  • Beats

    The beats within each measure, as defined by the time signature.

  • Grid

    The subdivisions of the beats, such as 16th or 32nd notes, or up to 24 subdivisions per beat.

  • Ticks

    Based on 768 ticks per quarter note.


Snap To Command in the Timeline

By default, dragging the cursor across the timeline selects the music in increments of one grid division. You can choose options so the cursor snaps to a beat, bar, or grid division when you click in a pattern or a segment.

Right-click the timeline and choose the Snap To command to display the following menu.

You can choose an increment of Grid, Beat or Bar, or you can also choose None. This leaves the cursor in the position where you click, with no change or correction.

The setting you choose also affects the behavior of the rectangular insertion marker that appears when you click an open Sequence track or a part display. When you click in a Sequence track or part display, the insertion point snaps to a grid, beat, or bar division according to the setting you choose for the segment or pattern. The length of the insertion marker is also determined by the setting. For example, if you choose Grid, the length of the insertion marker is one grid, and every note you insert has a default length of one grid.

Note The grid division of a segment is set in the Time Signature Properties window. The grid division of a pattern is set in the Style Properties window for the style to which the pattern belongs.

Tempos

In addition to information in the timeline, a tempo is displayed in the Current Tempo box when a style, pattern, or segment is active. For information, see Current Tempo Box.


Time Signatures

All time signatures are set in styles, segments, and chordmaps, and are displayed in the timeline when a style, chordmap, or segment is displayed. If you insert one or more styles into a segment, the segment uses the time signatures of the styles and changes time signatures where each style occurs, as necessary. For more information, see:

  • Setting a Style Time Signature and Grid
  • Setting a chordmap time signature in the Chordmap Properties
  • Segment Time Signatures


Zoom Buttons

The modules that use a timeline—Chordmap Designer, Segment Designer, and Pattern Editor—have a pair of zoom buttons in the lower-right corner of each component window.

Clicking the Zoom button that contains the plus enlarges the contents of the window. Clicking the Zoom button that contains the minus reduces the contents. The timeline resizes to show fewer or more measures in the editing pane.


Selection Buttons

Editing panes in the Segment Designer and Pattern Editor have multiple selection buttons along the left edge for selecting various parts of a file.

Each data track in the Segment Designer and the Pattern Editor has a selection button. You can use selection buttons to quickly select large regions of data for editing. Timelines in the Segment Designer and Pattern Editor also have selection buttons for selecting the entire timeline. You can use the track selection buttons in combination with the timeline to select large regions of a segment or pattern. For more information, see Using the Timeline and Selection Buttons to Cut and Paste Large Regions.

The selection button of a track changes color to indicate different states of readiness for editing. Buttons can beone of four colors:

  • Gray

    Indicates that the track is inactive and unselected.

  • Red

    Indicates that a track is selected. You can select several tracks at a time, and most commands you use affect all selected tracks. For example, you can select multiple tracks and choose Select All in the Edit menu to select the entire contents of all tracks. You can also use the Cut, Copy, Paste and Delete Track commands in the Edit menu to affect all selected tracks.

  • Yellow

    Indicates that a track is active. Only one track at a time can have a yellow selection button. You can enter data or edit in the active track using the mouse or commands on the shortcut menu displayed when you right-click a track. Commands on the shortcut menu affect only the active track. Some commands in the Edit menu are available when a track is active but not selected, and these affect the active track.

  • Orange (or green, depending on monitor settings)

    Indicates that a track is both active and selected.

Commands on the shortcut menu apply only to the active, yellow track, with the exception of the Delete Track(s) command. This command applies to selected red tracks as well.

You can select a track by clicking its selection button, and unselect it by clicking the selection button again.

A track remains active until you activate a different track using one of three methods:

  • Click anywhere in the editing region of a track.
  • Select data in a track.
  • Right-click the selection button of the track.


Using the Timeline and Selection Buttons to Cut and Paste Large Regions

You can use the timeline and the rectangular selection buttons on the left side of the Pattern Editor and the Segment Designer to highlight a large region of a part or a segment and apply the Cut, Copy, and Paste commands to the region. Dragging the cursor across the timeline highlights a section of the component.

Each instrument part in a pattern and each track in a segment has a selection button to the left of it. These buttons set which parts or tracks are included in a selected region. After highlighting a section of the timeline, you can click the selection button to include that part or track.

The material in the part or track is selected over the measures and beats highlighted in the timeline. You do not need to maximize the part display or track to select its material.

You can also click the selection button of a part or track and drag the cursor across a section of the timeline to highlight it. The timeline section that you highlight controls which section of the part or track is selected.

While the timeline is highlighted, click the selection button to add a part or track to the selected group. Click it again to remove the part or track from the selection. While the timeline is highlighted, you can also extend or shorten the selected region by dragging the right end of the highlighted rectangle in the timeline.

You can paste the contents of the Clipboard into a part or track by clicking the selection button of the desired part or track. This indicates the location where the contents of the Clipboard will be inserted.

Note When you paste the contents from the Clipboard into a part or track, you must choose the correct part or track by first selecting the button for that part or track. If you have the wrong selection button chosen when you paste the contents, use the Undo command on the Edit menu to correct the mistake.

Note To edit more than one part or track at a time, use the Cut, Copy, and Paste commands on the Edit menu. The operation is performed on all parts or tracks that have active selection buttons. If you are editing only one part or track, right-click the desired part or track to display a shortcut menu for the operation. The operation is performed whether or not the selection button for that part or track is activated.

Snap To Command

Dragging the cursor across the timeline selects the music in one-beat increments. To make selecting notes and placing an insertion point easier, you can set the cursor to snap to a grid, beat, or bar division when you click in a pattern or a segment. To choose a different selection increment, right-click the timeline and choose the Snap To command. For more information, see Snap To Command in the Timeline.

For more information about copying, cutting, and pasting large regions of material in the Segment Designer and the Pattern Editor, see:

  • Selecting and Editing Notes
  • Using the Timeline and Selection Buttons to Cut and Paste Notes


Insertion Point

The insertion point is a thin, vertical line that is activated when you click in the editing pane. The following four design modules use this insertion point to indicate where material is inserted in the editing pane when you use the Paste command:

  • Segment Designer
  • Chordmap Designer
  • Style Designer in the Pattern Editor
  • DLS Designer in the Wave Editor

The following illustration shows an editing pane and an insertion point.

The insertion point shows only the beginning beat and division where copied or cut material is pasted. It does not indicate pitch or vertical position of the pasted material, nor does it indicate the length of pasted material. Because there might be multiple notes stored in the Clipboard consisting of multiple pitches spread over several beats or measures, the insertion point represents only the leftmost position at which the material is pasted.

Snap to Command

Segment Designer, Chordmap Designer, and Pattern Editor use a timeline to indicate the grid, beat, and bars divisions of the music they contain. The behavior of the insertion point in these three design modules can affect how you edit their contents. To facilitate placing the insertion point and pasting Clipboard materials, you can set the cursor so it will snap to the nearest grid, beat, or bar grid division when you click in the editing pane. By default, clicking the mouse in an editing pane places the insertion point in the exact position where you click. You can right-click the timeline to choose the Snap To command and then choose a different increment. For more information see Snap To Command in the Timeline.

When you click in the maximized editing region of a Sequence track in the Segment Designer or a part display in the Pattern Editor, a black, rectangular insertion marker appears along with the thin, vertical insertion point, as shown in the following illustration.

The insertion marker has a different purpose than the insertion point. For more information, see Insertion Marker.


Insertion Marker

When you click in the maximized editing region of a Sequence track in the Segment Designerr or a part display in the Pattern Editor, a black, rectangular insertion marker appears at the point where you click.

The insertion marker is used for entering individual notes with the mouse while working in the Sequence Editor or the Pattern Editor. The marker indicates a single pitch and beat position where the note is entered when you use the Insert Note command, or when you press the INSERT key. For more information, see Entering Notes Using the Mouse and Computer Keyboard.

The insertion marker serves a different purpose than the insertion point. The insertion point only indicates the beginning beat and division where material is pasted and does not indicate pitch or vertical position of the pasted material. The insertion marker shows both the pitch and the length of the note you insert.


File Management

All components and files you edit or view using DirectMusic Producer must be part of a project. A project must exist in the project tree for you to access it. Choose Open Project on the File menu to add a project to the project tree. You can also create a new project and insert components in it. For more information, see Creating New Projects and Components.

You can manage the contents of a project in several ways:

  • File Menu

    The File menu contains commands for file management, such as New, Open Project, Insert Files into Project, Save File, and Save As.

  • Tools in the Standard Toolbar

    There are five buttons included in the Standard Toolbar that can be used for file management: New, Open Project, Insert File, Save Project, and Save File.

  • Shortcut Menus in the Project Tree

    The shortcut menus contain file management options that are specific to the file type. Right-click aan icon in the project tree to display the associated shortcut menu.

  • Drag-and-Drop

    The drag-and-drop feature moves components in the project tree to organize projects and to copy items from one project to another.


Creating New Projects and Components

You can add a new project to the project tree, add new components to an existing project, or create a new project containing components at the same time. For information about the types of components you can create in DirectMusic Producer, see Components and Design Modules.

You can select a Use Default Names option (turned on by default) that assigns default names to the projects and components, or you can enter a custom name. The default name assigned a new project is Project1, Project2, and so on, depending on the contents of the project tree. Default names for components are Band1, Band2, Style1, Style2, and so on, depending on the contents of the project they are in. For information about default names, see Default File Names and Internal Names.

You can use any custom names you want for a project or its components. If you create a project with components at the same time, the custom name you give the project is also assigned to the components. For example, if you create a project with the name Symphony_1, and create band and style components at the same time, the band component is named Symphony_1.bnp, and the style component is named Symphony_1.stp.

If you create multiple components at the same time in an existing project, only the new components use a custom name you enter when creating them.

To add a new project with a default name to the tree

1. On the File menu, click New. The following Create New File(s) window is displayed.

2. In the File Types list, click Project. Press CTRL and click component types in the list to add them to the selected list. You can also drag the mouse across the entire list to select all component types, or press SHIFT and click any two component types to select everything between the two places where you click.

3. With the option for Use Default Name checked, click OK to give the project a default name. The following New Project window is displayed. The default location followed by the project name is automatically entered in the Location box, as shown in the following figure.

4. If necessary, enter a new location or click the Browse button to search for a destination folder on your computer.

5. Click OK. An icon for the new project is added to the project tree. If you selected components to create at the same time, they are inserted in the new project with default names.

Important Note You must have information in both the Project Name and Location boxes. The default location for projects is C:\My Documents\DMUSProducer. Some systems might default to another location, such as C:\documents and settings\user\my documents\dmusproducer\ in a computer using Windows 2000.

If you alter the project name in the Project Name box, the project name is automatically entered into the Location box at the end of the location string. If you alter the project name in the Location box, the Project Name box is not updated. If you alter the Project Name box again, an additional project may be added to the end of the string in the Location Box.

To add a new project with a custom name to the tree

1. On the File menu, click New.

2. In the File Types list, click Project. Press CTRL and click component types in the list to add them to the selected list. You can also drag the mouse across the entire list to select all component types, or press SHIFT and click any two component types to select everything between the two places where you click.

3. Turn off the option for Use Default Names to enable the Name box, and enter a custom name for the project, as shown in the following figure.

4. Click OK. A New Project window similar to the following is displayed. The default location followed by the project name is automatically entered in the Location box.

5. If necessary, enter a new location or click the Browse button to search for a destination folder on your computer.

6. Click OK. An icon for the new project is added to the project tree.

New Components Only

You can use the same commands to create one or more new components in a project. When creating multiple components, you can use default names or enter a new name in the Name box, such as Second_Movement. The new name is used for the file and internal names of all new components.

If a project is not already open when you create a new component, you are prompted to create a new project, and choose a name for it. The name you give to the project is separate from names you give to new components.

To add new components to a project

1. On the File menu, click New.

2. In the File Types list, click the component type you want to create. Press the CTRL key and then click additional component types to add them to the selected list. You can also drag the mouse across the entire list to select all component types, or press SHIFT and click any two component types to select everything between the two places where you click.

3. Click OK to automatically select a new default name for the components, such as Band1 or Chordmap1, or turn off the Use Default Names option to enable the Name box, and enter a custom name for the components, and click OK. For information about default file names, see Default File Names and Internal Names.

4. If prompted to create a new project, enter a name and location for the project, and click OK.

An icon for each new component is added to the project tree, and the component is opened in the Editing Window.

Note When creating a new audiopath or segment, an additional window is displayed after step 3 or 4 in which you can choose options for the new component. See Creating an Audiopath and Creating a New Segment.


Opening an Existing Project

If you have a DirectMusic Producer project on you computer, you can open it at any time. Opening the project adds its icon to the project tree. You can double-click the project's icon (or click the + symbol next to its icon) to display the components contained in the project.


Options for Using Existing Content

In addition to the performance flexibility that DirectMusic Producer provides, you can also reuse existing material in several ways. For example, you can reuse a favorite chordmap component in numerous pieces rather than re-create it every time you use it. DirectMusic Producer includes tools you can use to vary material you reuse, so it sounds different every time you use it.

DirectMusic Producer contains several sample files you can use to begin composing in DirectMusic Producer. In addition, you can easily import existing MIDI files, and save and manipulate them as you want.

The following list contains options DirectMusic Producer provides in reusing existing material. Click an option for a description and additional information:

  • Using Existing Components
  • Modifying Existing Components to Use As Your Own
  • Importing MIDI Files


Using Existing Components

DirectMusic Producer comes with a variety of components to use as a springboard for creating your own components. You can also use existing DirectMusic Producer components without changing them to create original-sounding interactive music.

Important The GM.dls collection is installed in the Windows/System32/Driver folder each time you install the DirectMusic system components in your computer. The default setting in DirectMusic Producer uses the GM.dls collection for playback on all PChannels. The GM.dls collection is available to all projects at all times, and you do not need to add it to the project tree.

The GM.dls uses the GM/GS® Sound Set, which is the property of the Roland Corporation. Please be certain to read the Legal Information regarding the use of the GM.dls. For any component you use, also read any copyright information contained in the Properties window of the file.

  • For information about using existing components, see Adding Existing Components to the Project Tree.
  • For information about the different types of DirectMusic Producer components, see Components and Design Modules.


Modifying Existing Components to Use As Your Own

You can add a component to a project, edit it, and then save it as your own. You can also add standard, authoring-mode DirectMusic Producer components or run-time files to the project tree. For more information about this, see Using Files in the Developer Environment.

Important The GM.dls uses the GM/GS® Sound Set, which is the property of the Roland Corporation. Please read the Legal Information regarding the use of the GM.dls. For any component you use, also read any copyright information contained in the properties window of the file.

To modify an existing component and use it as your own

  1. Add an existing component to a project. For more information, see Adding Existing Components to the Project Tree.
  2. Double-click the component icon in the project tree to display it using the appropriate editing module.
  3. On the File menu, choose Save (component) As. The component's name is included on the File menu as part of the command.
  4. Modify the newly named component or, if the component is a style or chordmap, use that component to compose an original segment. For information about creating segments, see Segment Designer.

The following table shows information about modifying components.

To modify this component | See this topic
Band | Band Editor
DLS Collection | DLS Designer
Motif | Motifs
Pattern | Pattern Editor
Chordmap | Chordmap Designer
Segment | Segment Designer
Style | Style Designer


Properties Windows

DirectMusic Producer uses properties windows for setting up and editing components. For any component or object in the project tree, and for nearly every object in the editing pane, you can generally edit its parameters and settings through a Properties window. For example, the following illustration contains the Properties window for a segment component.

Properties window are used to:

  • Change overall settings for a component, such as its length, tempo, key, and playback parameters.
  • Store information about a file, such as copyright notices, author information, and creation date.
  • Access the individual editing functions specific to a component type.

You can view the Properties window of a component by right-clicking the icon of the component and choosing Properties from the shortcut menu. You can also view the properties window of a component by selecting it and pressing the F11 key.

Throughout the DirectMusic Producer environment, properties windows are available for individual elements within a component, including:

  • Individual chords

    Each chord in a chordmap, and each chord in the Chords track of a segment has its own Chord Properties window.

  • Patterns

    Each pattern within a style, and each pattern in the Patterns track of a segment has its own Pattern Properties window.

  • Segment Tracks

    Each track in a segment has its own Properties window. Because the behavior of each track can greatly affect how a segment plays, the Properties window for a track contains numerous settings, including many setting in a Flags tab. See Properties Windows for Segment Tracks.

  • Other elements that make up a component

    A Properties window exists for nearly every element that you insert into a segment, style, audiopath, container, or DLS collection. Information is provided in the documentation for each Direct Music Producer design module. See Creating Content.

Right-click an element to display a Properties window for the item. Select an element and press the F11 key to also display the Properties window.

As you edit components and objects in DirectMusic Producer, you can leave a Properties window open, so that it follows you as you work. Each time you select a new item, the Properties window changes to display the properties of the selected item.


Info Tab

The Info tab contains the general information fields of a component, as shown in the following figure.

The Info tab contains the following settings:

  • Subject

    Name you give the style to describe it.

  • Author

    Your name.

  • Copyright

    Name and date of the copyright.

  • Version

    Four digits for the style to track different versions.

  • Information

    Descriptive information to save with the style.

Note The Info tab of some components contains an Edit GUID button. With this button you can change the globally unique identifier (GUID) number for a component. For more information, see Editing a GUID Number.

To change text in an information field

  1. Double-click a box to highlight its contents.
  2. Type in the new text.


Editing a GUID Number

The Info tab of some components contains an Edit GUID button. With this button, you can change the globally unique identifier (GUID) number for a component.

DirectMusic Producer uses GUID numbers instead of file names to keep track of which components are used in combination with other components. Because it is almost impossible to create two files with the same GUID, this is a more accurate means of distinguishing files than using file names.

The following illustration shows an Info tab window containing the Edit GUID button.

Click the Edit GUID button to display the following window .

You can also click Create New GUID to give a new, unique identifying number to a component. This ensures that two components with the same name are not confused with each other. If you distribute DirectMusic Producer files over the Internet or by other means where there is a chance that another file with the same name may exist, you may want to keep record of the GUID numbers assigned to your files. DirectMusic Producer can create a new GUID for a component.


Customizing the Workspace

You can drag, resize, and move almost every element on the screen in DirectMusic Producer. This is true for the project tree, the output status meters, and all sets of tools and controls.

When you close DirectMusic Producer, it saves the position and size of the project tree, the output status meters, all sets of tools and controls, and all windows in the editing pane.

Docking and Undocking

You can undock the project tree, the output status meters, or any set of tools and controls from their original position at the edge of the DirectMusic Producer window and drag them anywhere. Click on the empty, gray area along the edge of any of these. If you drag an item to the middle of your workspace, it becomes a floating item with its own title bar. If you drag it to another edge of the DirectMusic Producer window, the item is docked again at the edge of the DirectMusic Producer window. The project tree uses either the left or right edge; the output status meters and the tool and control sets use either the top or bottom edge.

You can also double-click on the empty, gray area of a set of tools or the output status meters, or on the gray edge of the project tree, to undock it. Double-click again to dock it again.

Hiding from View

You can display or hide the project tree, the output status meters, or a control and tool set by selecting the item on the View menu. When an item is visible, a check mark appears next to its name.

If the project tree, the output status meters, or a control and tool set is floating, you can click the Close button in the item's title bar to hide it. To display the item, use the commands on the View menu.

Shaping and Resizing

You can resize the project tree by dragging its right edge sideways. If the project tree is undocked, you can resize it by dragging any edge.

Bookmarking

For any arrangement of windows and toolbars that you create on your computer screen, you can create a bookmark that recalls the position and size of the windows and toolbars. This includes all components open at the time you create the bookmark. See Bookmark Controls.


Variability

When you compose with DirectMusic Producer, you can choose different levels of flexibility, depending on the variability you want in the music. By combining components in a variety of ways, you can create music that sounds the same each time it plays, or music that never sounds the same twice.

The following table represents the spectrum of variability you can achieve using DirectMusic Producer components in different combinations. At the low variability level is a segment component that is used as a simple container for a MIDI sequence or a wave; this segment plays the same way each time in a linear manner. At the high variability level is a segment that is used to combine the full variability of a chordmap and a style, yielding different results each time it plays.

Low Variability | Medium Variability | High Variability | Comments
Import a MIDI file as a segment and play it without alteration. | Insert band changes in various measures. Insert tempo changes. | Add a Pattern track; move a MIDI part into the Pattern track and create variations. | You can insert more fixed content in Sequence tracks, or add content in other tracks to enhance the MIDI file.
Import a wave file into a segment and play it without alteration. | Create variations of the wave. | Add a Pattern track containing variable notes. | You can insert more fixed content in Wave tracks, or add content in other tracks to enhance the wave file.
 | Create a segment with a Pattern track, and create variations in any part of the pattern. | Add more parts to the pattern. Each part can contain 32 variations. | Pattern notes adjust to chords in the Chord track.
 | Create a style containing multiple patterns. Use a segment with a fixed set of chords that plays a style with variable patterns. | Use groove level changes to control which style patterns are used. | Each variation added to the style increases variability in the segment.
 |  | Create a segment with variable chord progressions that are drawn from a chordmap. Insert styles to play over the chords. | New chords can be drawn from the Chordmap each time the segment is used.

The following links further describe the different levels of variability that you can obtain with components. Additional steps are included for creating more or less variability within each level:

  • Low Variability–Using a Segment to Play Fixed Data
  • Medium Variability–Using a Segment to Play Waves with Variations
  • Medium Variability–Creating Patterns in a Segment
  • Medium Variability–Using a Segment to Play Styles
  • High Variability–Using a Segment with a Chordmap to Play Styles

Note Beginning with the DX8.0 release of DirectMusic Producer, you cannot create a new template. Instead, insert a Signpost track and a Chordmap track into a segment, and use it as you would a template. Template files created using earlier versions of Producer can be opened and played, and will continue to work with the DirectMusic system components.


Low Variability-Using a Segment to Play Fixed Data

DirectMusic Producer

Low Variability–Using a Segment to Play Fixed Data

For low variability, use a segment as a container for an imported wave or MIDI file. You can also record MIDI notes from a MIDI input device, or use the mouse to enter individual notes. To add variety, add other elements, such as tempo changes and band changes.

When you insert a wave in a segment, the segment plays the wave exactly as the wave was originally recorded. You can modify playback of the wave by changing the tempo of the segment, and by looping playback of all or part of the segment. You can insert multiple variations of a wave to create increased variability. See Medium Variability –Using a Segment to Play Waves with Variations.

When you import a MIDI sequence into a segment, you can modify it, and save it to play in a linear, note-for-note manner. Using a segment and an imported MIDI sequence provides low variability because the segment:

  • Plays only a fixed sequence of MIDI notes.
  • Is exactly like playing a MIDI file, although with options for changing instrumentation or choosing a section that loops.

After you import MIDI data as a new segment file, you can open the segment using the Segment Designer to add additional music elements and choose parameters for how the MIDI data plays. You can also display and fully edit the imported MIDI data using the Sequence Editor.

For more information about importing MIDI data, see Importing a MIDI File as a Segment.

For more information about creating and editing a segment, see Segment Designer.

You can create a new sequence of MIDI notes by entering them directly in the Sequence Editor window in one of two ways:

  • By recording from a MIDI input device
  • By using the mouse to enter individual notes

Each sequence of MIDI data is placed in a Sequence track within a segment, and you can add any number of Sequence tracks to a segment.

Playing a sequence of MIDI data in DirectMusic Producer takes advantage of many powerful options for playback. These include the option to:

  • Insert one or more new tempo markings in the segment.
  • Loop and repeat the segment of MIDI data.
  • Define beginning and ending boundaries for playback so only a section of the segment plays.
  • Substitute different bands to play the MIDI data in the segment.
  • Insert mute commands to make a track silent for part of the segment.

Because MIDI data is linear, playing MIDI sequences in a segment does not take full advantage of DirectMusic Producer features for creating variable music files. On the other hand, a DirectMusic Producer piece can always be modified to use the preceding playback options.


Medium Variability-Using a Segment to Play Waves with Variations

DirectMusic Producer

Medium Variability–Using a Segment to Play Waves with Variations

For medium variability, you can insert copies of a wave into 32 variations in the Wave track of a segment. You can edit each copy of the wave using its Wave Properties window to make each variation different. You can also use Wave Editor to create different versions of a wave to insert in the variations. You can insert multiple copies of a wave in a single variation, and combine other waves with it in a variation.

See Wave Track.


Medium Variability-Creating Patterns in a Segment

DirectMusic Producer

Medium Variability–Creating Patterns in a Segment

You can create a Pattern track in a segment, and insert notes that play with variability. Pattern notes respond to chords in the Chords track, and each pattern can have up to 32 variations in each part. See Pattern Track.


Medium Variability-Using a Segment to Play Styles

DirectMusic Producer

Medium Variability–Using a Segment to Play Styles

For medium variability, create a segment with a fixed chord progression, and design a style to place in the segment. Variability increases as pattern variations play with various chords of the segment, and decreases when you insert groove level changes to limit which style patterns can be selected and played.

You can create a style containing numerous patterns, and create a segment containing fixed chord progressions to play the style. The patterns in the style then play over the chords, adjusting to each chord as it occurs.

Using a segment to play a style provides medium variability by playing a variety of style patterns and variations over fixed chord progressions. Although described as medium variability, using a segment to play a style with little control over which patterns from the style are used generates music that varies significantly while it plays. Depending on the limitations that you define for the segment or the style, the segment plays the style using its full variability.

For more information about creating styles, patterns, and variations, see Style Designer.

For more information about creating and editing a segment, see Segment Designer.

There are two ways to adjust the amount of variability that occurs when a segment plays a style:

  • Set limits in the style Variation Choices window for the number of different chord types over which a variation can play.
  • Organize groove levels along the length of a segment to set limits in the style for a range of different groove levels with which a pattern can play.

Each pattern contains multiple instrument parts; within those parts are variations that an instrument can play at any time. To reduce the number of chords that a variation can play over, use the Variation Choices window. This reduces the variability of playback for the style. You can also reduce the chord options for a variation so that it plays with fewer and fewer chords in a segment, to the point where the variation plays with a single chord type in the entire segment.

Each pattern in a style has a groove level that distinguishes it from other patterns in the style. Use groove levels to control which patterns play during different parts of a segment. Groove levels are generally used to reflect the rhythmic or melodic activity of a pattern, but you can assign a groove level to identify a pattern or a group of patterns. You can then place groove level changes in the Groove and Embellishment track of a segment to control which patterns are available at which times during playback.

To reduce the number of patterns that play during part of a segment, insert groove level changes that correspond to fewer and fewer patterns. You can do this to the point where only one pattern is used when a specific groove change occurs in the segment.

When playing a style in a segment over a fixed chord progression, you can use the following options to add greater variability and interest:

  • Insert one or more new tempo markings in the segment.
  • Loop and repeat the segment of MIDI data.
  • Define beginning and ending boundaries for playback so only a section of the segment plays.
  • Substitute different bands to play the MIDI data in the segment.
  • Insert mute commands to make a track silent for part of the segment.
  • Insert a sequence of MIDI notes that play at the same time.

You can exercise as much or as little control as you like over the performance of a segment, building as much variability into segments and styles as needed. The more thoroughly you design segments and styles, the more control you can exercise over variability.

To the extent that you limit the variability, you could have a piece that approaches the complete predictability of a linear MIDI file. For example, using the following options would result in a performance of a segment that sounded the same way each time it played:

  • Assigning a single, specific pattern in the style to play at each groove level used in the segment.
  • Assigning a single, specific variation in the style to play with each chord used in the segment.

To place a style in a segment to play over a fixed progression of chords

  1. In the project tree, open an existing project or add a new project.
  2. Create or choose an existing style.
  3. Keeping in mind the style in step 2, build a segment including a fixed progression of chords. This specifies an overall form for the music, such as its length and number of repeats. The segment can also contain commands for playing embellishments and using different groove levels of the style.

For information about limiting variability in a style, see Creating Nonvarying Styles.


High Variability-Using a Segment with a Chordmap to Play Styles

DirectMusic Producer

High Variability–Using a Segment with a Chordmap to Play Styles

For high variability, create a segment that can change chord progressions frequently. You can create a chordmap file that serves as a source for variable chord progressions in a segment. Playing a style in a segment with variable chord progressions provides the highest level of variability, because new patterns and combinations of parts are played over a constantly changing set of chords. Variability increases as you create more variations in the style patterns, and as you add more chord paths in the chordmap that can be chosen for use in the segment. Variation decreases when you insert groove level changes to limit which style patterns can be selected and played, or create limits to which chords can be used with certain patterns.

You can create a style containing numerous patterns, create a chordmap containing numerous potential chord progressions, and use a segment to combine the contents of the style and chordmap. The result is a performance that provides high variability by using the variable chord progressions of the chordmap, plus the variable choice of patterns and variations in the style.

Each time a segment containing a chordmap is used, a new chord progression is drawn from the chordmap. The patterns and variations of the style play over the new chords, adjusting to each chord as it occurs.

Note Beginning with the DX8.0 release of DirectMusic Producer, you cannot create a new template. Instead, insert a Signpost track and Chordmap track into a segment, and use it as you would a template. Template files created using earlier versions of Producer can be opened and played, and will continue to work with the DirectMusic system components.

You can use any option described in Medium Variability –Using a Segment to Play Styles to control the variability of a segment that is playing a style and chordmap. Depending on limitations you define, the segment plays the style and chordmap using their full variability. For example, in the chordmap, you can choose as many chords as you require to be signposts for points in the chord progression. If you choose a large number of chords, a wide variety is used in the segment. If you choose a small number of chords, then only a small selection of chords is used in the segment.

For more information about creating chordmaps, see Chordmap Designer.

For more information about creating styles, patterns, and variations, see Style Designer.

For more information about using variable chord progressions, see Variable Chord Progressions.

Depending on settings you create, every performance of a segment using a chordmap can be different. For example, you can select options for recomposing the chords of the segment each time the segment loops, so that a different sequence of chords is used every time you hear the segment.


Playback and Recording

DirectMusic Producer provides several options for playing the files you create, recording new music into your files, and capturing a performance for future use. There are also numerous options for setup and control of playback and recording.

Playback

Playback always requires the use of a sound card that is connected to speakers or headphones, or to a separate, external playback device that is connected to speakers or headphones.

There are several playback options for music files you create with DirectMusic Producer, including using various sources for instrument sounds, and various synthesizers, such as the Microsoft Synthesizer, to process the sound that is sent to the speakers or headphones.

These playback options include:

  • Using DLS sounds stored in your computer

    Numerous DLS sounds are provided with DirectMusic Producer. You can also create DLS sounds or use other commercially available DLS sounds.

  • Using a sound card with its set of MIDI sounds

    Most sound cards contain a set of General MIDI instrument sounds.

  • Using an external playback device with its set of MIDI sounds

    Most external playback devices contain a set of General MIDI instrument sounds.

  • Using DLS sounds stored in a sound card or external device.

    Some DLS-compatible sound cards and external playback devices include their own sets of DLS sounds.

For more information, see Playback Devices.

Recording

Recording from an external MIDI input device, such as a MIDI keyboard, requires the use of a sound card in your computer. There are two options for MIDI recording:

  • Recording in real time

    Input notes from an external MIDI input device as time is running at a steady pace.

  • Recording in step time

    Input notes from an external MIDI input device with time advancing only as you are ready.

For more information about using an external MIDI input device, see MIDI Recording.

Capturing

You can use the Wave and MIDI Export tools to capture the performance of a DirectMusic Producer file as it plays in real time, and save it as a wave file or a MIDI file. This includes the use of multiple segments, styles, and motifs playing simultaneously. See Wave and MIDI Export Toolbar

Setup and Control of Playback and Recording

The DirectMusic Producer window includes several toolbars and buttons you can use to set up and control playback and recording. The following topics describe the recording and playback features available in DirectMusic Producer:

  • Transport Controls

    Contains information about the Tempo box and the Play, Play From Start, Stop, Record, Transition, and Tempo Modifier buttons, which comprise the Transport controls.

  • Transport List

    Describes the Transport list, which displays the name of the component selected for playback.

  • Output Status Toolbar

    Describes the buttons and meters that are used to display the output activity of all PChannels during playback. These buttons are used to toggle the output on or off for individual channels.

  • All Notes Off Button

    Stops all sound by interrupting the playback signal.

  • Secondary Segment Toolbar

    Describes the Secondary Segment toolbar, which is used for layering additional components in playback.

  • Transport Options Toolbar

    Describes the transport options, which are used for setting a metronome, a moving cursor for playback, and all playback devices, including DLS and MIDI playback hardware.

  • MIDI Recording Setup

    Describes how to set your choices for MIDI input devices, including the sound card through which MIDI input travels.

  • Synthesizer Status Window

    Describes the Synthesizer Status window, which is used to display the computer memory used by DirectMusic Producer, including the memory used by the Microsoft Synthesizer or other software synthesizers. The number of synthesizer voices used to play a file is also displayed.

  • DLS Conditions Toolbar

    Lets you temporarily choose and edit conditions in the synthesizer that plays DLS sounds, so that you can audition changes without affecting the synthesizer.


Microsoft Synthesizer

DirectMusic Producer uses downloadable sounds (DLS) with the Microsoft Synthesizer, which is a software substitute for synthesizing hardware. The Microsoft Synthesizer is provided free with the Microsoft® DirectX® system components. The Microsoft Synthesizer eliminates the need for MIDI hardware other than a simple sound card to provide a connection to speakers or headphones, and is the simplest way for playing sound from DirectMusic Producer. DLS-compatible software synthesizers are available through other companies as well.

The Microsoft Synthesizer uses wavetable synthesis to provide consistent output across a variety of sound cards. Data that describes an instrument's sound is loaded into the Microsoft Synthesizer, and the instrument sound is played just as any other MIDI instrument sound. The default setup for DirectMusic Producer sends all playback output through the Microsoft Synthesizer.

One advantage of using the Microsoft Synthesizer is that it provides consistent playback on all systems, regardless of the brand or model of the sound card. Because Microsoft Synthesizer is included in the DirectX system components, it is generally distributed with multimedia software applications and games. The DirectX system components are also installed with the Microsoft® Windows® 98 and Windows 2000 operating systems. You can also distribute the DirectX components to any other Windows user. This ensures that virtually all Windows users will hear the same instrument sounds using the Microsoft Synthesizer.

While you are working with DirectMusic Producer on your computer, you have several options for playback, including through the Microsoft Synthesizer, through the built-in synthesizer in a sound card, and through an external playback device. For information, see Playback Devices.

DirectMusic Producer follows the General MIDI specification for sending instrument information to any playback devices you use. If you want to use MIDI hardware equipment for playback, you must make certain that the hardware accepts General MIDI patch changes (most Windows-compatible sound cards are General MIDI compliant). If you do not have a General MIDI device, DirectMusic Producer cannot use the correct instrument sounds. In this case, it is recommended that all playback use the Microsoft Synthesizer. For information about changing from the default setup for playback, see Transport Options Toolbar.

If you are using MIDI input to enter notes in to a file, you have the option of using MIDI hardware equipment, either an internal sound card or an external MIDI device, for recording input or playing back output. For information about recording setup, see MIDI Recording Setup.


Transport Controls

The DirectMusic Producer window contains a group of buttons and settings called Transport controls, shown in the following figure, for the recording and playback of DirectMusic Producer files.

The Transport controls are typically displayed at the top of the DirectMusic Producer window, although you can drag them as a set to any position on your screen. You can also hide them from view. For more information, see Customizing the Workspace.

The Transport controls include the following:

  • Transport List

Shows the name of the primary component selected to play.

  • Play From Start Button

Begins playback from the beginning of the selected component.

  • Stop Immediate Button

Stops playback without waiting for a boundary to be reached in the file (this button is displayed only while a component is playing).

  • Play Button

Begins playback from the current position of the cursor.

  • Stop or Stop at Boundary Button

Stops playback at a boundary you set in the Segment Properties window. This button is displayed only while a component is playing.

  • Toggle Recording Button

Enables recording from a MIDI input device when you edit with certain design modules.

  • Transition Button

Enables a smooth audio transition between two components that contain a timeline, without stopping the playback of one to start another.

  • Current Tempo Box

Displays the playback tempo of the active component, and can be used to adjust the playback tempo.

  • Tempo Modifier Button

Tests a modified tempo.

Note When you are using DLS Designer, the Play and Play From Start buttons function identically. Clicking either button starts playback from the beginning of the wave and the position of the cursor is ignored. Similarly, the Stop Immediate and Stop buttons both function as Stop Immediate.

In addition to the Transport controls, there are multiple secondary transport control sets, displayed on the Secondary Segment toolbar by default, used for combining the playback of multiple components. For more information, see Secondary Segment Toolbar.


Transport List

The Transport list, contained in the Transport controls, is a drop-down list that displays the name of the DirectMusic Producer component selected to play. Generally, a component is entered in the list as soon as you activate it in the editing pane.

The following figure shows the Transport list with Pattern1 of the My Style.stp component ready to play. Clicking the Play From Start or Play button plays the component immediately.

Some components cannot be entirely included in the Transport list. Instead, only the subcomponents can be shown. For example, an entire style cannot be included in the list. You must choose one pattern in the style to use in the list.

The following table shows which components and subcomponents can be displayed in the Transport list. Only items shown in bold can appear in the list. If a component name is shown in italic, it cannot be entirely included in the list. You must select a subcomponent shown in bold to insert in the list.

Component Subcomponents Comments

Segment |  | Appears with a three-character extension of .sgp.
Style | Patterns, Motifs | Both patterns and motifs appear in the list with an extension of .stp.
DLS Collection | DLS Instruments, Waves |
Chordmap |  | Appears in the list with an extension of .cdp. You must choose a style to use for auditioning a chordmap. For more information, see Auditioning a Chordmap.
Band |  | Bands cannot appear in the list. You can audition a band by opening a segment or style that contains the band. For more information, see Auditioning a Band.

You can click a segment, pattern, motif, DLS instrument, wave, or chordmap in the editing pane or select it in the project tree to activate it. As you do, the Transport list is updated to show the name of the item you select.

You can also click the Transport list to display a list of components in the project. Only components that have been opened at least once in the second tier in the project tree—the component's internal name has been displayed—appear in the list.

The component selected in the Transport list is the primary component used in playback. You can also use the Secondary Segment toolbar to select additional components to play in with the primary component.

A band cannot be shown in the Transport list. However, you can open a band and hear it play as you change it. The music material from a style pattern or a segment must be loaded in the transport playback memory and the band must be placed in the style or the segment. You can select a style pattern or segment so its name appears in the Transport list, and then double-click a band in the style or segment to open Band Editor. With a band displayed in the editing pane, you can click the Start or Play button to hear the band play the style pattern or segment shown in the Transport list. For more information, see Auditioning a Band.


Play From Start Button

The Play From Start button begins playback from the beginning of the component that is active and appears in the Transport list. You can also press the shortcut keys ALT+< (less than) to begin playback from the beginning of a component.

During playback, the Play From Start button changes to the Stop Immediate button as a component begins playing.


Stop Immediate Button

During playback, the Play From Start button changes to the Stop Immediate button as a component begins playing. The Stop Immediate button stops playback without waiting for a boundary to be reached in the file (see Stop or Stop at Boundary Button for explanation).

You can also press the shortcut keys ALT+< to stop playback. When multiple files are playing, as when you play a primary segment and a secondary segment, click Stop Immediate button to stop all files. Press the CTRL key as you click the Stop Immediate button to stop playback of the primary file only, while all other files continue to play.


Play Button

The Play button begins playback from the current position of the cursor. You can also press ALT+> (greater than) to start playback from the cursor position.

During playback, the Play button changes into the Stop or Stop at Boundary button as a component begins playing.

If the component being played is selected in the project tree but is not open in the editing pane, then there is no cursor showing in the component, and the Play button starts playback at the beginning.


Stop or Stop at Boundary Button

During playback, the Play button changes into the Stop or Stop at Boundary button as a component begins playing. You can also press ALT+> to stop playback.

When segments are playing, the Stop or Stop at Boundary button stops playback at a boundary that you set in the Segment Properties window. Thus, when you click the button, playback stops at the next bar, beat, or grid division, or immediately, depending on the performance boundary setting you chose for the segment. For more information, see Segment Properties.

When multiple files are playing, such as when you play a primary segment and a secondary segment, click the Stop or Stop at Boundary button to stop all files. Press the CTRL key and click the Stop or Stop at Boundary button to stop playback of the primary file only, while all other files continue to play.


Toggle Recording Button

The Toggle Recording button enables recording from a MIDI input device when you edit with certain design modules. You can also press ALT+? (question mark) to record from a MIDI device.

For information about recording music from a MIDI input device, see MIDI Recording.


Transition Button

The Transition button enables a smooth audio transition between two components that contain a timeline, without stopping the playback of one to start another. You can also press ALT+" (quotation mark) to enable an audio transition.

For information about creating transitions and using the Transition button, see Transitions.


Current Tempo Box

The Current Tempo box in the Transport controls displays the tempo in beats per minute (BPM) of the active component. The tempo shown in the Current Tempo box adjusts when you make a new component active.

You can use the Current Tempo box to edit the tempo of a component by entering a new tempo, in increments of .01 beats per minute, from 1 to 1000 beats. The tempo is saved when you save changes to the component.

Only two types of DirectMusic Producer components have a tempo:

  • Styles
  • Segments

A style has one tempo for all the patterns and motifs it contains. Segments can contain multiple tempos—as many as one per beat—and the value shown in the Current Tempo box reflects the tempo at the point where the cursor is located in the segment. For information about the behavior of the Current Tempo box when a segment is the active component, see Segment Tempos.

Other DirectMusic Producer components—for example, chordmaps, DLS collections, and bands—do not have tempo markings. When these components are active, the Current Tempo box is disabled.

When a style is the active component, you must select a pattern or a motif in the style window to see the style's tempo appear in the Current Tempo box.

If the active component is playing and you activate a different component, the Current Tempo box is not updated until you stop playback. Similarly, if you change the component in the Transport list while the active component is playing, you must click the Transition button to hear a new tempo take effect.

Secondary segments use the same tempo as the primary component, and therefore do not affect the Current Tempo box. For more information, see Secondary Segments.

Note The position of a tempo marking in a segment might fall to the left of the cursor—for example, in a previous measure. Thus, the Current Tempo box reflects the tempo marking that is to the immediate left of the point where the cursor is located. For more information, see Segment Tempos.


Tempo Modifier Button

The Tempo Modifier button is used to audition the active DirectMusic Producer component using a modified tempo. The tempo shown in the Current Tempo box is multiplied by the percentage value in the Tempo Modifier button whenever the button is active.

The default setting is 50 percent of the tempo displayed in the Current Tempo box, thus slowing the tempo down to one half its original value. For example, a component whose original tempo is 120 BPM is played at 60 BPM when a tempo modifier value of 50% is used. A tempo modifier value of 200% plays the component at 240 BPM.

To activate the tempo modifier, click the button. You can also open the following Alternate Tempo window to adjust the percent by which the tempo is modified:

To adjust the value for tempo modifying

  1. Right-click the Tempo Modifier button. The Alternate Tempo window is displayed.
  2. In the Alternate Tempo box, type or select a percentage. Possible settings range from 1 percent to 10,000 percent of the tempo in the Current Tempo box.

Note There is a delay of approximately 1/2 second before playback is affected by clicking the Tempo Modifier button (or changing the Alternate Tempo value while the modifier is active).

The Tempo Modifier button and the Alternate Tempo value are only for auditioning playback. You can insert tempo changes in the Tempo track to alter the tempo of a segment in any measure. Tempo changes in the Tempo track occur immediately when they are reached during playback.


Output Status Toolbar

When DirectMusic Producer sends playback output signals, a MIDI signal output status button and meter appears for each active channel. Until a channel is used for playback during a work session, the buttons do not appear in the DirectMusic Producer window. Each time a channel is used for playback, a button is added to the window and remains in view until you close DirectMusic Producer. DirectMusic Producer displays a row of buttons, shown in the following figure, each with a flashing, yellow output meter that indicates playback activity for that channel.

In addition to the playback channel (PChannel) number and the output meter, each button contains the name of the PChannel. You can assign a name to a PChannel in Band Editor or Style Designer. That name is used throughout the project for that PChannel.

When active, output status buttons are displayed next to the All Notes Off button. They usually appear near the upper edge of the window, although you can drag them as a set to any position on your screen. For more information, see Customizing the Workspace.

A flashing, yellow output meter in a button indicates that a playback signal is coming from the PChannel. The absence of a yellow rectangle indicates that the channel is inactive or the part has no notes playing. The height of the flashing rectangle indicates the relative volume level for each channel. Click a button to toggle playback output on or off from the channel. Double-click a button to solo the PChannel, which turns off playback for all other PChannels.


All Notes Off Button

The Output Status toolbar contains an All Notes Off button, shown in the following figure, that you can click to halt all output to the speakers. This is sometimes referred to as a MIDI panic button.

When a signal to end one or more notes—such as a Note Off command in a MIDI playback sequence—has been interrupted, you may hear notes continue to play after you press the Stop button. In this case, use All Notes Off to send a Note Off command to all MIDI devices and PChannels.


Transport Options Toolbar

The Transport Options toolbar consists of a dropdown list and four buttons, shown in the following figure, that are used for MIDI setup, playback, and recording.

These tools are typically displayed at the upper edge of the window, but you can drag them as a set to any location on your screen. You can also hide them from view. For more information, see Customizing the Workspace.

The Transport Options include:

  • Audiopath List

    Provides a choice of audiopath files. Each file contains a performance configuration of settings for playback port usage, balance, and the use of audio effects.

  • Toggle Metronome button

    Enables or disables a metronome click for recording or playback in a component using a timeline (segments, styles, or chordmaps).

  • Toggle Play Cursor button

    Switches on or off the display of the thin, vertical, play cursor that moves across the editing pane and timeline during playback.

  • Toggle MIDI button

    Switches on or off the use of MIDI devices, including software synthesizers and MIDI hardware devices. This facilitates using separate MIDI applications at the same time.

  • MIDI/Performance Options button

    Displays a MIDI/Performance Options window for selection and setup of MIDI input hardware.


Audiopath List

The Audiopath list provides a choice several standard audiopaths. An audiopath is a performance configuration of settings for playback port usage, and the use of filters and audio effects such as reverb and chorus, arranged so that each PChannel has a specific set of devices and effects for playback.

You can click the list to choose an audiopath to be used as the default performance configuration for all PChannels. Several standard configurations are provided in the list:

  • Standard 3D Dry
  • Standard Mono
  • Standard Stereo
  • Standard Stereo & Reverb

Each of these configurations uses a standard effect or combination of two effects that are Microsoft DirectX Media Objects (DMO), included whenever you install DirectX on a computer. These are stored in Microsoft DirectSound buffers, and have fixed settings for bus and buffer usage. You cannot edit the standard configurations.

In addition to these standard configurations, all audiopath files in the project tree are included in the Audiopath list. You can create and edit your own audiopath files using Audiopath Designer.

When you choose a default audiopath, the configuration is applied to all PChannels in a project, unless there is another audiopath file that is specifically set up to apply a different configuration to a PChannel. For more information, see Audiopath Designer.

Note: Standard audiopaths are set to use PChannels 1 through 128 within DirectMusic Producer. Therefore, when using a standard audiopath, PChannels above 128 will be played silently. To use PChannels above 128, you must create a custom audiopath. Alternatively, a software developer can use DirectMusic API settings to access PChannels above 128 in a standard audiopath.


Toggle Metronome Button

A metronome for playback and recording is available in your files. You can click the Toggle Metronome button in the Transport Options toolbar to switch the metronome on or off. You can also right-click the Toggle Metronome button to display the following Metronome Options window.

By default, the metronome uses the set of drum or percussion sounds assigned to PChannel 10. The Metronome Options window consists of the following settings:

  • Velocity

    Adjusts the MIDI velocity (volume) of the metronome. The default is 100.

  • Note Value

    Sets a MIDI pitch for the metronome. Choose pitch to select one of the 127 percussion sounds available. The default is C# - Side Stick.

  • PChannel

    Sets the PChannel for the metronome.

  • Count-In Bars

    Sets the number of measures that the metronome plays before the beginning of playback or recording begins. The pattern or sequence does not begin, and the cursor does not begin moving across the editing pane, until after the count-in bars are completed. The default setting is Record Only, which plays count-in bars only as you begin recording. You can choose the All Playback option to have the metronome click during count-in bars for both playback and recording.

Note You can record material in a Sequence track or pattern during the final count-in bar (the last measure that occurs before the actual beginning of the component) as you begin are recording. For information, see Pick Up Measures.


Toggle Play Cursor Button

The Transport Options toolbar includes a Toggle Play Cursor button that switches on or off the display of the thin, vertical, play cursor that moves across the editing pane and timeline during playback. The play cursor indicates the playback location in a component at any given moment.

The cursor is used in the editing pane of most DirectMusic Producer components to indicate the insertion point. For components that include a timeline (segments, patterns and waves), the default setting is for the cursor to move across the editing pane during playback. When you click the Toggle Play Cursor button to turn off this option, the cursor remains stationary in the editing pane as it does in components that have no timeline.


Toggle MIDI Button

You can click the Toggle MIDI button to switch on or off MIDI devices, including software synthesizers and MIDI hardware devices. The button connects or disconnects DirectMusic Producer to the playback devices you select in the Audio Path Editor.

If you are using other music and sound applications at the same time as DirectMusic Producer, you can use the Toggle MIDI button to temporarily switch off the MIDI connection for DirectMusic Producer. You can then switch to the other application and use MIDI devices without conflicting playback output signals from DirectMusic Producer.


MIDI/Performance Options Window

The Transport Options toolbar includes a MIDI/Performance Options button that displays the MIDI/Performance Options window for selection and setup of MIDI input hardware for recording music into DirectMusic Producer. To use MIDI recording, you must make certain that DirectMusic Producer is connected to the MIDI sound card in your computer and that your MIDI input device is hooked up to the same sound card.

You can open the MIDI/Performance Options window by clicking the MIDI/Performance Options button in the Transport Options toolbar.

The following MIDI/Performance Options window is displayed.

The MIDI/Performance Options window contains the following settings:

  • MIDI input device

    From the drop-down list, select the MIDI sound card that your MIDI input device is connected to.

  • Echo MIDI input device

    Echo MIDI sends input signals immediately to the Microsoft Synthesizer or to a separate playback device. This allows you to record MIDI input while hearing the actual instrument sounds that will be used for playback of your files. This is especially useful if your files will be played using DLS instrument sounds. For more information, see Echo MIDI Input.

  • Adjust Latency

    Select a latency value between 0 and 9999 ms (milliseconds) for the Microsoft Synthesizer. Latency is the delay between the time a port receives a message and the time it has synthesized enough of a wave to play. You can adjust the latency to improve playback when the Microsoft Synthesizer has a great deal of information to process, such as when many DLS instruments are used at one time.

Note Settings below 10 milliseconds can cause the Microsoft Synthesizer to continue playing for several seconds after playback is stopped. You can use the All Notes Off button to stop any notes.

  • Persist to all Audiopaths

    Use this option to force the latency to always equal the Adjust Latency value. If this is not checked, then the latency will revert to the default value whenever the default audiopath is changed.

  • Download Status

    Choose whether or not to download the entire GM.dls collection and all open custom DLS collections to the default audiopath. Setting both of these buttons to Unload will more accurately reflect the environment of an application, where all instrument downloading must be done through scripting or DirectMusic API calls.

  • Number of Voices

    Set the desired number of simultaneous voices available for the default synthesizer and any synthesizers that support output to DirectSound buffers.

  • Sample Rate

    Set the desired sample rate for the default synthesizer and any synthesizers that support output to DirectSound buffers.

  • Default Synthesizer

    Set the default synthesizer, used for all standard audiopaths and for the Default Synth option in all custom audiopaths. If the chosen default synthesizer does not support 128 different PChannels, then the standard audiopaths will use the maximum number of PChannels available on the default synthesizer. For the DirectX 8.0 release, the synthesizer referenced by the "Not Specified (Use DirectMusic Default)" option will always be the Microsoft Synthesizer.

If no MIDI sound card appears in either the MIDI Input or Echo MIDI Input drop-down lists, you must make certain that the appropriate MIDI input driver is installed for your sound card. Refer to the owner's manuals for your computer, your sound card, and your external MIDI device for instructions about proper installation of all drivers for your sound card and MIDI input device.

Note Settings in the MIDI/Performance Options window affect only the Microsoft Synthesizer, the Default Synth, and other synthesizers that support output to DirectSound buffers. For all other synthesizers, the only place to edit the settings is in the Mix Group Properties window.


Echo MIDI Input

Files you create will likely be played using an output port that is different from the MIDI input device. For example, you might intend files to play on another user's computer using the Microsoft Synthesizer. Echo MIDI sends input signals immediately to the Microsoft Synthesizer or to a separate playback device. This allows you to record MIDI input while hearing the actual instrument sounds that will be used for playback of your files. This is especially useful if your files will be played using DLS instrument sounds, as it lets you use the DLS sounds in DirectMusic Producer with an external MIDI input device.

To enable Echo MIDI input

  1. In the Transport Options toolbar, click the MIDI/Performance Options button.
  2. In the Echo MIDI Input Device box, select a MIDI input device.
  3. Click the Echo MIDI In check box to enable Echo MIDI for the input device.
  4. In the Output PChannels box, select a range of 16 PChannels (such as 1 through 16, 17 through 32, or 33 through 48) to which output will be sent. Output is sent to the synthesizer you assign in the Audiopath Editor for the Mix Group that includes the 16 PChannels.


Secondary Segment Toolbar

The DirectMusic Producer playback components can play any number of files at a single time, in any order. When you create files to play as part of a computer game, Web page, or multimedia application, bear in mind that a software developer can use the files to provide a musical performance of any length, using the combined sounds of multiple files, with smooth or abrupt transitions. The developer can combine multiple events and music elements with as much layering as desired. For information about creating and using secondary segments, see Secondary Segments.

As you design and edit segments in DirectMusic Producer, you can open and edit multiple files in the editing pane. You can experiment with layering multiple files during playback, using secondary segment control sets to play up to 100 files at the same time.

By default, the DirectMusic Producer window contains a Secondary Segment toolbar, shown in the following figure. If the toolbar does not currently appear in the DirectMusic Producer window, you can display it by selecting Secondary Segment in the Edit menu.

The toolbar contains multiple sets of secondary segment controls that consist of a drop-down list of component names, and a Play From Start button. The Play From Start button for a secondary segment functions just as it does for a primary segment. For information, see Play From Start Button.

When you play multiple files, one file is the primary file, while all others are the secondary files. Thus, the Secondary Segment toolbar is used when a segment of music is playing steadily and another component plays over the top of the first.

You select the primary file by making it active in the editing pane, or by selecting the file in the Transport list. You can select any number of secondary files in the lists on the Secondary Segment toolbar. Up to 99 sets of secondary segment controls can be displayed. For information about the number of controls displayed, see Displaying Additional Secondary Segment Controls.

Only two types of components or subcomponents can be selected in the Secondary Segment toolbar—segments and motifs. These file types are closely related and can be used by software developers as run-time files without alteration. Because a secondary file can be used by the DirectMusic system components when it is stored as a segment, the secondary file is referred to as the secondary segment. For more information, see Secondary Segments.

Performance Boundaries of Secondary Segments

When you click the Play from Start button for a secondary segment, the button changes to a Stop or Stop at Boundary button. This button functions just as it does for a primary segment, that is, playback halts after reaching the performance boundary you set in the Segment Properties window. For information, see Segment Properties.

The Performance Boundary setting also affects how quickly a segment begins playback when it is used as a secondary segment. So that you can experiment with different settings for starting a secondary segment, you can temporarily override a segment's Start Boundary setting using the Secondary Segment Audition Options.


Secondary Segment Audition Options

Every segment has a performance boundary setting in its Segment Properties. Among other things, this setting controls how quickly the segment starts when it is played as a secondary segment. When you click the Play from Start button in a secondary segment control set, the secondary segment begins playing when a boundary is reached in the primary segment that fits the performance boundary of the secondary segment. For information about segment performance boundary settings, see Segment Properties Boundary Tab.

The Secondary Segment Audition Options enable you to experiment with new performance boundary settings for starting playback of a segment when it is used as a secondary segment. You can choose a Performance Boundary setting for a secondary segment that temporarily overrides the segment's performance boundary setting without affecting the original performance boundary settings of the segment.

You can right-click the Play From Start button in a secondary segment control to display a menu, shown in following figure, for how the secondary component will behave when combined with the primary component.

The default setting is Segment's Default. This uses whatever performance boundary is set in the segment properties.

All other settings in a Secondary Segment Audition Options window match exactly the settings of a segment in its Segment Properties window. For information, see the Segment Properties Boundary Tab.

Settings in a Secondary Segment Audition Options window are for audition purposes only, and are not saved as part of the segment. Settings affect only the segment that is selected in the drop-down list of the secondary segment control you are adjusting, and they are retained in the Secondary Segment Audition Options until you change them or until you close DirectMusic Producer. If you want to permanently change the boundary settings of a segment, you can do so in the Segment Properties Boundary tab.

Alternatively, you can give a secondary segment more permanent start boundary and controlling segment settings by selecting options as you insert the segment into the Segment Trigger track of a primary segment. For information, see Segment Trigger Track.

You can save the arrangement and contents of the Secondary Segment toolbar (including settings in the Secondary Segment Audition Options) in a bookmark and select them later. All choices for experimenting with the playback of secondary segments are then recalled. For more information, see Bookmark Controls.


Displaying Additional Secondary Segment Controls

You can create up to 99 secondary segment control sets to select and combine secondary components during playback with the primary component in the Transport list.

At the leftmost side of the Secondary Segment toolbar is a counter box, shown in the following figure, showing the number of secondary segment control sets available. You can select or enter a new number in the counter box.

Depending on your computer screen size and settings, you may not see all Secondary Transport controls on the screen, unless you undock the Secondary Segment toolbar. You can drag the Secondary Segment toolbar from its position at the top of the DirectMusic Producer window to create a window that displays all the secondary segment control sets in the segment.

The undocked window, shown in the following figure, includes the counter box and displays the number of secondary segment control sets shown in the counter box.

You can save the arrangement and contents of the Secondary Segment toolbar (including settings in the Secondary Segment Audition Options) in a bookmark and select them later. All choices for experimenting with the playback of secondary segments are then recalled. For more information, see Bookmark Controls.


DLS Conditions Toolbar

You can use the DLS Conditions toolbar to temporarily audition an alternative DLS-compatible software synthesizer. This lets you audition how your files sound using a synthesizer other than the Microsoft Synthesizer to play DLS sounds.

The default software synthesizer for all playback of DLS instrument sounds is the Microsoft Synthesizer. Click the Add Conditions button to open the following window in which you create new conditions for a different synthesizer.

Enter any name you like to describe the synthesizer choice and its conditions. When you are finished, click OK to add the synthesizer and its conditions to the DLS Conditions list.

Click the Edit Conditions button to open a window showing the current state of the conditions selected in the list. The following figure shows the conditions of the Microsoft Synthesizer.

Note Conditions for the Microsoft Synthesizer are read-only and cannot be edited.

Using an alternate DLS condition in an audiopath If you want to more permanently set a mix group of PChannels to use a different synthesizer, you can create an audiopath that assigns the mix group to the synthesizer.


Playback Devices

When a DirectMusic Producer file is played on a computer, all sound passes through the computer sound card to the speakers or headphones. In a DirectMusic Producer file, you can use a combination of General MIDI (GM) sounds from one or more DLS collections, General MIDI sounds supplied by a hardware playback device, and custom downloadable sounds that you create as part of a DLS collection.

The default playback setup in DirectMusic Producer uses the GM.dls collection of instrument sounds playing through the Microsoft Synthesizer (both are installed in the system folder when you install the DirectMusic system components on your computer). Using these high-quality software products ensures that your files play consistently on all computers.

Depending on the type of sounds you use in your files, there are several options for the type of playback device you use. Options you choose are restricted in some cases by the version of Windows you are using. For system compatibility information, see Output Port Compatibility.

You can organize the PChannels in your files to play through any combination of playback devices you want. You can assign each PChannel to one or more playback devices, or assign multiple PChannels to a single device. You can also use a variety of sound effects, such as reverb and chorus effects, with any PChannel or group of PChannels. For information about organizing PChannel assignments for playback devices, see Audiopath Designer.

The type of playback devices you use depends on several factors:

  • What software synthesizers, such as the Microsoft Synthesizer, you have in your computer
  • What hardware playback devices you have for your computer
  • What playback device will be used by others who listen to your files
  • What types of instrument sounds you want to use in your files

For more information, see What Types of Instrument Sounds to Use.


Output Port Compatibility

Output ports that you can use with DirectMusic Producer include:

  • Microsoft Synthesizer (fully compatible with DirectMusic)
  • Hardware devices that are compatible with DirectMusic—referred to as DirectMusic hardware-accelerated devices
  • Software synthesizers that are compatible with DirectMusic
  • Hardware devices that are not DirectMusic hardware-accelerated—referred to as legacy devices

Whether you can use an output port depends on which version of Microsoft® Windows® you are running on you computer. For each version of Windows, there are some ports that cannot be used.

Using Windows 98 (first edition)

When using Windows 98 (first edition) on your computer, you can use the following ports with DirectMusic Producer:

  • Microsoft Synthesizer
  • Software synthesizers that are compatible with DirectMusic
  • Hardware legacy devices that are not DirectMusic hardware-accelerated

Using Windows 98 (second edition and later versions)

When using Windows 98 (second edition and later versions) on your computer, you can use the following ports with DirectMusic Producer:

  • DirectMusic hardware-accelerated devices
  • Microsoft Synthesizer
  • Software synthesizers that are compatible with DirectMusic
  • Hardware legacy devices that are not DirectMusic hardware-accelerated

Using Windows 2000

When using Windows 2000 on your computer, you can use the following ports with DirectMusic Producer:

  • DirectMusic hardware-accelerated devices
  • Microsoft Synthesizer
  • Software synthesizers that are compatible with DirectMusic

The kernel driver type is compatible only with Windows 2000 and Windows 98 (second edition and later versions), and never appears in the Port Configuration window with Windows 95 or 98 (first edition).

A hardware device using the WinMM driver is a legacy device that does not have a driver designed to work with DirectMusic. These devices can only be used with Windows 95 and Windows 98 (all versions). Windows 2000 does not support legacy MIDI output devices in DirectMusic.

Working with the Synthesizer Status window

When using Windows 2000 or Windows 98 (second edition and later versions), a port that has a kernel driver can also work with the Synthesizer Status window. The Synthesizer Status window displays the number of voices being sent to all DirectMusic-compatible ports. However, if the device has an X in the Ext column of the Port Configuration window, it is considered an external device and will not affect the Synthesizer Status window.

When using Windows 95 or Window 98 (first edition), only software synthesizers that use a user driver type can work with the Synthesizer Status window. No hardware-accelerated devices are supported, and no other hardware devices can work with the Synthesizer Status window.›


Voice Allocation

Every playback port has a maximum number of voices that it is capable of playing at one time. For example, many hardware playback devices can play a maximum of 32 voices. This means that only 32 separate pitches can play simultaneously.

You can choose a maximum number of voices for the Microsoft Synthesizer or another default synthesizer in the MIDI/Performance Options window. You can also open the audiopath properties window for a mix group in an audiopath, and choose a maximum number of voices for other synthesizers you are using.

For each, you can choose a Voices Allocated setting. This setting can be any number of voices from 1 to 1000, but should be less than or equal to the total number of notes the assigned output port (playback device) can play at one time.

The Number of Voices/Voices Allocated setting has no effect on non-DirectMusic-compatible output ports. When using non-DirectMusic-compatible output ports, the default setting of 32 voices is used for the port. All 32 PChannels are sent to the port. The output port must then use its own method to select which notes to omit when the number of voices required to play a file exceeds the capacity of the port. The default number of voices for each port group is 32. If an output port is fully compliant with DirectMusic, DirectMusic Producer sets the Voices Allocated setting to 32 voices, or to the maximum number of voices that the port can support, whichever is fewer. If the Port Configuration window shows a Voices Allocated setting for a port, you can select the port and enter a number in the Voices Allocated setting in the Port Group area, as long as the number does not exceed the maximum voice capacity of the port.

If an output port assigned to the port group is not specifically compatible with DirectMusic, the Voices Allocated setting is not displayed and cannot be edited. The Voices Allocated setting in the Port Group area is dimmed, and the default setting of 32 voices is used for the port.

All output ports except the Microsoft MPU-401 (WDM) device support a Voices Allocated setting.

There is a variety of output ports you can use to play DirectMusic Producer files, including MIDI hardware devices and software synthesizers. Each port has a different capacity for simultaneous playback of multiple voices, and each output port has a different limit for the number of voices it supports. The Microsoft Synthesizer supports up to 1000 voices, while the built-in synthesizer hardware in some sound cards supports fewer voices.

You can use the Voices Allocated setting to control the number of notes sent to an assigned output port at one time. The total number of notes includes all notes of a chord, and any notes playing simultaneously in the instruments used in your file. For example, if you are composing an orchestral score that includes several notes and instruments playing simultaneously, you can assign more voices to an output port. On the other hand, if you need to use only a small percent of the computer CPU memory for music playback, you can assign fewer voices to an output port.

The Voices Allocated setting affects playback only if the number of voices needed to play a file exceeds the number of voices allocated. When this occurs, some PChannels are omitted from playback.

If you are using a DirectMusic-compatible output port, the port can use the PChannel Priority setting you assign to each PChannel. If the port group exceeds its voice allocation, the PChannels with the lowest priority may be dropped so other PChannels can use their voices. This avoids complete interruption of the playback by letting a file continue to play using reduced instrumentation. If you are using a port that is not fully compatible with DirectMusic, the port uses its own method for deciding which voices in the file to omit from playback. For more information about assigning a priority to a PChannel, see Performance Channel Priority.

When using the Microsoft Synthesizer, any voices that are dropped from playback due to limited voice capacity are held for a short period (10 milliseconds) so they can be quickly faded out. This eliminates a clicking sound that occurs when notes are abruptly stopped. Holding notes this extra length causes the Microsoft Synthesizer to briefly exceed the number of voices allocated to it in the Port Configuration window. The expanded number of voices appear in the Synthesizer Status window, and the temporarily expanded number may be much higher than the number allotted.

Note The Voices Allocated setting that you choose is not saved in the run-time files you deliver to a software application or game developer. The setting is only for auditioning the playback of a component in DirectMusic Producer.


What Types of Instrument Sounds to Use

For every PChannel you use in your Producer components, you can assign an instrument sound to be used for playback. Options you choose are restricted in some cases by the version of Windows you are using. For system compatibility information, see Output Port Compatibility.

Using General MIDI Sounds Only

If you create a DirectMusic Producer file using only General MIDI sounds and do not set instrument parts to use custom DLS instrument sounds outside the General MIDI collection, you can use one of the following playback options:

  • GM sounds in the sound card

    In the Port Configuration window, set PChannels to play through the computer sound card using its built-in GM sounds. All instrument parts in the file play using the General MIDI sounds of the sound card.

  • Downloaded GM sounds

    If the sound card includes DLS synthesizer hardware, set PChannels to play through the computer sound card and select the Download GM Set option in the Port Configuration window. This causes all instrument parts in the file to play using the GM.dls sounds that are downloaded to the memory of the sound card. Although more time is required to download the GM.dls to the sound card than to use its built-in GM sounds, the GM.dls sounds can be superior and more consistent than the GM sounds of the sound card.

  • Software synthesizer

    If the sound card has no DLS hardware and has GM sounds you do not want—or does not have built-in GM sounds at all—set PChannels in the Port Configuration window to play through the computer sound card using the Microsoft Synthesizer or another software synthesizer in the Port list. This option is less desirable than the two preceding options because a slight delay during playback might be created by computer memory use from the software synthesizer. This delay does not occur when using synthesizer hardware in a sound card or external device. However, the use of a software synthesizer ensures high-quality instrument sounds by using the DLS and GM.dls sounds.

Using DLS Sounds

If you create a DirectMusic Producer file using DLS sounds, with or without using GM sounds, you can use one of the following two playback options:

  • DLS sounds in the sound card

    In the Port Configuration window, set PChannels to play through the computer sound card. If the sound card includes DLS synthesizer hardware, then DLS sounds are loaded from DirectMusic Producer to the hardware of the sound card. The instrument parts in the DirectMusic Producer file then play through the DLS hardware of the sound card. If the sound card does not include DLS synthesizer hardware, then a default sound is selected by the sound card and is used in place of DLS sounds. Instrument parts in the DirectMusic Producer file that are set to use GM sounds also play through the sound card DLS hardware using the GM.dls sounds downloaded from DirectMusic Producer. Even if the sound card has built-in GM sounds, the GM.dls set in DirectMusic Producer is downloaded to the sound card and is used in their place.

  • DLS sounds through a software synthesizer

    If the sound card has no DLS hardware, set PChannels in the Port Configuration window to play through the computer sound card using the Microsoft Synthesizer, or another software synthesizer in the Port list. This option is less desirable than the preceding option because a slight delay during playback might be created by computer memory use from the software synthesizer. This delay does not occur when using synthesizer hardware in a sound card or external device. However, the use of a software synthesizer ensures high-quality instrument sounds by using the DLS and GM.dls sounds.


Playback Port Configuration

This feature is replaced by Audiopath Designer for the DX 8.0 release of DirectMusic.


MIDI Recording Setup

To use MIDI recording, you must make certain that DirectMusic Producer is connected to the MIDI sound card in your computer, and that your MIDI input device is hooked up to the sound card. In DirectMusic Producer, you can use the MIDI/Performance Options window to select the sound card for MIDI. To display this window, click the MIDI/Performance Options button in the Transport Options Toolbar.


Wave and MIDI Export Toolbar

You can capture the performance of a DirectMusic Producer file as it plays in real time and save it as a wave file or a MIDI file. Using this feature, you can record the simultaneous playback of multiple DirectMusic Producer files, including segments, styles, and motifs. In some cases, all sounds sent to the output ports can be recorded and saved as a wave file, a MIDI file, or both. You can then play the exported file using any application that can open a wave file or MIDI file.

Sound output that is captured when you record a performance includes effects that continuous controller curves on the playback of MIDI information. See Recording Continuous Controller Data.

Note: To use the wave export feature, you must play files using an audiopath that contains the FileOutput DMO. See FileOutput in an Audiopath.

You can click the View menu and select Wave/MIDI Export to display the following set of controls.

The wave export feature works only with sounds that DirectMusic Producer plays through output ports that support wave output. Currently, this is supported only by the Microsoft Synthesizer. Specifically, the Start or Stop Export to Wave File button is enabled only when a PChannel group in the Port Configuration window is set to play using an output port that supports wave output, for example, the Microsoft Synthesizer. Thus, the only music that is recorded is the music played through PChannel groups that use an output port that supports wave output. As a result, you can hear output through other output ports, such as a MIDI hardware device, but it is not recorded.

The wave export feature can record sounds played from Segment Designer, Pattern Editor, and DLS Designer, so long as those sounds are sent through an output port that supports wave output.

Wave recording begins immediately when you click the Start or Stop Export to Wave File button. There may be a period of silence in the recorded file, depending on how soon playback begins after you click the Start or Stop Export to Wave File button.

Note The wave export feature records music from one output port at a time. DirectMusic Producer selects the first output port in the list of PChannel mix groups in the current audiopath that supports wave output. Other PChannel groups that use this output port are recorded.

The MIDI export feature can record sounds played from Segment Designer and Pattern Editor, but not from DLS Designer. Sounds can be sent through any output port. Only material that can be transmitted as MIDI signals is recorded in the MIDI file. After you click the Start or Stop Export to Wave File button, MIDI recording does not begin until you click the Play at Start or the Play button to begin playback of the file in the Transport list. This eliminates silent measures at the beginning of the MIDI recording. MIDI recording can begin at the first note in the file, or with a lead-in measure. See MIDI Export Options.

MIDI recording stops automatically when you click the Stop Immediate button or the Stop button. If you are recording a segment and the playback does not change to another component, MIDI recording stops automatically when the segment stops playing.

You can use the MIDI export and the wave export features simultaneously to record playback output from DirectMusic Producer. However, based on the limits outlined in the preceding text, some sound might be omitted from the recording in one or both of the exported files. Because MIDI recording waits for playback to begin and wave recording does not, start MIDI recording first.

To capture a performance

  1. If necessary, select an audiopath in the Audiopath list that contains the FileOutput DMO. See FileOutput in an Audiopath.
  2. To export to a wave file, click the Set Wave Filename button and choose a directory where the exported file will be saved.
    or, to export to a MIDI file, click the Set MIDI Filename button and choose a directory where the exported file will be saved.
  3. Type a name in the File Name box and then click Save.
  4. Click the Start or Stop Export to Wave File button, or the Start or Stop Export to MIDI File button. If you are exporting both a wave file and a MIDI file, click the Start or Stop Export to MIDI File button first, and then click the Start or Stop Export to Wave File button.
  5. Use the Transport controls and Secondary Segment toolbar to begin playback of components.
  6. Select files in the Transport list or a Secondary Segment list.
  7. When the performance is finished, click the Stop Immediate button, or the Stop button. MIDI recording stops automatically.
  8. Click the Start or Stop Export to Wave File button to end recording of the wave file.


MIDI Export Options

If you have clicked the Set MIDI Filename button, and chosen a directory and name for a MIDI file, the Start or Stop Export to MIDI File button is active. You can then right-click the Start or Stop Export to MIDI File button to display the following Set MIDI Export Time window.

When you select Save lead-in measure, one empty measure—based on the time signature of component in the Transport list—is inserted at the beginning of the recorded MIDI file. MIDI recording starts when you begin playback, but a silent measure is inserted at the beginning of the exported MIDI file.

If you select Start at bar 1(default), playback is recorded without a silent beginning measure and with the first notes placed in measure 1 of the exported file.


Recording Continuous Controller Data

All MIDI data sent to output ports can be recorded and saved as a MIDI file using the Wave and MIDI Export toolbar. This includes sounds that are affected by continuous controller curves that you insert in your files. However, there is an exception when a controller curve has the Start From Current flag turned on in its Curve Properties window. Because the current value of a controller cannot be known until the synthesizer actually begins to play the curve, all curves are captured with their original start and end values, as if the Start From Current flag was not used.

For more information about using continuous controller curves, see Continuous Controllers.


Synthesizer Status Window

You can open the Synthesizer Status window, shown in the following figure, by selecting it on the View menu.

The Synthesizer Status window displays information about the playback activity of DirectMusic-compatible output ports, including DirectMusic hardware-accelerated devices and DirectMusic-compatible software synthesizers. For information about what output ports are compatible with DirectMusic, see Output Port Compatibility.

The Synthesizer Status window is divided in two sections: the left side provides information about the computer CPU memory used by the Microsoft Synthesizer only, and the right side provides information about the number of voices used for playback.

You can click the Reset button to clear the numbers in the window. Without playback, the window indicates slight CPU memory use. Each time you play a file, the numbers change to reflect the current playback activity.

The following information about computer memory use is displayed on the left side of the window:

  • Current memory used by the Microsoft Synthesizer, shown as a percent of total CPU memory
  • Peak CPU memory used by the Microsoft Synthesizer during the playback period
  • Time during playback that the peak occurred

The window in the figure indicates that a peak in CPU use occurred just after nine seconds of playback.

The following information about the number of voices used for playback is displayed on the right side of the window:

  • Current number of voices being sent during playback to DirectMusic-compatible output ports.
  • Peak number of voices sent to DirectMusic-compatible output ports during the playback period
  • Time during playback that the peak occurred

The window in the previous figure indicates that a peak in voice numbers occurred just after nine seconds of playback.

The right section of the window represents only information being sent to DirectMusic-compatible output ports. This includes the Microsoft Synthesizer and any other hardware devices or software synthesizers that are designed to work with DirectMusic. When there are multiple DirectMusic-compatible output ports in use, the window displays the total numbers for the combined activity of all compatible ports. If you are using output ports that are not DirectMusic-compatible, their playback activity is not reflected in the Synthesizer Status window, so the total number of voices actually playing through all output ports may be greater.

Voice Allocation

The number of voices a port can play may be limited. For example, some hardware playback ports can play a maximum of 32 voices at one time. This is the default setting in DirectMusic Producer for all hardware ports. A DirectMusic-compatible output port can adapt to play up to 1000 voices, but you can choose settings for lower voice numbers. See Voice Allocation.

Depending on the voices allocated, the voices sent to DirectMusic-compatible output ports may be limited. Since the Synthesizer Status window shows only the number of voices sent to DirectMusic-compatible output ports, the window may not show the total number of voices intended for these ports in the original file.

Output Status versus Synthesizer Status

The output status toolbar may indicate more playback activity than the Synthesizer Status window. For example, a PChannel may contain musical data intended for a DirectMusic-compatible output port, but because of limited voice allocation, the data is never sent to the port. If a port is allocated fewer voices than it needs to play a file, DirectMusic Producer uses the PChannel priority settings to eliminate some channels, sending less musical data for playback. For information about setting PChannel Priority, see Performance Channel Priority.

Note If you are using the Microsoft Synthesizer as the output port for playback, the number of voices used can temporarily exceed the number of voices allocated to the port. This is because DirectMusic Producer can temporarily assign additional voices to higher-priority PChannels to avoid notes being clipped off during playback. Voices that are dropped from playback due to limited voice capacity are held for a short period (10 milliseconds) so they can be faded out. This eliminates a clicking sound in playback that occurs when notes are abruptly stopped. Holding notes this extra length causes the Microsoft Synthesizer to briefly exceed the number of voices allocated to it. The temporary increase in the number of voices is shown in the Synthesizer Status window, and may be much higher than the number allotted.

Note Only Microsoft® Windows® 98 (second edition) and Windows 2000 support the use of DirectMusic hardware-accelerated devices. Windows 95 and Windows 98 (first edition) allow the use of noncompatible output devices, but no information about them is shown in the Synthesizer Status window. For more information, see Output Port Compatibility.


Patch Numbers, MSB, and LSB

Each instrument sound used in a computer or MIDI device has a name, such as Piano 1 or Piano 2, and a patch number between 1 and 128. Each sound is further identified by two numbers: MSB (most significant byte), and LSB (least significant byte). The combination of the MSB, LSB, and patch number gives each instrument sound a unique identification that distinguishes it from other sounds that may have the same name. These numbers are displayed in many places in DirectMusic Producer, such as next to the DLS sound name in the project tree, in the PChannel Properties window, and in the DLS Designer window.

If the instrument sound is part of a DLS collection, DirectMusic Producer locates the data for the DLS in the DLS collection on a user's computer using the MSB, LSB and patch numbers. The data is downloaded to the memory of the computer for immediate use during playback. If the instrument sound is stored permanently in the memory of a hardware playback device, then the sound is available for playback without downloading any data to the memory of the computer. In either case, the MSB, LSB, and patch numbers are all that is required to identify which sound is used for playback.

If the specific sound assigned to a PChannel cannot be located—either in the DLS collection or the hardware device specified—then one of two things occurs:

  • When a PChannel is set to play using a DLS instrument, the MSB and LSB numbers are ignored, and the corresponding sound in the default DLS collection is used.
  • When a PChannel is set to play using a sound in a hardware device, then playback is silent. No sound in a DLS collection or another hardware device is substituted.

Some DLS collections you use for playback might not conform to the General MIDI specification. For example, the GM specification calls for patch number 57 to be used for trombone sounds. If you use a DLS collection with a different type of instrument on Patch 57, such as a flute sound, then any time the playback cannot locate the assigned flute sound, the trombone sound in the default GM sound set is substituted.

There are 254 instrument sounds and sound effects in the GM.dls collection, and multiple sounds in the sound sets of other DLS collections and playback hardware devices.

Each instrument sound has a name, such as Piano 1 or Piano 2, and three ID numbers which distinguish it from other sounds that may have the same name. These numbers are displayed next to the sound name in the project tree, as shown in the following figure.

The three numbers in the tree correspond to numbers assigned to the instrument in the DLS Designer window, shown in the following figure.

From left to right, the three numbers represent the following properties for the instrument:

  • Most Significant Byte (MSB)
  • Least Significant Byte (LSB)
  • MIDI Patch Number

The MSB and LSB are part of the standard General MIDI data stored in every MIDI sound in DLS collections and MIDI hardware playback devices.

The patch number was included in the data of instrument sounds in the earliest General MIDI hardware. It identifies an instrument according to its type, such as trombone (patch 57).The settings for the most significant byte (MSB) and least significant byte (LSB) are numbers used to differentiate multiple trombone sounds. When using a standard trombone sound, the combination of MSB, LSB, and patch number is "0, 0, 57". This indicates that the MSB and LSB numbers have not been used or were left at the default setting. A different trombone sound created for a new DLS collection or included in a MIDI playback device should use a unique set of identifying numbers. Typically, the number would use special MSB and LSB numbers, but use the same patch number of 57, so that the instrument sound is recognizable as a trombone sound in a different bank of instrument sounds.

Use the MSB and LSB numbers in a DLS instrument to create a unique identifying number and place the instrument in a larger group of instruments, called a bank. By organizing sounds into banks, you avoid conflicts where two or more DLS sounds with similar patch numbers are used in place of one another during playback.

For example, patch number 01 is used for a piano sound in many DLS and MIDI hardware sound collections. You can create your own piano DLS instrument and choose a unique combination of MSB and LSB numbers to go with patch setting 01. This ensures that the piano sound in your DLS collection is not confused with the same patch in other collections.

MIDI sounds that are available on computers and MIDI equipment are too numerous to organize using only the 128 available patch numbers. Large groups of sounds are organized into patch banks so that an instrument belongs to a bank of sounds. That is, you refer not only to a trumpet sound (patch 56), but the trumpet sound in a specific bank of sounds.

The MSB is the most common setting in MIDI hardware and software used to control the bank to be used. There are 128 MSB numbers available, from 0 to 127) and, thus, 128 different banks into which you can organize sounds.

The LSB settings are subdivisions within the MSB banks. Traditionally, all LSB settings have been left at 0 and have been hidden in most implementations. Each MSB setting effectively consists of one bank of sounds (bank 0). However, within a MSB bank, there are potentially 128 individual LSB sub-banks, from 0 to 127. Thus, there are banks of sounds within other banks, identified first by MSB numbers, and then by LSB numbers contained within them.

Within each LSB there are 128 patch numbers (numbers 0 to 127). These are the patch numbers commonly used in MIDI (such as patch 56, trumpet).

As a result, the potential number of combinations is 128 MSB banks x 128 LSB banks x 128 patches. In other words, 2,097,152 different combinations of LSB, MSB, and patch numbers can be used to identify an instrument sound. With all three numbers available to you in the DLS designer, you have greatly increased the options for giving any DLS instrument sound a unique identifying number.

When you edit the MSB, LSB, and patch numbers of a DLS instrument, or when you open a DLS collection, DirectMusic Producer checks for conflicting combinations of MSB, LSB, and patch numbers between instruments in a DLS collection, or in other open DLS collections in the project tree. When there is a conflict, DirectMusic Producer either prevents you from entering numbers that create a conflict, or it displays a window warning you about conflicts and providing options for fixing them. For more information, see DLS Patch Conflicts.

When a particular MSB, LSB, and patch combination is not available

If you assign a PChannel to play using an instrument that is not available—for instance, if a custom DLS has not been installed on another user's computer—then the MSB and LSB numbers are ignored. This means that the PChannel playback defaults to the General MIDI sound that has the same patch number. (General MIDI sounds are assumed to have MSB and LSB numbers of 0). DirectMusic Producer ignores the MSB and LSB numbers and sets the instrument sound as if the MSB and LSB were 0.

For example, if you create a "custom" DLS that has MSB, LSB, and patch numbers "8, 1, 57", and this DLS collection is not available during playback, then the General MIDI sound with patch number 57 (trombone) is substituted during playback.


Cut Off and Invalidation of Notes or Waves

When playback is interrupted or transitions to a new component, the MIDI signal of a note is cancelled by an invalidation signal. Similarly, if playback of the segment containing a segment is interrupted while the wave is playing, or transitions to another segment before the wave ends, playback of the wave is halted abruptly.

DirectMusic Producer provides settings in many components so you can control whether a note or wave is cut off abruptly, or is allowed to complete its full duration.

For example, in a transition from one segment to another, if the first segment contains a long note, the note is normally cut off if the transition occurs during the note. Choosing the Don't Cut Off option for the note lets the note play its full value, even though the transition to the next segment has already begun.

Each of the following Properties windows includes an option for Don't Cut Off:

  • Properties Window Flags Tab
  • Variations/Flags Tab.
  • Performance Tab for Waves in a Wave Track
  • Transition Options Window
  • Motif Properties
  • Segment Properties Boundary Tab.

Note Cut Off with Controller Curves

If a note or wave is not cut off while it has controller curves affecting it, the controller curve can continue to be in effect depending on settings you choose in the Reset Tab for the curve. See Reset Curves.


Transitions

When playback moves from one component to another, a transition occurs. Depending on options you choose, the transition can be as abrupt or as smooth as you like.

The Transport controls include a Transition button, shown in the following figure, that you can click to initiate a transition between two components during playback.

You can use this button to experiment with various options for transitioning between components. As a component is playing, you can select another component in the Transport list and click the Transition button to switch playback from the playing component, called the source component, to a destination component in the list. In this way, you can begin the playback of one component without stopping the playback of the other.

The transition from a source component to a destination can be gradual or immediate, depending on what you set in the Transition Options window. For example, a gradual transition can use material such as chords and embellishments from the destination component to introduce its sound.

Note Settings in the Transition Options window are for audition purposes only, and are not saved in any of the components you use in a transition. You can only use the Transition button when moving to three component types in the Transport list:

  • Segments
  • Patterns
  • Motifs

Note Both patterns and motifs appear in the list with a three-character extension of .stp.

All these component types include a timeline, which is required for working with the Transition button. Although chordmaps have a timeline and can appear in the Transport list, they do not work with the Transition button, except when moving from a chordmap to another component. However, to appear as the source component in the Transport list, a chordmap must have an audition style selected in the Chordmap Properties window. The chordmap uses the musical patterns of a style to provide material for playback, although the chordmap, not the style, is displayed as the component in the Transport list. For more information, see Transport List.

Note Although a DLS collection can appear in the Transport list, DLS collections do not include a timeline. Thus, DLS collections cannot be used with the Transition button. If you select a DLS collection in the Transport list, the Transition button is disabled.

The default settings for transitions provide a fairly smooth change between two components. Before using the settings in the Transition Options window, you should be familiar with the behavior of segments, chordmaps, embellishments, signpost chords, and cadence chords. If you are not, you should read the information in the following topics before adjusting the settings in the Transition Options window:

  • Chordmap Designer
  • Signpost Chords
  • How a Chordmap Interacts with a Signposts
  • Cadences
  • Embellishments
  • Variable Chord Progressions


Transition Options Window

You can use settings in the Transition Options window to make the transition from a source component to a destination component as gradual or immediate as you like. To be gradual, a transition can spread out over a measure or more, and can use material from the source or destination components, such as chords, pattern, and embellishments. In this case, Producer creates a transition segment that plays during the period between the source and destination components. This makes the change in sound smoother. When a transition is immediate, the change from one segment to the next is abrupt without any extra steps to make the change in sound smoother.

If you like, you can use a third component, such as a pattern or a segment that you design, to be used as a Transition Segment that provides material for the transition.

You can right-click the Transition button to open a Transition Options window, shown in the following figure, that contains settings to define the transition from the source component to the destination component.

The Transition Options window contains the following settings:

  • Boundary

    Enables you to select how quickly the transition to the new component occurs. You can also choose to have the transition occur, ignore the Boundary setting, and take place as playback reaches the next Enter Switch Point in the Marker track of a segment. See Transition Boundary Setting.

  • Align Options

    The drop-down list includes options for a transition to a new component so that its playback aligns with that of the source component, rather than beginning at a particular boundary. See Transition Align Options.

  • Transition Segment

    Enables you to select a segment to be used between the source and destination components.

  • Don't Cut Off

    If playback of a segment is stopped before a note is completed, this setting ensures that any currently playing notes are completed and all end- of- note information is used, ensuring that notes stop playing.

  • Quick Response

    Music may drop out for a short time if there are any conflicts among the instrument patch settings in the components being played.

  • After Prepare Time

    The transition plays about a second later than expected, but still on the chosen boundary. This ensures that the music transition will be seamless.

  • Transition Pattern

    Enables you to select the type of transition pattern to precede the transition to the destination component. You can choose Intro, Fill, Break, End, Regular Pattern, End and Intro, and None. For more information, see Transition Pattern.

  • Long

    Inserts one measure of music from the source segment before playing the transition pattern in the Transition Pattern setting. For more information, see Long Option.

  • Modulate

    Creates a cadence to play between the source and destination components using chords from one or both of the two components. For more information, see Modulate Option.


Transition Boundary Setting

In the Boundary setting in the Transition Options window, you can select how quickly the transition to the new component occurs. Six choices are available in the drop down window:

  • Bar

    The transition to the destination component starts at the beginning of the next bar (measure) in the source segment.

  • Beat

    The transition to the destination component starts at the next beat in the source segment.

  • Grid

    The transition to the destination component starts at the next grid division in the source segment.

  • Immediate

    The transition to the destination component starts immediately.

  • End of Segment

    The transition to the destination component starts when the end of the source component is reached. Currently, when DirectMusic Producer changes from a pattern to another component, the End of Segment boundary setting behaves the same as the Bar boundary setting. The same result occurs when changing from a segment that loops 1000 or more times.

  • End of Segment Queue

    The transition to the destination component starts when the end of the currently playing segment queue is reached.

Note The Boundary setting in the Transition Options window affects the playback of segments when they are used as source components or destination components. The setting affects the playback of patterns only when they are used as destination components.

You can select the Transition at next marker option to have the transition ignore the Boundary setting. With this option selected, a transition will take place as playback reaches the next Enter Switch Point in the Marker track of a source segment. If no Enter Switch Point marker is present in the source segment, then the transition takes place according to the setting you choose in the drop-down window. For information about inserting Enter Switch Points in a segment, see Marker Track.

You can also choose options in the drop-down list for the transition to occur so playback aligns with that of the source component, rather than beginning at a particular boundary. See Transition Align Options.


Using a Marker Track to Control Transitions

You can insert markers for appropriate points in a segment where a transition to or from another segment can take place. You can insert an Exit marker or a Enter Switch Point marker anywhere in the segment. For information about inserting Enter Switch Point markers in a segment, see Marker Track.

When playback transitions from a source segment to a destination segment, the source segment plays until it reaches an Exit marker in its Marker track.

When playback transitions from a source segment to a destination segment containing an Enter Switch Point marker, settings in the Transition Options window effect the transition to the destination segment.

In the Transition Options window, you can choose settings for beginning the transition at a boundary, or at the occurrence of a marker in the source segment. You can select the Transition at next marker option to have the transition ignore the Boundary setting. With this option selected, a transition will take place as playback reaches the next Enter Switch Point in the Marker track of a source segment. If no Enter Switch Point marker is present in the source segment, then the transition takes place according to the setting you choose in the drop-down window.

You can also choose a variety of options for aligning the playback of the source segment to the destination segment, such as aligning to the Enter Switch Point markers. A transition to the destination segment does not begin until the Transition Options settings match with the marker. For information, see Transition Align Options.

Note An Enter Switch Point marker must be placed in the first measure unless you are using the Align to Segment option. See Transition Align Options.

Note An Enter Switch Point functions in a segment in the exact way as a Variation Switch Point in a style pattern. If you insert a style containing Variation Switch Points into a segment, they will effect transitions to the segment as if you had inserted Enter Switch Point markers in the Marker track of the segment. However, the Variation Switch Points of the style pattern are not displayed in the Marker track of the segment. For information about creating Variation Switch Points in a style, see Variation Switch Points.


Transition Align Options

The drop-down list includes three methods for transitioning to a new component so that its playback aligns with that of the source component, rather than beginning at a particular boundary:

  • Align to Beat

    The transition begins at the next point where the beats of the source and destination components occur at the same time.

  • Align to Bar

    The transition begins at the next point where the barlines of the source and destination components occur at the same time.

  • Align to Segment

    Uses settings used in the markers you inserted in the Marker track of the source segment.

Note An Enter Switch Point marker must be placed in the first measure unless you are using the Align to Segment option. Aligning to the beat, bar or grid is assumed to take place in the first measure during playback.

When you choose one of the three align methods in the drop-down list, you can also select one of the options in the Align Options box:

  • on the next Marker

    The transition occurs so the source and destination components align at the next marker in the source component.

  • at any Time

    The transition occurs so the source and destination components align at any time.

  • on any Grid

    The transition occurs so the source and destination components align on any grid division in the source component.

  • on any Beat

    The transition occurs so the source and destination components align on any beat in the source component.

  • on any Barline

    The transition occurs so the source and destination components align on any barline in the source component.


Transition Pattern

With the Transition Pattern setting, you can select the pattern that precedes the transition to the destination component. In the Transition Pattern list, select Intro, Fill, Break, or End to use an embellishment from the component styles being played in the transition. You can also select Regular Pattern to use a regular pattern from the style, or select End and Intro.

The selection in the Transition Pattern list affects only the use of segments as components in a transition. This is because segments contain entire style files from which you can select various patterns. The Transition Pattern list does not affect the use of a pattern as a source or destination component in a transition, because a pattern does not contain a variety of embellishments.

When you select Fill, Break, End, or Regular Pattern, the transition pattern is drawn from the style in the source segment. If you select Intro for the transition pattern, the intro embellishment is drawn from the style in the destination segment. If you select End and Intro, the end embellishment is drawn from the style of the source segment, and the intro embellishment is drawn from the style of the destination segment.

If None is selected for the transition pattern, the destination component begins playing immediately on the selected boundary and no transition segment is created.


Long Option

You can use the Long option to create a two-part transition. The first part consists of one measure of material from the source component, while the second part uses the pattern in the Transition Pattern list.

The Long option works only when the source component is a segment. If the source component is a pattern, the Long option is ignored.

When a long transition begins, a measure from the source segment is played. A pattern in the style within the source segment is used to create the first part of the transition. The pattern is selected randomly from all patterns in the style having a default groove level. After one measure, the transition proceeds using the pattern in the Transition Pattern setting. If None is selected for the transition pattern, the Long option is ignored and no transition segment is created.

If the source component is a segment, the first part of the long transition uses the currently playing chord.

For more information about the Long option in combination with different transition patterns, see Transition Cadence Chords.


Modulate Option

The Modulate option creates a smooth cadence to play between the source component and the destination component by using chords from one or both components. In most cases, the source component supplies the chords when you choose the Modulate option. In some cases, the destination component provides the chords. For more information, see Transition Cadence Chords.

Many factors affect which chords are used to create a modulation, including what type of components supply the chords and what options you select for the transition. The key signature of the components can also affect which chords are used. For more information, see Effect of Key Signatures on Modulations.

Following is information about the behavior of the Modulate option based on the components involved in the transition:

  • Template

    If the component supplying transition chords is a template, DirectMusic Producer generally draws chords from the chordmap in the template. The Modulate option uses cadence chords from the chordmap as transition chords. This is also true if the component is a segment that contains a Chordmap track and a chordmap.

  • Segment

    If a component supplying modulation chords is a typical segment without a chordmap, the Modulate option has no effect and the transition is created using the chord playing in the segment. If the segment contains a Chordmap track and a chordmap, it behaves the same as a template, supplying cadence chords from the chordmap.

  • Pattern

    If the component supplying transition chords is a pattern, and thus contains no chordmap, the Modulate option has no effect and only the chord for composition for the pattern is used.

When the Modulate option is selected and chords are drawn from a chordmap, DirectMusic Producer creates a cadence in the transition using a signpost chord that has one or more cadence chords preceding it. If there are no signpost chords with cadence chords, the behavior is the same as if the Modulate option had not been selected, and the chords playing in the source component or the first chord in the destination component are used.

When more than one sequence of cadence chords is available for a signpost chord, one of the cadences is selected at random.


Transition Cadence Chords

In most cases, the source component supplies the chords for the transition when you choose the Modulate option. However, in some cases, the chords generated depend on the options in the Transition Options window. There are several possible outcomes:

  • Using Intro as the transition pattern

    When you use an Intro transition pattern, the Modulate option has no effect and the transition uses the first chord in the destination component. If the destination is a segment, the Intro embellishment is drawn from the style in the component. No cadence chords are drawn from a chordmap, and only the first chord in the destination component is used.

    If the destination is a pattern, there is no Intro embellishment to use and no transition segment is created. The destination pattern begins as soon as the boundary is reached.

  • Using the Long option with Intro as the transition pattern

    If you select the Long option with an intro pattern, the Modulate option has no effect, and a long transition is created in two halves. The first half uses material from the source component, while the second half uses an Intro embellishment from the destination component. Neither half of the transition is affected by the Modulate option.

    If the source is a segment, the first half of the long transition uses the current pattern in the source component and the current chord. If the source is a pattern, the first half of the long transition is empty.

    If the destination component is a segment, the second half of the long transition uses the first chord of the destination component as it plays an Intro embellishment from the style in the destination segment. If the destination component is a pattern, the pattern begins playing immediately in the second half using the chord for composition for the pattern.

  • Using Fill, Break, or Regular Pattern as the transition pattern

    When you select Fill, Break, or Regular Pattern for the transition pattern, chords are drawn from the source component and the Modulate option may affect which chords are used. If the source component is a segment, Fill, Break, or Regular Pattern is drawn from the style in the segment. If the source component is a segment containing a chordmap, a modulation is created using cadence chords from the chordmap of the segment. Leaving the Modulate option unselected creates a cadence using the current chord in the source segment.

    If the source component is a pattern, no fill, break embellishment, or regular pattern is available and no transition segment is created. The destination component begins as soon as the boundary is reached.

  • Using the Long option with Break, Fill, or Regular Pattern

    When you use Break, Fill, or Regular Pattern as the transition pattern and also select the Long option, the transition plays one cadence chord in each measure. If the destination chord in the chordmap is preceded by only one cadence chord, the cadence chord plays in the first measure.

    When you use Break, Fill, or Regular Pattern as the transition pattern and do not select the Long option, a transition plays all the cadence chords in the first measure.

  • Using End as the transition pattern

    When you select End for the transition pattern, chords are drawn from the source component and the Modulate option may affect which chords are used. If the source component is a segment, the end embellishment is drawn from the style in the segment. When DirectMusic Producer uses the Modulate option, if the source component is a segment containing a chordmap, a modulation is created using cadence chords from the chordmap of the segment. Leaving the Modulate option unselected creates a cadence using the current chord in the source segment.

    If the source component is a pattern, there is no end embellishment to use and no transition segment is created. The destination component begins as soon as the boundary is reached.

  • Using End and Intro as the transition pattern

    When you use End and Intro as the transition pattern, the transition behaves the same way as for an End transition. However, the transition adds an extra measure to play an intro embellishment from the style of the destination segment, using the first chord in the destination segment for this. No additional modulation chords are used between the intro and the beginning of the destination segment.

    If the destination is a pattern, there is no intro embellishment to use. If possible, a transition segment is created using an end embellishment from the source component, and the destination pattern begins as soon as the boundary is reached, without an intro embellishment preceding it. If the Modulate option is selected, the End transition uses chords from the source component.

    If the source component is a pattern, there is no end embellishment to use. If possible, a transition segment is created containing an intro embellishment from the destination component, but there is no end embellishment preceding the intro. The intro begins as soon as the boundary is reached. If the Modulate option is selected, it has no effect on the chords used for the intro. Only the first chord in the destination component is used.

  • Using the Long Option with End as the transition pattern

    When you use End as the transition pattern and select the Long option, a transition plays both cadence chords in the first measure and a signpost chord in the second measure.

    When you use End as the transition pattern and do not select the Long option, a transition skips the first cadence chord and plays the second cadence chord and a signpost chord in the first measure.

Note Regardless of the transition pattern you choose, if the component used to supply the transition pattern does not contain a suitable embellishment to match your selection, then no transition segment is created and the destination component begins playing immediately, as though you had selected None for the transition pattern. For example, if you choose Fill as a transition pattern and the source component is a template containing a style with no fill embellishment, then no transition is created. Likewise, if the source component is an individual pattern, then it does not contain a fill embellishment and no transition is created.


Effect of Key Signatures on Modulations

If a transition uses cadence chords from the chordmap of a source component, the key signature of the source component affects which cadence chords are selected. This requires that the source component be a segment containing a chordmap.

If cadence chords in the source segment cause less of a change when moving to the destination component—for example, they share more notes with the chord of the destination component—then those cadence chords have priority over other available cadence chords.


Creating Content

To create and edit the contents of DirectMusic Producer components, you use several design modules. Each module is started automatically when you double-click a component in the project tree.

This section provides detailed information about designing all DirectMusic Producer components, including the following topics:

  • Note Entry and Editing
  • Segment Designer
  • Sequence Editor
  • Band Editor
  • Style Designer
  • Pattern Editor
  • DLS and DLS Collections
  • DLS Designer
  • Chordmap Designer
  • Editing Chord Properties
  • Variable Chord Progressions
  • Audiopath Designer
  • Toolgraph Designer
  • Script Designer


Note Entry and Editing

Two places in a DirectMusic Producer project contain the actual notes and rhythms that make up a piece of music:

  • The Sequence tracks of a segment
  • The patterns contained in a style (notes are entered into the part displays that make up a pattern)

Additionally, you can choose an individual pattern from a style and place it in the Patterns track of a segment.

In each place, you can enter, edit, and view the notes and rhythms of the music you create. Use Sequence Editor to edit the contents of a Sequence track, and use Pattern Editor to edit the contents of part displays in a pattern.

Note Before you can enter any notes into a pattern, you must click at least one variation button to make the variation active. See Part Variations.

You can use several methods for note entry:

  • Import a MIDI File

    Import a standard MIDI file into a segment or into a style. For more information, see Importing MIDI Files.

  • Copy and Paste MIDI data from another program

    You can also use the Copy and Paste commands to copy a sequence of MIDI data from a separate MIDI application into the Sequence track or Patterns track of a segment, or into the Pattern Editor. See Cutting and Pasting Notes.

  • Record MIDI in step time

    Enter music by recording in step time using a MIDI input device. For more information, see MIDI Recording.

  • Record MIDI in real time

    Enter music by recording in real time using a MIDI input device. For more information, see MIDI Recording.

  • Enter notes using the mouse

    Click the editing region of a Sequence track or a pattern part and press INSERT to enter an individual note. You can also right-click the editing region to display a shortcut menu, and click Insert Note to enter an individual note. For more information, see Entering Notes Using the Mouse and Computer Keyboard.

  • Enter notes using the computer keyboard

    Click the pitch guide of a Sequence track or pattern part to select a pitch, and use the arrow keys to position the cursor and press the INSERT key to enter a note in the editing region. For more information, see Entering Notes Using the Mouse and Computer Keyboard.

  • Move notes using the Copy and Paste commands

    Copy and paste notes from another editing window, including copying notes between Style Designer, Segment Designer, and MIDI sequencing software outside DirectMusic Producer. See Cutting and Pasting Notes.

  • Copy notes using the CTRL key and drag feature

    Copy selected notes by holding the CTRL key and dragging notes to a new location in the same editing window. See Copying Notes Using the CTRL Key and Drag Feature.

In addition to entering notes in Sequence tracks or pattern parts, you can insert chords into a chordmap, or into the Chords track of a segment or a pattern. Refer to each of the individual design modules for related information about entering and editing chords.

After you enter notes into Pattern Editor or Sequence Editor, you can select and edit the notes individually or in groups. The following topics describe note editing in both editors. With a few exceptions, the instructions apply to both editors.

  • Selecting and Editing Notes
  • Using the Timeline and Selection Buttons to Cut and Paste Notes
  • Editing Notes Using the Note Properties Window
  • Editing Note Properties with the Mouse
  • Cursors and Editing


Editing Windows for Note Entry

Sequence Editor and Pattern Editor provide editing windows you can open to display and edit the musical note content of a track or part.

In Segment Designer, you can double-click a Sequence track to open or maximize it. In Pattern Editor, you can double-click a part display to open it. An opened Sequence track or part display appears in an editing window as shown in the following illustration.

The editing window of a Sequence track or a part display contains a pitch guide in the form of a keyboard along the left side of the editing region. Each pitch in the keyboard corresponds to the notes directly to the right. The pitch guide remains visible, even when you scroll in the editing region to display other notes.

When you open or maximize a part display, a row of 32 variation buttons, called a Variations strip, appears at the top of the editing region. A Sequence track does not contain a Variations strip. To display or place notes in the pattern part's editing region, you must activate a variation in the part by clicking its button in the strip. For information about variations and the Variations strip, see Part Variations.

By default, a Sequence track or a part display opens using piano roll notation. You can choose to display notes using piano roll notation or a special hybrid notation. Hybrid notation combines graphic display and conventional notation consisting of clefs and staff lines. In both piano roll and hybrid notation, the notes in a MIDI sequence are represented as rectangles positioned on a grid. For more information, Switching Between Piano Roll and Hybrid Notation.


Switching Between Piano Roll and Hybrid Notation

By default, a Sequence track or a part display opens using piano roll notation. You can choose to display notes using piano roll notation or a special hybrid notation. Hybrid notation combines graphic display and conventional notation consisting of clefs and staff lines. In both piano roll and hybrid notation, the notes in a MIDI sequence are represented as rectangles positioned on a grid.

The following illustration shows an open Sequence track using piano roll notation. The second illustration shows the same track using hybrid notation.

For more information about differences and similarities between piano roll notation and hybrid notation, see Sequence Editor and Pattern Editor.

To switch between piano roll notation and hybrid notation

  • Click a Sequence track or part display and press the H key on the computer keyboard to toggle between the notation options.

    or

    Right-click a Sequence track or part display. Click Views on the shortcut menu and choose Piano Roll or Hybrid Notation.


Pitch Guide

Depending on the notation you use to view a part display or Sequence track, the pitch guide on the left side of the window appears as a keyboard or a grand staff.

Each note in the editing region is vertically aligned with the pitch guide, so you can determine the pitch of the note. The pitch guide remains visible even when you scroll to display other notes.

When you use piano roll notation, the pitch guide is a keyboard containing all pitches from C0 through G10. For information about pitch names, see Pitch Names and MIDI Numbers.

When using hybrid notation, the pitch guide is a grand staff containing treble and bass clefs. The pitch of a note is shown by its vertical position relative to the grand staff, and each pitch position on the grand staff corresponds to a MIDI pitch, as in piano roll notation. For example, middle C is equal to MIDI note 60.

Accidentals are used in front of a note to modify its pitch, just as in standard music notation. This makes it possible to fit the entire range of ten octaves into a compact, vertical area and within a single window view, so that you can view information without scrolling.

You can click the vertical zoom buttons to increase or decrease the vertical note spacing in the editing region, along with the size of the pitch guide. Thus, the pitch guide adjusts to accurately show the pitch of all notes in the editing window for all vertical zoom levels.


Vertical Zoom Buttons

Each Sequence track and part display has vertical zoom buttons you can click to increase or decrease the vertical note spacing in the editing window.

Clicking the vertical zoom button with the plus (+) sign enlarges the contents of the editing region. Clicking the zoom button with the minus ( – ) sign reduces the contents. The pitch guide adjusts on the screen to accurately show the pitch of all notes in the editing region for all vertical zoom levels.


MIDI Recording

You can use an external MIDI input device, such as a MIDI keyboard or wind controller, to add notes to an instrument part in a pattern or Sequence track. You can enter notes using step-time recording or real-time recording.

Your MIDI input device must be properly connected to a MIDI-compatible sound card on your computer, and the sound card must be selected in the Transport Options window. For more information, see Transport Options Toolbar and MIDI Recording Setup.

As you record from a MIDI input device, you can hear audible MIDI feedback using the instrument settings in the PChannel assigned to the part or Sequence track that you are recording into.

Note To eliminate confusion caused by delays in the audible MIDI feedback, no MIDI feedback is provided when recording in real time to a high-latency output port. When you record to a style pattern, the new notes are played as audible notes only when the pattern loops during the recording period.

There are two ways you can use MIDI recording to enter new notes in Sequence Editor or Pattern Editor:

  • Step-time recording

    Notes are entered using the same default length for each note, and the recording advances one note each time you enter a new note.

  • Real-time recording

    A fixed tempo is applied as you enter notes. The length of the notes is recorded as you play and is determined by how long you hold down the keys on the MIDI input device.


Step-Time Recording

You can use a MIDI input device and step-time recording to enter notes in a Sequence track or an pattern part. As you record in step time, the same default length for each note is used.

The default note length in a component is the same for note entry using the mouse and using step-time recording. It is determined by the Snap To setting used in the timeline of the component (see Snap To Command in the Timeline). For instance, if you use a Snap To setting of Beat, then each new note you enter has a default length of one beat (as determined by the time signature of the component). The default setting for Snap To is to use the grid division. For information on setting the grid division in a style, see Setting a Style Time Signature and Grid. For information on setting the grid division in a segment, see Segment Grid Divisions.

The default velocity is 100 for all notes you enter using step-time recording in both editors.

To insert new notes using step-time recording

  1. Double-click a Sequence track or pattern part to maximize it. If you are editing a pattern part, be sure the variation into which you want to place a note is active. For information about variations and the Variations strip, see Part Variations.
  2. In the Transport Controls, click the Record button.
  3. Press any keys on the MIDI input device. Keys pressed at the same time are entered in the same step-time division in the editing region as a chord. Keys pressed separately are entered in subsequent step-time divisions.
  4. Press the arrow keys to move the note cursor both vertically and horizontally. As you enter a note or a chord, press the right arrow key while holding keys on the MIDI keyboard to advance the time cursor and increase the length of the notes. For example, if the step-time division (as defined by the Snap To setting) is a quarter note, you can insert a whole note by holding a key on the MIDI input device, pressing the right arrow key three times, and releasing the key on the MIDI keyboard.


Real-Time Recording

You can use a MIDI input device and real-time recording to enter notes in a Sequence track or an pattern part. When you enter notes using real-time MIDI recording, the length and velocity of the notes are determined by how you play them on the input device. You can also select notes and apply quantizing to adjust the start time and duration of the notes.

To insert a new note in the editing window using real-time recording

  1. Double-click a Sequence track or pattern part to maximize it. If you are editing a pattern part, click the button in the Variation strip for the variation you want to be active. For information about variations and the Variations strip, see Part Variations.
  2. In the Transport Controls, click the Record button. Then click the Start button.
  3. Press a key on the MIDI input device. All pressed keys are recorded in the piano roll using the timing and velocity you generate through the input device.

When you record in real time, the pattern loops repeatedly, as it does during playback, until you click the Stop or Stop Immediate buttons. Each time the pattern loops, notes you play on the MIDI input device are recorded in the pattern and may cover notes already in the pattern.

You can avoid covering notes by clicking a Variation button to activate or deactivate a variation. Notes are entered only in active variations. For more information, see Variations Strip.


Quantizing

Using a process called quantizing, you can adjust the start time and duration of notes in a part, so that they conform to a specific grid division. Quantizing is the process of "rounding" notes to the nearest value.

Quantizing is often applied to notes that are recorded using real-time MIDI recording. When you record using real-time MIDI input, the start time and duration of a note may not be placed on the beat and beat division with exact precision. Quantizing moves the notes into more precise positions.

You can use quantizing to change any notes regardless of whether they were entered using the mouse, using MIDI recording, or by importing a MIDI file. For any selected notes, you can force the start point of notes so they fall on a beat or a division of the beat, as well as force the notes to stretch or shrink so their end points fall on a beat or a division of the beat.

When you use quantizing, you force notes to be more mechanically precise, moving the beginnings and endings of notes forward or backward to the nearest beat or grid division. For example, you might choose a group of notes that sound uneven and round them to the nearest 16th note. The start and end points of the notes are moved forward or backward to the nearest 16th-note division of the beat.

You quantize pattern notes using the Quantizing window, as shown in the following illustration.

The Quantizing window contains the following options:

  • Quantize Target

    Use to apply quantizing to selected notes, to all notes in the instrument part, or to all notes in the style pattern.

  • Change

    Use to change the start points of the notes, note durations, or both.

  • Divide Beat into

    Use to choose the grid division that notes are rounded to.

  • Strength

    Choose a percentage value for how robustly quantization is applied to the notes. A setting of 100 percent moves the notes immediately to the specified grid division. A setting of 50 percent moves the values half the remaining distance to the grid division. If the setting of 50 percent is used again, quantizing moves the values half the remaining distance to the grid division. A setting of 100 percent is required to move the values the full distance to the grid division.

To quantize notes in a part or sequence

  1. Double-click a Sequence track or pattern part to maximize it. If you are editing a pattern part, click the button in the Variation strip for the variation you want to be active.
  2. Select any notes.
  3. Right-click any note in the selected group.
  4. Click Quantize on the shortcut menu.
  5. Select options for quantizing the selected notes and click OK.


Importing MIDI Files

DirectMusic Producer comes with a variety of components you can use as a springboard for creating your own components. If you already have MIDI files, DirectMusic Producer provides a method for converting them into components. You can play imported MIDI data as a fixed sequence of notes or use it as the basis for an interactive music piece that plays with variations.

Note Regardless of the arrangement of channels in a MIDI file, DirectMusic Producer imports channels in ascending order from 1 through 16. For information, see Imported PChannels.


Importing as a Segment

You can import a MIDI sequence as a segment, combine it with other music elements, and change parameters for how it plays. These changes include changing the tempo, changing the band, changing the key, looping selected parts of the MIDI data, and layering other MIDI sequences over it. After you modify the segment of imported MIDI data, you can save it to play in a linear, note-for-note manner. You can use this technique for music you do not want to vary during playback. For more information, see Importing a MIDI File as a Segment.

Even if you do design a segment to play with variability, a segment always retains the ability to loop part of the piece at any time, and to instantly stop and start at any point.


Importing as a Style Pattern

You can use one or more imported MIDI sequences as patterns in a style. In this way, you can use existing MIDI data as part of a lower-level DirectMusic Producer component. A style can consist of many rhythmic and melodic patterns and pattern variations, so the resulting music can sound different every time it is played. After MIDI data is imported into a pattern, you can use Pattern Editor to edit notes. You can also place multiple MIDI sequences into a style or use Pattern Editor to create new patterns and variations that play with the imported MIDI sequences. For information, see Importing a MIDI File as a Pattern.


Entering Notes Using the Mouse and Computer Keyboard

You can enter notes in Sequence Editor or Pattern Editor by clicking an open editing region. A narrow rectangle called an insertion marker is placed wherever you click, as shown in the following figure.

When you click an editing region, a thin, vertical, reddish-gray line called an insertion point appears in addition to the rectangular insertion marker, as shown in the following figure.

The insertion point serves a different purpose than the insertion marker. It establishes a horizontal position that extends from the timeline to the bottom of the window. For information, see Insertion Point.

When an insertion marker appears in the editing region, you can press the INSERT key to enter a note at the exact position of the insertion marker. Click the editing region to place the insertion marker in a new position, or use the UP ARROW and DOWN ARROW keys to move the marker to a different beat or pitch position before entering a new note.

The horizontal placement of the insertion marker is affected by the Snap To command and the setting for the segment or pattern timeline. You can choose a setting for the insertion marker and the insertion point so that it snaps to a beat, bar, or grid division when you click the editing region. For more information, see Snap To Command in the Timeline.

Note The grid setting of a segment is determined by its time signature. For more information, see Segment Time Signatures. The grid setting of a pattern is set in the Style Properties window for the style to which the pattern belongs.

The default length of an inserted note is also determined by the setting for the segment and pattern timeline. For example, if you choose Beat, the length of the insertion marker is one beat and every note you insert has a default length of one beat.

You can also use the following methods to enter a single note in an editing region:

  • Press the CTRL key and click the editing region.
  • Right-click the editing region to place the insertion marker and display a shortcut menu with the Insert Note command.

Note When you open or maximize a part display, a row of 32 variation buttons called a Variations strip appears at the top of the editing region. To display or place notes, you must activate a variation in a part by clicking its button in the strip. For information about variations and the Variations strip, see Part Variations.

To insert a new note in a part using the mouse or computer keyboard

  1. If you are editing a pattern, activate the variation into which you want to place a note by clicking its button in the Variations strip.
  2. Press the CTRL key and click the editing region.

    or

    Right-click the editing region and click Insert Note on the shortcut menu.

    or

    Click the editing region to place the insertion marker in a new position and press the INSERT key. Use the UP ARROW and DOWN ARROW keys to move the marker to a different beat or pitch position before pressing INSERT.

When you enter a new note, it remains highlighted until you click anywhere to cancel the selection, or until you enter or select a different note. A selected note is red, as shown in the following illustration.

While a note is highlighted, you can press DELETE to remove it from the editing region or edit it in a number of ways. For more information, see Selecting and Editing Notes.


Selecting and Editing Notes

Notes are represented in the editing region of Pattern Editor and Segment Editor as rectangles on a grid of beats and measures.

Select a note by clicking its rectangle. Unselected notes are blue and selected notes are red. You can change the default note color and selection color using the Part Properties window.

You can select multiple notes by holding the CTRL key and clicking the notes. This toggles the state of a note—selected or unselected—and enables selection of noncontiguous notes. You can also select multiple notes by holding the SHIFT key and clicking the first and last notes in a series. All notes encompassed by the clicked notes are selected.

In addition, you can select ranges of notes in the editing region, including notes in several separate parts simultaneously, by using the rectangular selection buttons on the left of a part display in a pattern or a Sequence track in a segment.

To select ranges of notes using selection buttons

  1. Click the rectangular selection button on the left of a part display or Sequence track. The button turns red.
  2. In the timeline, drag the cursor across the beats containing the material to select.
  3. Click the selection button on the left of the timeline to select material in all beats in the editing region.

For more information, see Using the Timeline and Selection Buttons to Cut and Paste Notes.

To select multiple, contiguous notes in a part or sequence

  1. Click a note in the editing region of a part or sequence.
  2. Hold the SHIFT key and click another note in the editing region. This selects all notes with start times that are the same as the two selected notes, or with start times falling between them, and with MIDI pitches that are the same or fall between the two selected notes.

You can create a bounding box by clicking and dragging to define the outer edges of a selected region. All notes with start times that fall within the box are selected, as shown in the following illustration.

To select multiple, noncontiguous notes in a part or sequence

  1. Click a note in the editing region of a part or sequence.
  2. Hold the CTRL key and click another note in the editing region. Any note you click while holding CTRL is added to the group.

To remove a note from the selection

  1. Hold CTRL and click a note in the group. Any note you click while holding CTRL is removed from the group.

To cancel a selection

  • Click an empty space in the editing region.

    or

    Click an unselected note.


Cutting and Pasting Notes

You can use the Cut, Copy, and Paste commands with single or multiple selected notes in the editing region of a part or sequence. You can paste material place on the Clipboard in the same editing region or in the editing region of another part or sequence.

This means you can cut, copy and paste notes between editing regions in Style Designer and Segment Designer. You can also cut, copy, and paste notes between these two DirectMusic Producer editors and separate MIDI sequencing software. For example, you can open a MIDI sequence created in a separate sequencing program, select multiple notes in a single channel or track, and paste them into a part window or a sequence track in DirectMusic Producer. You can edit the notes and save them in DirectMusic Producer, or copy and paste them to the original sequencing program.

Notes that are pasted retain their original pitches. You can paste material in an editing region at any point where you click, but clicking at different vertical positions does not affect the pitches of the notes being pasted.

When you click an editing region, a thin, vertical, reddish-gray line called an insertion point is placed in the editing region. This insertion point appears in addition to the black, rectangular insertion marker that appears in the region at the point where you click.

The insertion point has a different purpose than the insertion marker. It shows only the beginning beat and division where material will be pasted and does not indicate any pitch or vertical position where material will be pasted. Because the Clipboard can contain multiple notes with multiple pitches, spread over multiple beats or measures, the insertion point represents only the leftmost position at which the material will be pasted. For more information, see Insertion Point.

The insertion marker, on the other hand, indicates a single pitch and beat position at which a single note is entered using the Insert Note command or when you press the INSERT key.

When you use the Paste command to place notes in an editing region, you have two options for how material is placed in the region:

  • Merge

    The contents of the Clipboard merge into the beats in the part or sequence, beginning at the beat division where you click the insertion point. No existing notes or MIDI data are replaced. Notes in the Clipboard can be pasted on beats that are different from their original positions in the measure, depending on where you click the insertion point. For example, two notes originally on beats 1 and 2 can be pasted into beats 3 and 4.

  • Overwrite

    The contents of the Clipboard replace entire measures, beginning at the first measure where you click the insertion point. The number of measures in the Clipboard determines how many measures in the editing region are replaced. All existing notes and all MIDI data, including MIDI controller data, are deleted in the measures being replaced. Full measures of data are inserted, beginning at the first measure where you click the insertion point. Because the entire measure is pasted as a unit, notes can only be pasted on beats that match their original positions in a measure. For example, a measure with two notes originally on beats 1 and 2 can only be pasted so the notes are again on beats 1 and 2.

To cut or copy a note or a region of notes

  1. Select the notes to cut or copy.
  2. Right-click the notes and click Cut or Copy on the shortcut menu. The selected material is either cut or copied to the Clipboard.

To paste the Clipboard contents into the editing region, or into another part or sequence

  1. Right-click the editing region of a part or sequence.

  2. Click Paste on the shortcut menu, and select Merge or Overwrite.

    Select Merge to merge the Clipboard content with the beats in the part or sequence, beginning at the beat where you click the insertion marker. No existing notes or MIDI data are replaced.

    or

    Select Overwrite to replace entire measures with the Clipboard content.

You may not be able to paste notes in a pattern while the pattern is playing. When you click the Paste command, the Merge and Overwrite options may be disabled. This indicates that you must stop playback before using the Paste command.

You can copy MIDI controller information between editing windows. You can also include MIDI controller information when you copy and paste material from a separate sequencing program. See Copying and Pasting MIDI Controller Curves.


Copying Notes Using the CTRL Key and Drag Feature

You can use the drag-and-drop feature to copy notes in the editing region of a part or sequence. For selected notes, hold the CTRL key and drag the notes to a new position in the editing region. The notes are duplicated as you drag them and are placed in the new location when you release the mouse.

The original notes are left unchanged, and the copied notes retain the properties of the original notes. However, the pitches and beat position of the copied notes may be different, depending on where you drag them. For example, if you use the CTRL key and drag feature to move notes to a later measure, the notes retain the same volume, length, and pitch, but their start and end times change.

When you use the CTRL key and drag feature to copy notes in Pattern Editor, notes are copied only into the variations they originally belonged to and which are open and displayed. The variations must have their buttons selected in the Variations strip. For example, if a note that belongs to Variations 1 and 3 is selected and copied to Variations 1 and 2 using the CTRL key and drag feature, the new note is copied only into Variation 1.


Using the Timeline and Selection Buttons to Cut and Paste Notes

You can use the timeline combined with the selection buttons on the left of a Sequence track or part display to highlight a large region of notes, and apply the Cut, Copy, and Paste commands to the region. The timeline shows the beats and measures in a sequence or part. Dragging the cursor across the timeline highlights the notes contained in the sequence or part.

After highlighting a section of the timeline, click the Selection button next to a part display or Sequence track to highlight the track. You can click the selection button of more than one part display or Sequence track to select material in more than one part or sequence. Material in the part displays or Sequence tracks is selected over the measures and beats highlighted in the timeline.

You can also click the Selection button of a part display or Sequence track and drag the cursor across a section of the timeline to highlight it. While the timeline is highlighted, you can click a Selection button to add a part display or Sequence track to the group, or click it again to remove it from the selection. While the timeline is highlighted, you can extend or shorten the selected region by dragging the right edge of the black region in the timeline.

Selecting notes using the timeline and selection buttons works, regardless of whether the Sequence track or part display is maximized. Thus, you can highlight, copy, cut, or paste material in any track or part in a segment or pattern, while some are maximized and some are minimized.

Dragging the cursor across the timeline selects music in one-beat increments. You can right-click the timeline, click the Snap To command, and choose a different increment for selection. For more information, see Snap To Command in the Timeline.

You can paste the Clipboard contents to any part display or Sequence track by clicking the Selection button of a part to indicate where you want to insert the Clipboard contents. Use the Paste command on the Edit menu to insert the Clipboard contents.

If you copy material from multiple tracks or parts to the Clipboard, you can click the selection buttons for an equal number of tracks or parts to paste the material to multiple tracks or parts. The vertical order of the tracks or parts is maintained, so the material is pasted from the topmost source to the topmost destination, from the second source to the second destination, and so on. If the number of source tracks or parts is greater than the number of destination track or parts, the material at the bottom of the source is omitted first.

Multiple selected tracks or parts do not have to be next to each other. You can copy material from noncontiguous source tracks or parts and paste the material to any destination tracks or parts.

When you paste the Clipboard contents to a part or sequence, be sure you choose the correct selection buttons for the intended part or sequence. If you choose the wrong selection buttons when you paste the contents, use the Undo command on the Edit menu to correct the mistake.

You can use the Cut, Copy, and Paste commands on the Edit menu to edit more than one Sequence track or part display at a time. The command is performed on all Sequence tracks or part displays that have active selection buttons. If you are editing only one Sequence track or part display, right-click the Sequence track or part display and click Cut, Copy, or Paste on the shortcut menu. The command is performed whether or not the selection button is activate.


Editing Notes Using the Note Properties Window

For any notes that you enter in a part or sequence, you can select a single note and then view and edit the properties of that note in the Note Properties window.

In Pattern Editor, the Note Properties window contains two tabs for editing notes:

  • Note(s) tab

    Contains settings to control playback for selected notes. This includes the behavior of the notes when they play over various chords in a segment, and how notes adjust to chord types.

  • Variations/Flags Tab (only for notes in a pattern)

    Contains settings to assign notes to any of the 32 variations in the part. This setting copies notes from one variation to another. It also overrides the settings of the variation buttons that were set when you originally inserted the notes.

In Sequence Editor, the Sequence Properties window is displayed and consists of only one tab:

  • Sequence Tab

    Contains settings to control playback for selected notes.


Note(s) Tab

For notes in a pattern, you can maximize a part display, select notes, and use the Note(s) tab in the Note Properties window to adjust the settings that control the playback of the notes. This includes settings for how notes play over various chords in a segment and how they adjust to chord types.

You can use the Note(s) tab to adjust the following settings:

  • MIDI Notes

    Defines the note name and octave independently for a single note, or for a group of notes that are the same pitch. MIDI note values range from C# 0 (zero) to G10, which are equivalent to MIDI numbers 1 through 127. Though you can enter the MIDI note C0, it has a MIDI number of 0, and DirectMusic Producer does not play this pitch. Also, if a pattern encounters a low chord in a segment, low notes may be transposed below C#0 and will not play.

  • Scale Function

    Defines the basic functionality of a note, with possible values ranging from 1 to 7. One is the lowest step of the scale, 7 is the highest. You can enter a modifier for the value that raises or lowers the setting by as much as seven half steps, shown as 7# and 7b, respectively. Scale Function indicates how the note is performed against a chord or scale. For example, a 5# against a D Major chord is performed as an A#, and a 3b against a D minor chord is performed as an E. As you enter notes in a pattern, their scale function is calculated according to the chord for composition used for the entire pattern.

  • Velocity

    Represents the speed at which the signal from a depressed MIDI piano key is sent, and is usually translated as volume. It can be used for one or more selected notes. You can specify a random offset that varies each time a note is played; this creates a less rigid, less computerized-sounding performance. Values for random velocity variation can range from -127 to zero to +127.

  • Playmode

    Overrides the Playmode setting for the entire part on a note-by-note basis and indicates how the notes are performed based on MIDI notes, chord values, and scale values. Playmode can be used for one or more selected notes. For information about the various options in the Playmode list and the Playmode setting in a part, see Play Modes.

  • Start Time, End Time, and Duration

    Defines the note start time, end time, and duration, expressed as bar (measure), beat, grid (divisions of the beat), and tick values (minute offsets from the grid, based on 768 ticks per quarter note). They can be used for one or more selected notes. Start time and duration can have a random offset that varies each time the note is played; this creates a less rigid, less computerized-sounding performance. Values for random start time and duration variation range from -1650 to zero to +1650. The values are pseudo-logarithmic and increase greatly with higher numbers. The values are counted by ones from zero to 190, by fives from 190 to 300, by tens from 300 through 500, and by fifties from 500 to 1650.

  • Map to Chord

    Determines the bar and beat location of the chord that notes map to. It can be used for one or more selected notes. This is particularly effective when a note occurs in anticipation of a chord change. For example, a note starting on the second half of beat 2 and sustaining into beat 3 should usually be mapped to beat 3. The default setting is the beat of the start time for the note.

  • Override Inversion Group

    Contains settings for creating and defining groups of notes that override the inversion boundaries set in the Parts Properties window. It can be used for one or more selected notes. All notes belonging to the same group are shifted together if the first note played in the group lands outside the inversion boundaries. For example, if you create a pattern with a chromatic run from C4 to C5, you can set the upper inversion to C5. Over a 2 C chord, the scale plays as expected all the way to C5. Over a 2 B chord, the scale plays as B4 to B5, nearly an octave higher. If the chromatic run is from C4 to G4 in the pattern, with an upper inversion boundary of G4, then the scale plays as B3 to F#4 when played over a B2 chord.

To adjust a note's properties

  1. Right-click a note in a maximized part display and click Properties on the shortcut menu.
  2. Press the TAB key or click a field to select it.
  3. Press the UP ARROW and DOWN ARROW keys to choose a setting, or type the desired setting in the text box.


Variations/Flags Tab

For notes in a pattern, you can maximize a part display, select a note, and use the Variations/Flags tab in the Note Properties window to adjust the variation assignment, and set flags that control how the note behaves during playback.

You can assign a note to any of the 32 variations in the part. In this way, you can change the variations that a note belongs to, without using the Cut, Copy, and Paste commands. This effectively copies a note from one variation to another. It also overrides the settings of the variation buttons that are set when you originally insert the notes.

You can select multiple notes and open the Properties window to assign all the notes to one or more variations.

To adjust the variations assignment for one or more notes

  1. In the maximized part display, select one or more notes.
  2. Right-click a note and click Properties on the shortcut menu.
  3. Click the Variations tab.
  4. Click the check box of a variation to add or remove the check mark. The notes are assigned to the checked variations.

The Variations/Flags tab contains four flags for controlling notes. These control whether a note is cut off when playback is interrupted or transitions to a different component. For more information, see Cut Off and Invalidation of Notes or Waves.

  • Don't cut off

    The note continues to play its full length when playback is interrupted or transitions.

  • Cut off if not in scale

    If the note is not in the chord scale , the note is cut off during a transition.

  • Regenerate on chord change

    The note is restarted during a transition, adjusting to a new chord if necessary.

  • Cut off if not in chord

    If the note is not a chord tone , the note is cut off during a transition.


Sequence Tab

For notes in a sequence, you can maximize a Sequence track, select a note, and use the Properties window to adjust the settings that control the playback of the note.

You can use the Sequence tab to adjust the following settings:

  • MIDI Note

    Defines the note name and octave independently for a single note.

  • Velocity

    Represents the speed at which the signal from a pressed MIDI piano key is sent, and is usually translated as volume. It can be used for one or more notes.

  • Start Time, End Time, and Duration

    Defines the note start time, end time, and duration, expressed as bar (measure), beat, grid (divisions of the beat), and tick values (minute offsets from the grid, based on 768 ticks per quarter note). These can be used for one or more notes.

  • Belongs to Beat

    Specifies the measure and beat that a note belongs to, which lets you physically place the note to play on a beat, but associate it logically with another beat. This is useful for creating notes that you want to include in a looping portion of a segment, but which are heard before or after the looping portion.

    For example, you might have a four measure segment in which only measures 2 and 3 are used for looping. A note that is physically positioned on beat 4 of measure 1 is normally not included in the loop. However, you can use the Belongs To settings to assign the note to measure 2, and the note will be included each time the loop occurs.

    For more information about limitations, see Belongs To Beat.

To adjust a note's properties

  1. Right-click a note in a maximized Sequence track and click Properties on the shortcut menu.
  2. Press the TAB key or click a field to select it.
  3. Press the UP ARROW and DOWN ARROW keys to choose a setting, or type the desired setting in the text box.


Editing Note Properties with the Mouse

You can use the mouse to edit a note or group of notes in the following four ways:

  • Move notes to different beats or divisions of the beat.
  • Move notes to different pitches in half-step increments.
  • Drag the top edge of a note to change its velocity.
  • Drag the left or right edge of a note to change its start or end time.


Cursors and Editing

The appearance and behavior of the cursor changes according to where you point on a note's rectangle. The cursor appearance reflects the type of edit you can make.

Move Cursor

If you point to the bottom half of a note grid space, the Move cursor is enabled. The Move cursor is shown in the following illustration.

The Move cursor moves a note vertically, in half-step increments, and horizontally, in grid increments.

You can also use the arrow keys to move notes while you hold the mouse button. The UP ARROW and DOWN ARROW keys move the note in half-step increments, and the LEFT ARROW and RIGHT ARROW keys move the note in grid increments.

Velocity Cursor

If you point to the top half of a note's grid space, the Velocity cursor is enabled. The Velocity cursor is shown in the following illustration.

You can use the Velocity cursor to drag the top edge of a note to change its velocity value, from 1 to 127, in increments of 5.

For finer editing, you can use the arrow keys on the keyboard to change the velocity while you hold the mouse button. The UP ARROW and DOWN ARROW keys change the value of the velocity in increments of 1.

Start Time Cursor

If you point to the left edge of a note's rectangle, the Start Time cursor is enabled. It is characterized by the vertical line on the right side of the cursor, as shown in the following illustration.

You can use the Start Time cursor to drag the left edge of a note in grid increments. This moves the beginning of the note to an earlier point.

For finer editing, you can use the arrow keys to change the start time while you hold the mouse button. The LEFT ARROW and RIGHT ARROW keys change the start time in increments of one tick.

End Time Cursor

If you point to the right edge of a note's rectangle, the End Time cursor is enabled. It is characterized by the vertical line on the left side of the cursor, as shown in the following illustration.

You can use the End Time cursor to drag the right edge of a note in grid increments.

For finer editing, you can use the arrow keys to change the end time while you hold the mouse button. The LEFT ARROW and RIGHT ARROW keys change the end time in increments of one tick.


Continuous Controllers

You can place continuous controller data into a sequence or pattern part for numerous types of MIDI controllers, including the following:

  • Standard MIDI controller types
    • Pitch Bend
    • Mod Wheel
    • Volume
    • Pan
    • Expression Controller
    • Sustain
  • Additional types available
    • Balance
    • Portamento Time
    • Breath Controller
    • Foot Controller
    • Soft Pedal
    • Sostenuto
    • Hold
    • Others
  • Special controller types for the Microsoft Synthesizer
    • Ext Effect (Reverb) Depth
    • Chorus

Note If you are using Microsoft Synthesizer for file playback or if you are creating files that will be used in a software application or game that uses Microsoft Synthesizer, you should use only the six, standard controllers shown in this list, and the two special controller types for the Microsoft Synthesizer. Microsoft Synthesizer does not support other controller types. For information about the Ext Effect (Reverb) Depth and Chorus controllers, see Special Controller Types.

Inserting continuous controller data into a sequence track or pattern part affects the playback of MIDI notes the same way as using a MIDI controller device, such as the pitch bend wheel, during a live performance using a MIDI instrument.

You place continuous controller data in a sequence or pattern part by creating a "CC track", and inserting a graphic curve to represent the timing and magnitude for the controller. The following illustration shows a pitch bend (PB) controller operating during the beats when four notes occur.

The illustration shows a curve with several small, black shaping boxes around it. You can shape and stretch the occurrence of the continuous data by dragging the shaping boxes in any direction.

The pitch bend curve affects the notes that play while the curve is active. When designing pattern parts, you can activate one or more variations, and insert a curve that affects only the notes in active variations. The preceding illustration shows Variation 1 is active. The notes and curve are inserted only in Variation 1.

You can insert multiple curves of the same type in a CC track. For example, you can shape the vibrato used for a part by inserting a Mod Wheel curve in one measure, and inserting several other Mod Wheel curves in later measures.

You can also insert a reset curve at the end of a segment or pattern, which sets the Mod Wheel curve back to zero or some appropriate level that will be used if the segment or pattern loops, or if playback transitions to a new component. See Reset Curves.

You can also make adjustments to the placement of continuous controller data and its effect by right-clicking the curve to open a Curve Properties window.

To insert a continuous controller curve

  1. In Pattern Editor, open a piano roll and scroll to the Continuous Controller (CC) track.
  2. Right-click a CC and click Add New CC Track on the shortcut menu.
  3. In the Add New CC Track window, select a type of control change to use and click OK.
  4. In the CC track, click the Maximize button.
  5. Right-click the CC track and click Draw Curve on the shortcut menu.
  6. Drag the cursor in the CC track to enter a graphic curve across the width of the window.
  7. Click the new curve to display the shaping boxes, or right-click the curve and click Properties on the shortcut menu.
  8. Edit as required.

Note If you use continuous controller data to control volume or pan settings in a pattern or sequence, it affects settings for volume and pan in any bands using the same PChannels. See Band Conflicts with Continuous Controllers.

You can use the draw option by clicking the Curve strip and pressing and releasing the INSERT key. You can then drag the cursor in the CC track to enter a graphic curve across the width of the window.

You can copy and paste curves to other variations, parts, and styles. The destination CC track must be the same type as the source track and you must use the Paste Merge command to fit the curve with existing material in the variations. For information, see Copying and Pasting MIDI Controller Curves.


Special Controller Types

There are two special controller types provided for use only with the Microsoft Synthesizer:

  • 91 Ext Effect (Reverb) Depth
  • 93 Chorus

You can use these two controller types to control over time the volume level of any buffer in an audiopath. This allows you to use a buffer with reverb or a chorus effect and increase its volume relative to other buffers in the same mix group.

Changing the volume of either reverb or chorus over time is the only use of these two controller curves with the numbers 91 and 93 when using the Microsoft Synthesizer. Other synthesizers might have a different use for curves with these identification numbers.

The most convenient way to use one of these controllers is in conjunction with the Standard Stereo and Reverb audiopath. If you select it in the Audiopath list, then the output from all PChannels goes through two buffers: a Standard Stereo buffer using no effects, and a Standard Reverb buffer using a reverb effect. See Standard Audiopaths.

Using this audiopath, any sequence or pattern containing an Ext Effect (Reverb) Depth controller plays with the mixture of normal stereo sound and reverb sound changing over time. As the volume of the reverb buffer increases, the mix of the reverb increases.

For example, the following illustration shows a segment sequence with an Ext Effect (Reverb) Depth controller curve extending over six measures. Using the Standard Stereo and Reverb audiopath, the reverb increases.

If you create a new audiopath with a Standard Reverb buffer, the buffer will also respond to the Ext Effects (Reverb) Depth controller. If you insert a Standard Stereo buffer in the same mix group, this is equal to using the Standard Stereo and Reverb audiopath.

You can also create a create an audiopath that responds to the Ext Effects (Reverb) Depth controller or the Chorus controller by inserting a Reverb Send bus or a Chorus Send bus.

The Ext Effects (Reverb) Depth controller and the Chorus controller can be used to control any User Defined buffer, regardless of whether it contains an effect. Only the volume of buffers using the Reverb Send bus are affected by the Ext Effects (Reverb) Depth controller. Only the volume of buffers using the Chorus Send bus are affected by the Chorus controller.

For more information about using the Reverb Send and Chorus Send buses, see Reverb Send and Chorus Send Buses_dx_Reverb_Send_and_Chorus_Send_Buses_dmusprod. For more general information about using buses and buffers in an audiopath, see Audiopath Designer_dx_Audiopath_Designer_dmusprod.


Curve Properties

You can make adjustments to the placement of continuous controller data and its effect by right-clicking the curve and clicking Properties on the shortcut menu. A window similar to the following is displayed.

The Curve Properties window contains the following three tabs:

  • Curve(s) tab

    Contains settings for the start and end time, the start and end MIDI controller values, curve shape, and options for flipping the curve horizontally or vertically.

  • Reset tab

    Contains settings for the default value that the curve should reset to if it is interrupted during playback. This prevents the curve from affecting notes when playback begins again, or if playback transitions to a different component.

  • Variations tab

    Contains settings for assigning the curve to variations in a part. You can also assign a curve to a variation using the variation buttons when you insert the continuous controller. For more information, see Variations Strip.


Curves Tab

The Curve(s) tab in the Curve Properties window contains settings for the timing, values, and shape of one or more selected curves in a CC Track.

Use this window to adjust the following settings in one or more selected curves:

  • Start Time, End Time, and Duration

    Defines the start time, end time, and duration, expressed as bar, beat, grid (divisions of the beat), and tick values (minute offsets from the grid, based on 768 ticks per quarter note). If you edit the start time, the duration remains unchanged, and the end time adjusts automatically. If you edit the end time, the start time remains unchanged and the duration adjusts automatically. If you edit the duration, the start time remains unchanged, and the end time adjusts automatically.

  • Start Value

    The value of the curve setting at its beginning.

  • End Value

    The value of the curve setting at its end.

  • Start From Current

    If you select the Start From Current option, the current value for the controller type at the time the curve starts replaces the Start Value. For example, if another curve in the segment has previously set the controller to a different value, then that value is used in place of the Start Value shown in this Properties window.

  • Type

    Choose a shape to apply to the curve. You can choose Sine, Logarithmic, Exponential, Instant, and Linear.

  • Flip Vertical or Flip Horizontal

    Flip the shape to control the shape and design of the curve.

  • Additive Curve ID

    Additive Curve IDs allow multiple curves on a controller to be used simultaneously. Traditionally, two or more curves on the same controller would clash with each other, causing controller values to potentially fluctuate greatly. But curves that use different Additive Curve IDs will instead sum when played simultaneously. For example, if a segment uses a pitchbend curve with Additive Curve ID 0 and at the same time, a secondary segment uses a pitchbend curve with Additive Curve ID 1, the two curves will be added together as they are played.

    Additive Curve ID is not supported for all curves. The following curve types use the setting: Transpose, Pitch Bend, Volume, Expression, Pan, Filter, Mod Wheel, Chorus, and Reverb.

If you select more than one curve in a track, then only the values that are equal in all selected curves are shown. All other fields are left empty. The following figure shows the Properties window for two similar curves with the same duration, start and end values, and type. However, the two curves begin and end on different measures and beats.


Reset Curves

For any CC track in a segment or pattern, you can insert a curve at the end of the track to act as a "reset curve" for curves of the same type occurring earlier in the track. This sets the controller back to an appropriate level for when the segment or pattern loops, or if playback transitions to a new component.

For example, you can shape the vibrato of a part by inserting several Mod Wheel curves in different measures of a pattern. As each curve is reached during playback, the Mod Wheel setting is changed by the curves. If you place a final Mod Wheel curve in the last measure of the track with a value of zero, playback can loop back to the beginning of the pattern, or transition to some other component, without the Mod Wheel controller affecting any notes.

You can also use settings in the Properties window of a controller curve, so that if playback of a segment or pattern ends before a reset curve is reached, the controller resets itself to an appropriate setting. See Reset tab.


Reset Tab

The Reset tab in the Curve Properties window contains settings for the default value that the curve should reset to if playback of a segment or pattern containing the curve is interrupted or transitions to a different component. If a curve starts during playback and is interrupted before it ends, the curve does not reach its normal end point and the curve setting remains at the level it reached when interrupted. When playback begins again or transitions to a new component, the curve may affect notes that you do not want it to. Settings in the Reset tab prevent a curve from incorrectly affecting notes by returning it to an appropriate fallback level.

Settings in the Reset tab are used in two situations:

  • Playback is interrupted during a controller curve, so that its final setting is not reached.
  • Playback is interrupted before a reset curve is reached.

You can right-click a controller curve and click Properties to open the Reset tab.

Click Enable Reset to turn on curve resetting.

The Reset Value box is set to zero by default. Choose a value to ensure that after the curve is reset, it does not affect notes it was not intended for. Using zero as the reset value, a curve is set to the lowest possible value. For most types of curves, such as pitch bend or modulation wheel, the default setting of zero is best because it completely cancels the curve's effects. For some types of curves, such as volume or expression, a setting of zero would create silence and may not be appropriate.

Reset Duration fields tell how long after a curve begins the reset value should be applied if playback is interrupted. If playback is interrupted during the duration period you choose, the reset value is applied to the curve.

There are several options for choosing reset duration:

  • Exactly duration of the curve

    Useful when a curve ends with a final level that is appropriate for further looping or transitions. If the curve passes without playback interruption, settings in the Reset tab are not applied.

  • Longer than the duration of the curve

    Useful if a curve does not end at a final value for looping, and a reset curve sets the final value. For example, if a segment has a Volume curve that ends with a very high setting, a reset curve may be needed to bring the volume back down to a normal level for segment looping. If playback is interrupted before the reset curve is reached, the reset value from the Reset tab is applied. Typically, the reset duration lasts until the last beat and tick before the final reset curve.

    You can also use a duration longer than the curve when there are multiple curves in the same track. For example, consider a segment with a series of Volume curves that adjust a part's volume to different levels during playback. In this case, the reset duration of each curve can extend to the last beat and tick before the next curve in the track. Extending the reset duration of one curve beyond the beginning of another curve can cause the conflicts between the volumes you intend each curve to control.

  • Shorter than the duration of the curve

    Useful if there are notes in the pattern or segment that will play beyond the time that playback transitions to another component. For example, you can set a Don't cut off flag in the Properties window of a pattern note so the note continues to play its full duration after playback of the pattern has been interrupted or a transition occurs.

    When a note is not cut off, the curve continues to affect the held note, applying any changing values, until the held note reaches its full duration. However, before the held note begins, the curve may already be affecting other notes. In this case, you may want a reset value applied if playback transitions before the beginning of the held note. Choosing a reset duration that occurs before the held note begins allows the controller curve to complete itself after the held note begins.

    For information about setting flags for a pattern note, see Variations/Flags Tab.

Limitations

Choosing too long a reset duration value can have unexpected results. If the value would cause the reset to occur after the end of the pattern or segment, then it is possible to have multiple curves of the same controller type that reset to different values. In this case, it is impossible to know which would take precedence.

Choosing too short a reset duration value can also have unexpected results. For example, if the duration is set to 0 bars, 0 beats, 0 grids, and 1 tick, it means the curve would only reset if the performance was interrupted within 1 tick of the start of the curve, that is, immediately.

Note Invalidation and Cut Off Notes

When playback is interrupted or transitions to a new component, the MIDI signal of a note is cancelled by an "invalidation" signal. DirectMusic Producer provides settings in many components so you can control whether or not a note is cut off abruptly, or is allowed to complete its full duration. See Cut Off and Invalidation of Notes or Waves.


Copying and Pasting MIDI Controller Curves

You can copy and paste MIDI controller curves in the editing pane of Sequence Editor or Pattern Editor in the same way you do for notes. This includes selecting the contents of the Controller Curves track using the mouse, the timeline, and a menu command such as Select All and Copy. You can also right-click a curve and open the Properties window to assign the curve to multiple variations, in the same way you do for notes. For more information, see Selecting and Editing Notes.


Pitch Bend Range Curves

This feature has been permanently removed from DirectMusic Producer.


Pick-Up Measures

You can enter notes in a measure that occurs before the beginning of a sequence track or a pattern part, so that the notes play as pick-up notes. Pick-up notes are positioned in "measure zero" of the sequence or pattern. The following illustration shows a pick-up measure that occurs before measure one of a pattern part, and has no measure number.

‹ [image] ›

To be visibly different from normal measures, pickup measures have a gray background next to each black key in the pitch guide (only when viewing piano roll notation), and pick-up notes are displayed with hash marks.

You can add a pick-up measure to a segment or part in a pattern by opening its Properties window. Click the Length button, and select the option for Display pick-up bar, as shown in the following figure.

›

Only a single pick-up measure can be created before the beginning of a part or track. After you have created a pick-up measure, you can insert notes in the same way as you do for any other measures. See Note Entry and Editing.

A pick-up measure is displayed only in parts or tracks that contain pick-up notes. Other parts or tracks display an empty region in place of the pick-up measure. However, if you delete all pick-up notes from a pick-up measure, the pick-up measure remains visible. If a pattern or sequence has never contained pick-up notes, then no pick-up measures are displayed, and the normal measures are positioned at the left edge of the edit pane.

You can also record pick-up notes in a sequence track or pattern part during the count-in bars that are played by the metronome as you begin recording in real time. Using the Metronome Options window, you can choose any number of count-in bars. However, you can record pick-up notes only in the final count-in bar before the beginning of the pattern or sequence. For information about using the metronome, see Toggle Metronome button.

To enter pick-up notes using real time MIDI Recording

  1. If necessary, right-click the Toggle Metronome button and enter the number of count-in bars you want to hear prior to the beginning of the pattern or sequence you are editing.
  2. In the Transport Controls toolbar, click the Record button to activate recording.
  3. When you are ready to record pick-up notes, click the Play from Beginning button in the Transport Controls toolbar to begin recording.
  4. Using the MIDI recording device, enter the desired pick-up notes during the final count-in bar.

For more information about entering notes in real time using a MIDI recording device, see MIDI Recording.

Note DirectMusic Producer allows only one second of pick-up notes to be heard. If notes are more than one second before the start of the segment or pattern, they are clipped or silent during playback. However, a software developer can change the prepare time in the DirectMusic playback of your file to extend the prepare time allowed before the beginning of a file, making notes audible that occur more than one second before the beginning of a file. For explanation, refer to the topic "Prepare Time and Latency Time" in the DirectMusic SDK documentation.


Extension Measures

You can enter notes in a measure that occurs after the final measure of a sequence or a pattern, so that the notes play as follow-up notes. Follow-up notes are positioned in an extra, unnumbered measure, called an extension measure. The following illustration shows a follow-up measure that occurs after measure one of a pattern.

To visibly differ from normal measures, extension measures have a gray background next to each black key in the pitch guide (only when viewing piano roll notation), and follow-up notes are displayed with hash marks.

You can add an extension measure to a segment or part in a pattern by opening its Properties window. Click the Length button, and enter a number in the Extension bars box, as shown in the following figure.

›

You can create any number of extension measures after the end of a part or track. After you have created an extention measure, you can insert notes in the same way as you do for any other measure. See Note Entry and Editing.

An extension measure is displayed only in parts or tracks that contain follow-up notes. Other parts or tracks display an empty region in place of the extension measure. However, if you delete all follow-up notes from an extension measure, the measure remains visible. If a pattern or sequence has never contained follow-up notes, then no extension measures are displayed, and the normal measures are positioned at the right edge of the pane.


Segment Designer

The most important component in Microsoft® DirectMusic® Producer is the segment. A segment functions as a holder for multiple musical elements. These elements provide the notes, rests, rhythms, chords, and instrument choices for a performance. As you create a segment, you can specify the tempo, start and stop time, number of repeats, and other parameters for how the segment plays.

Most music can be divided into segments that consist of specific phases of a performance. For example, a song played by a live ensemble might consist of a verse segment followed by a chorus segment, then another verse segment, a bridge segment, and so on. Segments in DirectMusic Producer are typically around 16 measures, but can be up to 999 measures, and are designed to loop, or repeat, during playback. The amount of variability you build into a segment determines how differently the playback sounds each time it loops.

You can use Segment Designer to create a segment, or to open and edit an existing segment. You can create three basic types of segments:

  • Style-based segment

    Provides variable music. The segment contains one or more styles, and plays the variations of the styles by combining them with chords, bands, and other musical elements to create a musical piece that plays differently each time you use it. See Style-Based Segments. You can also add a Signpost track and a Chordmap track to create variable chord progressions, so the segment uses a new set of chords each time it plays. See Variable Chord Progressions.

  • Sequence-based segment

    Plays a fixed sequence of MIDI data, with options for flexibility and control of playback. The segment contains a sequence of MIDI data that is imported as a MIDI file or created in the Sequence track using the mouse or MIDI recording. The sequenced notes and rhythms are combined with instrumentation and other musical elements to create a musical piece. See Sequence-Based Segments.

  • Wave-based segment

    Plays one or more wave files. You can create variations of waves to provide variable performances each time the segment loops. See Wave-Based Segments.

For each type of segment, you can exercise as much control as you need over the shape of a musical piece by inserting instructions in the segment tracks for playing with high or low intensity, playing an embellishment, playing a particular chord sequence, and much more.

You can also mix these three segment types to create a segment that uses a combination of styles, waves, and sequences. You can add any kind of track to a segment at any time, and insert any data you want to enhance the performance.

A segment is also the primary file type used by the Microsoft® DirectMusic® components of the Microsoft® Windows® operating system. When you provide musical content to play through the DirectMusic components in a software application or Web site, DirectMusic receives the data in the form of a segment file. For more information, see Using Files in the Developer Environment.

You can design any segment so it plays the same way each time it is used, or so that it has variable playback. See Variability.


Style-Based Segments

A style-based segment is used to create a musical piece that plays with a medium level of variability. It uses the variable content of style files to provide a musical performance that is different each time it plays. The segment can vary even when it is simply repeating during playback. The segment provides the overall structure to the musical performance, such as the length, key, chord structure, number of repeats, levels of intensity, and so on. The style provides the notes. Because a style contains multiple variations in its patterns, the performance of a style-based segment sounds different each time it plays. For more information about the different levels of variability that you can design in a segment, see Variability.

The primary use of a style-based segment is to combine styles and chords, creating a phrase of music with a specific length. The segment has a Chord track into which you can insert chords. As the segment plays, the notes in the style patterns change pitch to fit the chords.

A segment can contain multiple styles. This allows the type of music to change during the playback of a single segment. Similarly, a segment can contain multiple bands, so the instrumentation changes. You can also change tempos, intensity levels, and other musical parameters to design a music performance. For more information about the structure of a segment, see Minimum Segment Structure.

You can add a Signpost track and a Chordmap track to create a more flexible type of style-based segment in which the chord progression is variable. See Variable Chord Progressions.

Note A segment that uses a chordmap has been referred to in earlier releases of DirectMusic Producer as a template. Throughout this documentation, any reference to templates can be understood to mean segments that use chordmaps.


Sequence-Based Segments

A sequence-based segment is used to create a musical piece that plays with a low level of variability. It plays a fixed sequence of notes stored in the Sequence track of the segment. You can create a sequence-based segment by importing a file of sequenced MIDI data. You can enter notes in the Sequence track using the mouse or MIDI recording. For more information, see Importing a MIDI File as a Segment or Note Entry and Editing. The sequenced notes and rhythms are combined with bands and other musical elements to create a musical piece.

After you create a segment containing a sequence, you can add elements to adjust the way it plays. These elements include tempo changes, varying instrumentation, repeats, and more. For more information about the structure of a segment, see Minimum Segment Structure.

You can use Segment Designer to create a more flexible type of segment based on a style, as described in Style-Based Segments. For more information about the different levels of variability that you can design in a segment, see Variability.


Wave-Based Segments

A wave-based segment is used to create a musical piece that plays one or more wave files stored in Wave tracks. You can design a wave-based segment to play with variability by creating up to 32 variations for each wave track. You can vary the waves contained in each variation, and use options to adjust the length of a wave, how a wave loops, and other wave parameters. You can also edit a wave using Wave Editor, and insert an edited version of the wave into a variation.

After you create a segment containing waves, you can add elements to adjust the way each wave plays. This includes tempo changes, repeats, adding sequences or styles, and more. For more information about the structure of a segment, see Minimum Segment Structure.


Opening a Segment

You open a segment by double-clicking its icon in the project tree. The extension for a segment file is .sgp, as shown in the following figure. The segment icon and file name match those that you would see in Microsoft® Windows® Explorer.

You can add a segment to the project tree by loading a segment that has been saved or by creating a new segment. For more information, see Adding Existing Components to the Project Tree or Creating a New Segment.

You can double-click the segment icon to display the internal icon and the name contained in the segment file, as shown in the following figure.

Internal names and icons are used as references to files within the Microsoft® DirectMusic® Producer program. They do not appear in Windows Explorer. For more information about file names and internal names, see Project and Component Names in the Project Tree.

Opening a segment launches Segment Designer and displays the contents of the segment in the Segment Designer window, similar to the one in the following figure.

For more information about the contents of a segment, see Segment Designer Window.


Segment Designer Window

Opening a segment launches Segment Designer, displaying a window similar to the following.

The segment in this illustration contains the following elements:

  • Timeline

    The timeline is measured in beats and measures, with an option for showing elapsed time in seconds.

  • Segment Tracks

    A segment can have numerous tracks containing the musical elements that combine to create a musical piece. These include tracks for styles, chords, time signatures, tempos, bands, MIDI sequences, script files, lyrics, and more. Musical elements occur at precise points in time, as defined by the timeline.


Creating a New Segment

You can click the New command on the File menu to add a new, empty segment to a project. For more information, see Creating New Projects and Components.

Before creating a new segment, you can decide whether it will be sequence-based, style-based, wave-based, or some combination of these three segment types. Depending on which type of segment you want, you can add various tracks as you create the new segment. For information on the tracks each type of segment uses, see Minimum Segment Structure.

Regardless of what tracks you insert in a segment, you can add or remove tracks at any time. See Adding New Tracks.

You can also create a new segment by importing a file of MIDI data. See Importing a MIDI File as a Segment.

To create a new segment

  1. On the File menu, click New.
  2. In the File Types list, click Segment.
  3. Click OK to automatically select a new default name for the segment, such as Segment1. You can also click Use Default Name to enable the Name box, enter a name for the segment, and click OK. The following window is displayed.

  4. In the list, select a track type to insert. Press the CTRL key and then click additional track types to add them to the selected list of track types to insert. You can also drag the mouse across the entire list to select all track types, or press SHIFT and click any two track types to select everything between the two places where you click. For more information about the different track types, see Segment Tracks.
  5. Click OK. An icon for the new segment is added to the project, and the segment is opened in Segment Designer.

Regardless of which track types you include, a new segment has the following default properties and settings:

  • Default length of 20 measures

    For more information, see Segment Length.

  • Default time signature of 4/4

    By default, the timeline contains four beats per measure. If you select a style to play using the segment, the time signature of the style is inserted in the segment. Otherwise, the default time signature of 4/4 remains in effect. For more information, see Segment Time Signatures.

  • The 2 C M chord is used in the first measure by default

    The musical material of any style used with the segment will play using a 2 C M chord until you place other chords in the Chords track of the segment. For information about building the contents of a segment and inserting data in it, see Entering Data in a Segment.

  • Default key signature is C.

    By default, the key signature of a segment is C. This setting is contained in the Chord Track Properties window.

You add new tracks to a segment at any time, and insert additional data into the tracks, to enhance the performance. For more information about inserting data into a segment, see Entering Data in a Segment.


Minimum Segment Structure

In order to play, a segment must contain enough musical elements to provide information about the notes to play and the instrumentation to use. A segment must meet one of the following minimum setup requirements:

  • Minimum Setup 1: Segment based on a style

    Requires a Style track containing at least one style and a Band track containing at least one band. The default band for a style is inserted in the Band track when you first insert the style into the segment. If there is no Band track in the segment, one is added automatically.

  • Minimum Setup 2: Segment based on an imported MIDI file

    Requires a Sequence track containing MIDI data and a Band track containing at least one band. The instrument settings of a MIDI file are inserted as a band in the Band track when you first import the MIDI file as a segment.

  • Minimum Setup 3: Segment based on a wave

    Requires a Wave track containing at least one wave.

Note You are not required to include a Band track in minimum setup 1 or 2. If you do not include a Band track, then no instrument sounds are loaded in the memory for playback and no MIDI program changes are sent to the playback port. This results in playback using only the default GM patch 00 instrument sound, playback being silent, or playback using the instrument sounds that were last used for the PChannels. For more information, see Bands in Segments. Alternatively, you can include band information in a secondary segment, so that instrument assignments are sent to the PChannels. Since a wave is self-contained and plays without using MIDI instrument sounds, a wave-based segment does not require a band track for playback to be heard.

In addition to the minimum requirements, you can add tracks to a segment and place different musical elements in those tracks. As you add more elements to a segment, you can control the playback behavior of the segment. For more information, see Segment Designer Window.


Using Segments

You use a segment to bring together the design elements that go into a piece of music. These elements are defined as the notes, instruments, tempos, length, intensity levels, and other aspects of the performance. You can gather these elements in one segment, or you can create many segments and use them together. Each segment can be expanded and designed as you like, and it can hold as much or as little musical information as you need it to.

When you design a segment and insert musical data, you can set parameters to control the playback of the data. The segment design you define will determine the variability of the playback each time the segment plays. For more information, see Variability.

Microsoft® DirectMusic® Producer can play up to 100 segments at one time. This enables you to combine the sounds of multiple segments regardless of their content. For more information, see Using Multiple Segments.

You can play segments in a variety of ways:

  • Play a segment by setting it to loop multiple times during playback. For more information, see Segment Properties).
  • Design a transition between two segments so that moving from one segment to the next during playback is as smooth or abrupt as you like. For more information, see Transitions.
  • Combine multiple segments to play at the same time, so that their sounds are layered during playback. For more information, see Using Multiple Segments.
  • Design scripts that string together multiple segments to create a single, longer piece. See Script Designer.


Using Multiple Segments

DirectMusic Producer can play up to 100 segments at one time. This enable you to combine multiple segments, regardless of their content. When multiple segments are played, one segment is considered the primary segment, and all other segments are considered secondary segments. The primary segment provides basic parameters to a performance, such as the tempo, and is considered the main part of a performance. For more information, see Primary Segments.

A secondary segment is layered on top of the primary segment. You can control how quickly a secondary segment begins playback, so that the entrance of a secondary segment does not interrupt the sound of the primary segment. For more information, see Secondary Segments.

If you want to string together multiple segments to form one long piece, you can create a script that contains commands to play the segments in order. See Script Designer.

When you create segments for use in a computer game, Web page, or multimedia title, DirectMusic can play any number of segments at one time, or it can play a string of segments for any length of time, in any order. This enables a software developer to use your segment files to provide a musical performance of any length, using the sounds of multiple segments, with smooth or abrupt transitions from one segment to another. For information about delivering DirectMusic Producer files to a software developer, see Using Files in the Developer Environment.


Entering Data in a Segment

A segment contains numerous tracks in which you can insert various files and Microsoft® DirectMusic® Producer components. You can also enter data in tracks to control how the segment plays, by using two basic methods to insert items into the tracks:

  • Click a track and press the INSERT key.
  • Right-click a track and then on the shortcut menu, click Insert.

Both methods display a Properties window in which you can choose an item from a list to insert, or locate the item on your computer. See Choosing a Position for Data in a Segment.

You can also use the drag-and-drop feature to move items between windows and copy items from one track to another. For more information, see Drag and Drop.

Much of the musical data in a segment is inserted as complete files into one of the tracks in a segment. You can insert the following files into a segment:

  • MIDI files

    A sequence of MIDI data can be imported as a segment. See Importing a MIDI File as a Segment. You can also enter MIDI sequence data directly into a segment using the mouse or MIDI recording.

  • Style files

    Files containing notes and rhythms that play with variability. See Style Track.

  • Wave Files

    Files with a .wav extension, created by digitally sampling the sound of a musical instrument or other acoustic sound source. See Wave Track.

• Band files

Files containing instrument assignments for each Performance Channel (PChannel) in the segment. See Band Track.

  • Chordmap files

    Provide predesigned sets of variable chord changes for the segment. See Variable Chord Progressions.

  • Script Routines

    Programmed scripts of computer commands that work directly with the DirectMusic DLLs to control playback of performances. See Script Track.

You can place the following other musical elements in a segment to enhance its playback:

  • Individual chords

    For a style-based segment, you can insert chords in the Chord track. Notes in patterns and styles adjust during playback to fit the chords. See Chord Track.

  • Individual patterns

    A single pattern such as you would create in a style. Essentially a sequence that contains variations and takes advantage of style note functionality. This enables you to avoid inserting an entire style file with multiple patterns, when only a single pattern is used in the segment. See Pattern Track.

The files and musical elements you insert in a segment combine during playback to create a musical performance. After you create a segment, you can use the segment to control how the musical elements play, including settings for the following parameters:

  • Length

    Set the segment length up to 999 measures. See Segment Properties.

  • Repeats

    Set a segment to loop up to 32,767 times. See Segment Properties.

  • Loop Points

    Select a segment region to use for looping. See Segment Properties.

  • Tempo changes

    Insert a tempo marking at any point in the segment. See Tempo Track.

  • Segment triggers

    Insert a trigger to start playback of any other segment or motif. See Segment Trigger Track.

  • Precise positioning

    Position a music data file, or other musical element, to begin and end on a specific measure, beat, grid division, or tick. See Properties Windows.


Choosing a Position for Data in a Segment

In many cases, the Properties window that is displayed when you insert an item lets you enter a measure, beat, grid division, and tick onto which the item is to begin or be placed. For items which must occur at the beginning of the segment, or on the beginning of the measure where you click, options for choosing a position are omitted from the Properties window. The following figure shows the Properties window of a band that is positioned on measure 1 (bar 1), beat 1, and tick -1.

Some items that you can position on a measure, beat, division and grid include a Belongs To setting. Use this to associate the item with a beat other than the one where it is played. See Belongs To Beat.

You can also use the drag-and-drop feature to move items from one place in a track to another. For more information, see Drag and Drop.


Belongs to Beat

For many items that you place into the tracks of a segment, the Properties window includes a Belongs To or Belongs to Beat setting. You can use this setting to specify a measure and beat that the item is attached to, even if the item is positioned somewhere else in the segment. This lets you physically place the item so it plays on one beat, but associate it logically with another beat. This is useful when you want an item to be heard before or after a looping portion of a segment, but you want to include the item in the looping portion.

For example, you might have a four-measure segment in which only measures 2 and 3 are used for looping. A note that is physically positioned on beat 4 of measure 1 is normally not included in the loop. However, you can use the Belongs To setting to assign the note to measure 2, and the note will be included each time the loop occurs.

Note The offset you use in the Belongs to Beat setting is limited to approximately one second before or after the physical position of the original note. Depending on the tempo, this is equal to around one beat of offset that a note can extend outside the portion of a segment or pattern that is playing. If a note is offset more than one second, it can be clipped or silent during playback. However, a software developer can change the prepare time in the DirectMusic playback of your file to extend the prepare time allowed before the beginning of a file, making notes audible that occur more than one second before the beginning of a file. For explanation, refer to the topic "Prepare Time and Latency Time" in the DirectMusic SDK documentation.

The Belongs To Beat setting is included in the properties of the following items that you can insert in segment tracks:

  • Sequence Notes
  • Bands
  • Segment Triggers and Motif Triggers
  • Scripts
  • Lyrics
  • Waves

For information about entering data in these and other tracks, see Segment Tracks.


Segment Tracks

A segment contains numerous tracks in which you can insert various files and Microsoft® DirectMusic® Producer components, such as a style or a band. You can also choose options for how the segment plays. See Entering Data in a Segment.

You can add new tracks to a segment at any time. See Adding New Tracks.

Each track in a segment has a Properties window that you can open to adjust settings for the track. See Properties Windows for Segment Tracks.

A segment can contain the following track types:

  • Band Track

    Contains any number of bands you design for the segment, bands contained in styles used in the segment, a band imported with a MIDI file, or bands inserted in the segment from elsewhere in the project tree.

  • Chord Track

    Contains chords you insert or edit with the mouse. You can also use an automatic composing feature for drawing a chord progression from the chordmap in the Chordmap track.

  • Chordmap Track

    Contains a chordmap file to generate variable chord progressions. See Variable Chord Progressions.

  • Groove and Embellishment Track

    Contains instructions for switching to a different intensity, or groove level, of a style. Also contains instructions for playing any of the four embellishments of a style, including intro, fill, break, and ending.

  • Lyrics Notification Track

    Contains the text for any lyrics. Lyrics can be used in a variety of ways, including the display of lyrics and performance instructions during live performances.

  • Marker Track

    Contains markers for appropriate points in the segment where playback of a segment can end, a secondary segments can begin, or a transition to another segment can take place.

  • Mute Track

    Contains mute commands for any PChannel. All data that would normally affect a PChannel, including playback output, is muted, regardless of whether it is coming from a style, wave, or sequence in the segment. You can also right-click a PChannel in the Mute list to reassign it to a different PChannel. All events from the Sequence and Style tracks will be assigned to the new PChannel.

  • Pattern Track

    Contains individual patterns you create within the segment. Each pattern is essentially a sequence that contains variations and takes advantage of style note functionality.

  • Parameter Control Track

    Contains curves that control timing and levels for audio effects contained in an Audiopath file.

  • Script Track

    Contains one or more programmed script commands that work directly with the DirectMusic DLLs to control playback of performances.

  • Segment Trigger Track

    Contains triggers for segments or motifs. These trigger playback of segment or motifs in a specific order and with specific start times that you choose.

  • Sequence Track

    Contains a sequence of imported MIDI data (see Importing a MIDI File as a Segment), or MIDI data you enter using the mouse or MIDI recording (see Note Entry and Editing).

  • Signpost Track

    For use only with segments that use chordmaps . See Variable Chord Progressions.

  • Style Track

    Contains one or more styles that consist of musical patterns, rhythms, and melodies designed to imitate the sound of a particular musical genre.

  • Tempo Track

    Contains one or more tempo markings you insert to change the tempo.

  • Time Signature Track

    Contains one or more time signatures. The time signature of each style in the segment is automatically placed in the corresponding measure of the Time Signature track. If there is no Style track, you can enter time signatures in the Time Signature track using the mouse.

  • Wave Track

    Contains one or more wave files.


Adding New Tracks

You can add a new track using the Add New Track(s) command on the Edit menu. You can then insert DirectMusic Producer components, such as a style or band, that are appropriate to the type of track.

You can add multiple tracks of different types at one time. After you add a track to a segment, you can right-click the track to edit parameters for how the track affects playback of the segment. See Properties Windows for Segment Tracks.

For a list of the track types, see Segment Tracks.

To insert one or more track types

  1. On the Edit menu, click Add New Track(s). If you have already inserted another track in the segment, you can right-click the Segment Designer window anywhere other than in the timeline, and then click Add New Track(s).
  2. In the list, select the track type to insert.
  3. Press the CTRL key and then click additional track types to add them to the selected list of track types to insert. You can also drag the mouse across the entire list to select all track types, or press SHIFT and click any two track types to select everything between the two places where you click.
  4. Click OK. A new track is inserted into the segment for each track type you select.


Multiple Tracks of the Same Type

You can build a segment with multiple instances of each individual kind of track, and multiple groups of tracks. You organize the tracks into track group 1, track group 2, and so on, with one track of each of the Chord, Groove/Embellishment, Style, Band, and optional Lyrics Notification tracks assigned to each track group. For more information, see Track Groups.


Properties Windows for Segment Tracks

Each track in a segment has a Properties window you can open by right-clicking the name of the track and selecting Properties in the shortcut menu. You can also click the name of the track and press the F11 key. A window similar to the following is displayed.

The first tab in the Properties window of any track you select is the Track Group Assignment tab. For more information, see Track Group Assignment Tab. This tab is used to assign the track to one or more track groups.

The second tab in the Properties window of any track is a Flags tab. Use this to select numerous options to control the behavior of the track, and how the contents of the track interact with other tracks. See Properties Window Flags Tab.

Other tabs are included in the Properties windows of various tracks. See information about the specific track.


Track Group Assignment Tab

The Properties Windows for Segment Tracks include a Track Group Assignment tab, similar to one of the windows shown in the following figure.

In the Track Group Assignment tab of a Chord, Chordmap, Segment Trigger, Groove, Bands, Mute, or Lyrics Notification track, you can click boxes to assign the selected track to one or more track groups. For more information, see Track Groups.

Tempo tracks and Script tracks have a similar Track Group Assignment tab, but these tracks automatically belong to all track groups in a segment. Thus, its Properties window shows all 32 groups selected. This setting cannot be edited.

Time Signature, Signpost, Style, Pattern, Sequence, and Wave tracks can only be assigned to a single track group at a time. However, you can insert a separate instance of any of these tracks for each track group in a segment.

The Style track Properties window contains a special setting for generating a "seed" of variations in the style. This is so a specific playback order of the variations can be recalled. For more information, see Style Track Properties.

The Sequence track Properties window includes settings for an individual Sequence track name, the PChannel assignment, and the PChannel name. For more information, see Sequence Track Properties.


Properties Window Flags Tab

The Properties windows of most segment tracks contain a Flags tab in which you can choose numerous default settings for how the component plays, behaves, or interacts with other components.

When you open the Flags tab of a track, some options are selected by default. Depending on the track you select, some options are not available in the Flags tab. When a check box and flag name appear gray, this indicates that an option cannot be applied to the selected track. The following figure shows a Flags tab with all possible options available.

Use this tab to create default settings for the component. As you use a component, you can choose options for using its default settings to control playback, or for overriding those settings.

Following is a table showing which flags are available for each track type. OOO indicates that a flag is available. XXX indicates that the flag is turned on by default for a track type. Below each flag name is a brief description of its function.

Flag Name: | Enable Play | Enable Control | Send Notification | Use Clocktime | Audition (Design) Only | Recompose on Play | Recompose on Loop | Override Primary | Override All | Fallback | Controlling Segment: Override Primary | Controlling Segment: Override Notification | Start of Source Segment | Current in Source Segment | Start of Destination Segment
Band | XXX | XXX |  | OOO | OOO |  |  |  |  |  | OOO |  | OOO | OOO | OOO
Chord |  | XXX | XXX |  | OOO |  |  |  |  |  |  | OOO | OOO | OOO | OOO
Chordmap |  | XXX |  |  | OOO |  |  |  |  |  |  |  | OOO | OOO | OOO
Groove |  | XXX | XXX |  | OOO |  |  |  |  |  |  | OOO | OOO | OOO | OOO
Lyric | XXX |  |  | OOO | OOO |  |  |  |  |  |  |  |  |  |
Marker |  | XXX |  |  | OOO |  |  |  |  |  |  |  |  |  |
Mute |  | XXX |  |  | OOO |  |  |  |  |  |  |  |  |  |
Parameter Control | XXX |  |  | OOO | OOO |  |  |  |  |  |  |  |  |  |
Pattern | XXX | XXX | XXX | OOO | OOO |  |  | OOO | OOO | OOO | OOO | OOO |  |  |
Script | XXX |  |  | OOO | OOO |  |  |  |  |  |  |  |  |  |
Segment Trigger | XXX |  |  | OOO | OOO |  |  |  |  |  |  |  |  |  |
Sequence | XXX |  |  | OOO | OOO |  |  | OOO | OOO | OOO | OOO |  |  |  |
Signpost | XXX |  | XXX |  | OOO | OOO | OOO |  |  |  | OOO | OOO | OOO | OOO | OOO
Style | XXX | XXX | XXX |  | OOO |  |  | OOO | OOO | OOO | OOO | OOO | OOO | OOO | OOO
Tempo | XXX | XXX |  | OOO | OOO |  |  |  |  |  | OOO |  | OOO | OOO | OOO
Time Signature | XXX | XXX | XXX |  | OOO |  |  |  |  |  | OOO | OOO |  |  |
Wave | XXX |  |  | OOO | OOO |  |  | OOO | OOO | OOO | OOO |  |  |  |

Playback Flags

Use check boxes for enabling/disabling the track, providing control information, sending events, and sending notifications. A track is disabled by unchecking Enable Play:

  • Enable Play

    On by default in most tracks. Enables basic track playback or ability to send messages.

  • Enable Control

    Enables the track to affect the contents of similar tracks in other segments. On by default in most tracks, this allows a controlling segment to replace the contents of the track with contents from its own track. See Controlling Segments.

  • Send Notification

    On by default in several tracks. Enables notifications in track playback.

  • Use Clocktime

    Displays and plays the track using clock time, not music time.

  • Audition (Design) Only

    Appears in Producer only and is not saved in the run-time file. May be used for tracks containing data that can be replaced at run time by a developer, such as a Chordmap track or Style Track. When checked, the background of the track name in the editing pane has gray diagonal cross hatches.

Compose Flags

The following two flags are used exclusively in the Signpost track properties. During playback, if a flag is set and there is a chord track in the segment, new chords are created for the segment each time it is played or looped. This enables composers to set up consistent parameters of structure that still generate fresh harmonic choices each time the segment loops. While this is behavior that the user may want to manipulate at run time, and could be defined using scripts, having the composer define this is removing one more item from the developer's long list of things to manage:

  • Recompose on Play

    Use to control the use of the Compose Chords command for the Signpost track to apply the Compose Chords command each time the segment starts to play.

  • Recompose on Loop

    Use to control the use of the Compose Chords command for the Signpost track to apply the Compose Chords command each time segment playback loops.

Control Flags

Use options in the Control area to have the contents of a track affect and essentially replace the contents of a similar track in other segments. In some cases, these options cause a track in a secondary segment to override a similar track in a primary segment. For information, see Controlling Segments.

You can select any combination or none of these flags:

  • Override Primary

    Replaces the contents of tracks in the primary segment only. Applies only to the Pattern, Sequence, Style, and Wave tracks.

  • Override All

    Affects the contents of tracks in all other segments that are playing. Applies only to the Pattern, Sequence, Style, and Wave tracks.

• Fallback

Lets the contents of tracks serve as fallback settings when contents of similar tracks in the primary or controlling secondary segments are empty.

• Controlling Segment: Override Primary

Lets a controlling secondary segment affect the contents of tracks in the primary segment.

• Controlling Segment: Override Notification

Lets a controlling secondary segment override notifications from tracks in the primary segment.

The default (legacy) mode is for all flags to be off.

Transition Flags

Use options in the Transition area to control transitions. When a track is set to use one of the following flags, information is drawn from the similar track in either the source or destination segment of the transition. Information can be gathered for choosing the band, chord, chordmap, groove, signpost, style, and tempo of a transition:

  • Start of Source Segment

    When composing a transition, information is taken for the track from the beginning of the source segment.

  • Current in Source Segment

    When composing a transition, information is taken from the track from the currently playing place in the source segment.

  • Start of Destination Segment

    When composing a transition, information is taken for the track from the beginning of the destination segment.


Band Track

A band is a collection of instrumental sounds and MIDI program settings, including downloadable sounds (DLS). Bands can contain up to 999 instruments on 999 individual PChannels. For more information about creating bands, see Band Editor.

You can insert as many bands as you want in a Band track , though no more than one band per beat.

In most cases, a segment includes a Band track containing at least one band. For example, a Band track is automatically added to a segment (if one is not already in the segment) when you insert a style in the Style track. The default band of the style you insert is automatically placed in the Band track on beat 1 of the first measure. You can open and edit this default band, as well as insert other bands into the Band track.

Similarly, when you import a MIDI file as a segment, the instrument settings in the MIDI file are inserted as a band in the Band track of the newly created segment. You can open and edit this band, as well as insert other bands into the Band track. See Importing a MIDI File as a Segment.

You are not required to include a Band track in every segment. If you do not include a Band track, then no instrument sounds are loaded into the computer's memory for playback, and no MIDI program changes are sent to the playback port. This results in playback of the segment being silent, playback using only the default GM patch 00 instrument sound, or playback using the instrument sounds that were last used for the PChannels. Alternatively, you can include band information in a secondary segment, so that instrument assignments are sent to the PChannels. For more information, see Secondary Segments.

The first band in the track is considered the primary band for the segment and should be inserted on beat 1 of measure 1. For more information, see Inserting and Editing Bands in a Segment.

Note It is recommended that the primary band be set to play at a negative offset from measure 1, beat 1, so that it occurs in a segment before the first beat. This ensures that any pickup note or notes that play exactly at MIDI time zero will play with the correct instruments. See Inserting a Band at a Negative Offset.

You can add a new Band track to a segment at any time. See Adding New Tracks. Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For information, see Properties Windows for Segment Tracks.

A segment can contain more that one Band track. See Multiple Band Tracks.


Inserting and Editing Bands in a Segment

In music performed by a live ensemble, different parts of the song may be played using different instruments to create a richer texture. For example, the verse may be played on acoustic guitar and piano, while the chorus switches to electric guitar and organ.

When creating a segment, you can insert one or more bands in its Band track and then edit the bands to provide any instrumentation you like.

Note If multiple bands occupy the same beat in a segment, their names are displayed in italics. You can cycle through the selection of all bands on a beat by right-clicking any of the bands and clicking Cycle Bands.

You can insert and design as many new bands as you want along the full length of the segment, with a limit of one band per beat. In addition to inserting a new band, you insert pre-existing bands borrowed from other projects, styles, or segments by dragging bands from one segment to another, from a style to a segment, or from the project tree to a segment. For more information, see Dragging Bands.

The bands that you insert into a segment provide all the information for instrument choice, volume settings, and pan settings for the PChannels used in the segment. If a segment does not contain any bands, or if it does not have a Band track, then no instrument sounds are loaded into the computer's memory for playback, and no MIDI program changes are sent to the playback port. This results in playback of the segment using the instrument settings that were last used for its PChannels. If no instrument settings have been previously used on a PChannel, the PChannel will either play using the piano sound located on the GM patch 00 of the Default GM Sound Set, or it will be silent. For more information, see Bands in Segments.

If you do not want to include a band in a segment, you can place a band in a secondary segment so that the instrument assignments used in the secondary segment are sent to the PChannels. The instrument settings in a secondary segment are sent to the PChannels and are then used for the primary segment as well. This technique provides extra flexibility for using a single band with numerous segments at one time. See Secondary Segments.

It is not necessary to designate the secondary segment as a controlling segment to use a band that controls other segments, because instrument information loaded from one segment is retained for all PChannels until instrument information from another band overrides it. See Controlling Segments.

To insert a new band in a segment

  1. In the Segment Designer window, click the Band track on any beat without a band, and press the INSERT key.
    Or, right-click the Band track on any beat without a band, and then from the shortcut menu, click Insert. A Band Properties window appears.
  2. Click the Close button to close the Band Properties window.
  3. In the Band track, double-click the newly inserted band.
  4. Modify the band, adding patch, PChannel, and other settings. For more information, see Editing a Segment Band.
  5. Click Close to close the Band Editor window.
  6. You can repeat steps 1 through 5 to enter new bands in other beats.

To insert a pre-existing band

  1. In the project tree, click the band to use in the segment to highlight it.
  2. Drag the selected band from the project tree to the Segment Designer window, placing it in the Band track at the desired beat of the segment.
  3. If necessary, right-click the band and click Properties, and adjust the newly inserted band's measure and beat position in the segment.
  4. Enter the desired measure and beat.

Note It is recommended that the primary band be set to play at a negative offset from measure 1, beat 1. This ensures that any pickup note or notes that play exactly at MIDI time zero will play with the correct instruments. See Inserting a Band at a Negative Offset.


Inserting a Band at a Negative Offset

It is recommended that you set the initial band to play at a negative offset from measure 1, beat 1. This ensures that any pickup note or notes that play exactly at MIDI time zero will play with the correct instruments.

You can right-click the initial band in the Band track of a segment and then click Properties to open a Properties window for the band. Set the Tick value to –1.

Note When you import a MIDI file as a segment, the initial band created in the segment is automatically inserted with a tick value of –1.

If any two MIDI events occur simultaneously (for example, a note and an instrument patch change both occur on the very first tick of beat 1 in a segment), there is no way to predict which event will be used first. In some cases, an instrument patch change may become delayed momentarily while a note plays.

Note When you import a MIDI file as a segment, you must take special care when the MIDI file contains GM or GS resets at the start of the file. Because a band imported with a MIDI file is placed at tick –1, GM/GS resets at measure 1, beat 1 will occur after the band, and will override the band at the beginning of the segment.

You can give a band a negative offset so that its settings are used before the first time a segment plays, and then each time the segment repeats or loops, the band with the negative offset is ignored. For example, if you insert a band in a negative offset position that uses an oboe sound in a particular PChannel, and another band in measure 2 uses a flute sound in the same PChannel, then the first time the segment plays the oboe sound is used, and each time the segment loops, the flute sound is used.

You can give a negative offset to any band in a segment, regardless of where it occurs in the segment. For example, if a band occurs at the beginning of a measure where you would like the instrument changes to be sent just prior to the beginning of the measure, you can select the band and give it any negative offset position you want.


Segment Default Band

When you generate a new segment, no band is included in the segment's Band track. However, the default band that is used when you create a new band in the Band Editor is also used to play the new segment until you insert some other band in the Band track of the segment.

You can drag a band from the Band track of another segment to a new segment. You can also drag a band from the Bands folder shown in the project tree within a style, or from the Bands list in the Style Designer window, and insert the band in the Band track of a segment. For more information, see Drag-and-Drop.

After a band is placed in a segment, you can double-click the band to edit it without affecting the original band. For more information, see Band Editor.


Deleting a Band from the Segment or Project Tree

If either the segment or the project tree contains a band that you no longer plan to use, you can remove it.

To delete a band

  1. In the group of icons displayed in the segment or anywhere in the project tree, right-click the icon of the band to be deleted. A shortcut menu appears.
  2. On the shortcut menu, click Delete.


Editing a Segment Band

After you place a band in the Band track of a segment, you can double-click the band to open it and edit it using the Band Editor.

You can assign a new instrument to any player, or edit the band as you desire. If the segment is playing, you will hear the changes take effect as you make changes to the band. For changes to be heard, you may need to stop and restart playback. For more information, see Band Editor.

When you edit a segment's band using the band designer, the Band Designer window displays the segment's name in its title bar. This indicates that the band's configuration applies to its associated segment, and changes made to the band do not affect any other bands, even if other bands have the same name.

Note Because the band in a segment is stored within the segment, you must also save changes made to the segment. When you exit DirectMusic Producer, it prompts you to save changes made to the segment if you have not previously done so.


Multiple Band Tracks

You can add multiple Band tracks to a segment, and insert bands in each track. Regardless of which Band track contains a band, every band in the segment becomes active as the cursor reaches it during playback. As a band becomes active, it affects playback of every PChannel for which it contains instrument settings. Thus, a band in one Band track can override some or all of the instrument settings of a band in a separate Band track.

Note Because the instrument settings used on a given PChannel override any previous settings used on the PChannel, it is recommended that all Band tracks that you assign to a track group contain bands that use only those PChannels not used by bands in any other track groups.

With most other track types (such as Style tracks, Chord tracks, Signpost tracks, and so on) you can create multiple instances of a track type and then assign them to different track groups so that a track only affects the other tracks in the same track group (see Track Groups). However, this does not work with a Band track. Because the instrument settings used on a given PChannel override any previous settings used on the PChannel, assigning multiple Band tracks in a segment to different track groups does not prevent a band in one track from affecting the playback of another track group. Thus, it is recommended that all Band tracks that you assign to a track group contain bands that use only those PChannels not used by bands in any other track groups.

When you use multiple Band tracks, it is possible to place two or more bands so they occur simultaneously (that is, on the same beat and measure, but in separate tracks). Whenever this occurs, the band in the uppermost Band track takes precedence during playback.


Band Track Properties Window

Right-click the Band track and choose Properties to open the following Band Properties window.

The window contains settings for Track Group Assignment. See Track Groups.

The window also contains Flag settings to control how the track plays, behaves, or interacts with other tracks. See Properties Window Flags Tab.


Chord Track

You can place chords of any quality or structure in the Chord track to form a progression of chords over which the music will be played. You can enter chords on any beat to occur as frequently as you want, though no more than one chord per beat.

Each chord in the Chord track has its own set of properties you can use to define the name of the chord, its structure, its chord scale, and more. See Chord Properties Window.

You can add a new Chord track to a segment at any time. See Adding New Tracks. Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For more information, see Properties Windows for Segment Tracks.

If you do not include a Chord track in a segment, or if you leave the Chord track empty, the segment plays using a default chord of 2 C M7. See Default Segment Chord.


Default Segment Chord

The default chord used to play all segments is 2CM7 (equal to a middle range C major 7th chord). If there are no chords in the Chord track of a segment, the segment plays using the default 2CM7 chord. If the first chord in the track does not occur on the first beat of the first measure, the segment plays using 2CM7 until the first chord arrives.

If a segment does not include a Chord track, then the default chord is used for playback throughout the entire segment.


Chord Track Properties Window

You can right-click the Chord track of a segment to open the Chord Track Properties window similar to the following.

The first tab displayed in the Chord Track Properties window is the Track Group Assignment tab. See Track Group Assignment Tab.

The Chord Track Properties window includes a Flags tab you can use to control the behavior of the track, and how its contents interact with other tracks. See Properties Window Flags Tab.

You can click the Key tab to choose a key signature for the entire segment. For information, see Segment Key Signatures.


Segment Key Signatures

A segment uses the key of C by default. You can click the Key tab in the Chord Track Properties window to choose a different key signature. The key you choose applies to any Sequence track or Pattern track in the segment belonging to the same track group, or groups, as the Chord track whose properties you are editing.

By combining a name of a key, such as D or F, and an appropriate number of flats or sharps for the key, you can choose any key, including major key signatures and minor key signatures. You also specify whether a chromatic key signature name is spelled using a flat or a sharp. For instance, you might select a key of D# for the segment, but prefer to show it with the enharmonic spelling of Eb.

The key signature you choose is applied only to existing Sequence tracks or Pattern tracks that are assigned to the same track groups as the Chord track you are editing. For example, if you want to use a key signature for several Sequence tracks belonging to track group 2, you must first make sure all the desired sequence tracks are properly assigned to track group 2, then assign the Chord track to track group 2 as well, and finally enter the desired key signature in the Chord track properties. The key signature is not applied to any sequence tracks in other track groups.

You can create multiple key signatures in a single segment by creating multiple Chord tracks, and giving each Chord track a different track group assignment and key signature. You can also apply a single key signature to multiple track groups by assigning one Chord track to more than one track group. For information about assigning track groups, see Track Group Assignment Tab.

To enter a key signature for a segment

  1. In the Segment Designer window, right-click a Chord track and then in the short-cut menu, click Properties.
    Or, click the Chord track and press F11 to open the Chord Properties window.
  2. In the Key Root box, enter name of the key root. The name you enter can be the name of a major key signature (such as D major) or a minor key signature (such as D minor).
  3. Next to the Key Root box, click #'s (sharps) or b's (flats).
  4. In the Key Signature box, enter any number from zero to 7 to choose the number of sharps or flats to be used in the key signature.

The key signature you enter is added to the Chord track, and is applied to the pitch guide in the Sequence and Pattern tracks, as shown in the following figure.

If you view the part using hybrid notation, as shown in the preceding figure, the key signature is shown in the grand staff of the pitch guide just as in standard musical notation. Accidentals are also added in the editing region in front of any notes that are affected by the key signature.

When you change the key of a segment, the chords in the Chord Track are not altered. However, the key signature affects how the Variation Choices window interprets the root position of a chord in the Chords Track. For example, an Fma7 chord is considered a IV chord if a segment is in the key of C, but it is a V chord if a segment is in the key of Bb. For more information, see Variation Choices and Changing Segment Keys.

In addition to affecting the notational display of sequence notes and the pitch guide, the key signature in a segment affects the behavior of the Transition button when you want playback to transition from one segment to another. For more information, see Transition Button.

Changes you make to the key setting are saved with the segment and will remain the same until edited again.


Inserting and Editing Chords in a Segment

You enter individual chords in a segment by using the mouse. You can insert as many chords as you want in the Chord track of a segment, though no more than one chord per beat. The first chord in the track is considered the primary chord for the segment and should be inserted on beat 1 of measure 1.

To insert a chord in a segment

  1. In the Segment Designer window, click the Chord track at the beginning of any measure and press the INSERT key.
    Or, right-click the Chord track at the beginning of a measure and then from the shortcut menu, click Insert. The Chord Properties window appears.

  2. In the Chord Properties window, choose a chord root and name, and set the other properties of the chord.

Setting chord properties is important in several areas of creating DirectMusic Producer components. For more information, see Chord Properties Window.

Other ways you can add a chord:

  • Drag-and-Drop

    Another way to add a chord to a segment is by using the mouse to drag and drop a chord onto the Chord track of a target segment. The original chord can be dragged either from the Chord track of another segment or from the Chord track of the part display in a pattern. When you drag a chord, you place it in the beginning of a measure. During playback, the chord then becomes active in the segment at the beginning of its measure. If you drag the chord onto a wrong beat or measure, you can simply drag the chord to a different measure or beat in the segment.

  • Changing Chords

    If you have spent a great deal of time placing groove and embellishment changes, or inserting special styles in a segment, you may insert different chords in the segment without losing your previous work. Although DirectMusic Producer can compose an all new segment, you may want to vary the segment by inserting new chords, while retaining work you have already done to the segment.

To save a copy of a finished segment and then apply new chords, you can use the Save As command on the File menu.


Entering Chords During Playback

You can enter chords with the mouse while the segment is playing. A newly entered chord becomes active immediately. If the location where the chord is entered has already been played, you can hear the changes the next time the segment repeats.

You can enter new chords on any beat, select and delete chords, or edit chords at any time while the segment is playing. If your segment is set to loop during playback, you can repeatedly audition the changes to the chord progression until you are satisfied.

To enter chords with the mouse during playback

  1. Click the Play button to begin playback of the segment.
  2. Right-click any part of the Chord strip to insert a chord.
  3. Click a choice for the chord root, name, and other settings.
  4. Click the Stop button to halt playback.

Note If you enter a chord on the same beat and measure presently occupied by another chord, the new chord replaces the old chord entry. If a chord lands on the wrong measure, simply drag it to the desired position while the music plays.

You can edit the properties of any newly entered or existing chord in the segment. Editing the properties of an individual chord does not affect other chords in the segment.

A new chord's properties are automatically displayed as you first enter it in the segment. You can also open an existing chord's properties at a later time. See Chord Properties Window.


Dragging Copying and Deleting an Individual Chord

DirectMusic Producer

Dragging, Copying, and Deleting an Individual Chord

After you have entered chords in a segment, you can edit them. Some editing applies only to individual chords, and some applies to multiple chords.

You can drag, copy, delete, or change the properties of an individual chord.

To drag a chord

  1. Click a chord and drag it to the desired beat.
  2. Release the mouse button.

To copy a chord

  1. Press and hold down the CTRL key.
  2. Click a chord and drag it to the desired beat.
  3. Release the mouse button.

To delete a chord

  1. Click a chord to select it.
  2. Press DELETE.


Editing Groups of Chords

If you select more than one chord at a time, you can cut, copy, or delete them all at once in the same manner as you do a single chord. You can drag only one chord at a time.

To select a group of chords, use one of the following methods

  • Hold down the CTRL key while clicking individual chords.

or

  • Hold down the SHIFT key while clicking the first and last chords in a series to select all of them.

or

  • Right-click the rectangular selection button to the left of the Chord strip and then click Select All, as shown in the following figure.


Chordmap Track

The Chordmap track contains a single chordmap file used to generate chords in a Segment. The chordmap serves as a source for generating Variable Chord Progressions. When you use the Compose Chords command, the signpost chords of the chordmap file are inserted into the Chord track of the segment. Any chord paths that accompany the signpost chords in a chordmap are also inserted into the Chord track, if they can fit. For information about creating a chordmap file, see Chordmap Designer.

If you wish to use multiple chordmaps within a single segment, you must create a separate Chordmap track to contain each individual chordmap file. See Using Multiple Chordmaps.

You have the option of using a chordmap for designing the segment only. When the segment is used as a run-time file by a developer, the chordmap in the Chordmap track can be used, or ignored, depending on the option you choose. Right-click the Chordmap track and select Properties, click the Flags tab, and choose Audition (Design) Only. The chordmap in the track is ignored, and a developer can use any chordmap with the segment. For more information, see Properties Window Flags Tab.


Using Multiple Chordmaps

A Chordmap track can only contain a single chordmap file. If you wish to use multiple chordmaps within a single segment, you must create a separate Chordmap track to contain each individual chordmap file, and assign the Chordmap tracks to different track groups

For example, if you want to change to a different style in the middle of a segment, it is possible that you would also want to use a different chordmap to provide chords for the style. To do this, you must create two separate track groups that contain both a style track and a chordmap track, so each style can is used only with the appropriate chordmap information. For information, see Track Groups.


Groove and Embellishment Track

A style contains two special design elements that you can use to provide interest to the playback of a style:

  • Groove Levels

    A choice of 100 groove levels represents increased or decreased activity or musical intensity in the patterns of a style (groove level 1 is the lowest intensity level, groove level 100 is the highest intensity level). For information about creating groove levels in a style, see Groove Levels.

  • Embellishments

    Four special patterns, intro, fill, break, and end, are usually one or two measures in length. You can insert embellishments at key places in a segment to provide interest and structure. For information about creating embellishments in a style, see Embellishments.

You can insert changes for groove levels or embellishments as frequently as you want in the Groove and Embellishment track of a segment, though no more than one of each per measure. A single change symbol can be used for a groove level, an embellishment, or both.

For information about placing groove and embellishment changes in a segment, see Entering Data in a Segment.

You can add a new Groove and Embellishment track to a segment at any time. See Adding New Tracks. Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For more information, see Properties Windows for Segment Tracks.

If you do not include a Groove and Embellishment track in a segment, or if you leave the Groove and Embellishment track empty, the segment plays using a default groove level of 62. See Default Groove Levels.


Inserting Grooves and Embellishments in a Segment

You can use the mouse to insert grooves and embellishments in the Grooves strip of the Segment Designer, shown in the following figure.

Groove and embellishment changes can be inserted at the beginning of any measure in a segment. You can place grooves and embellishments only on measure boundaries. If you insert a change at a later point in a measure, it slides back to the start of the measure.

As the segment plays, it changes to the indicated groove or inserts the indicated embellishment when it reaches a change symbol. .

To insert a groove or embellishment

  1. In the Segment Designer window, click the Groove track and then press the INSERT key;
    Or, you can right-click the Chord track and then, from the shortcut menu, click Insert. The following Chord Properties window is displayed.

  2. Click the desired embellishment and groove.
  3. Click the Close box to close the Chord Properties window. Your selection is inserted in the Groove track.

Note Even though the four embellishments (intro, fill, break, and ending) are designed to perform a specific musical function, you can use any embellishment in any measure. For example, you can start your segment with an end embellishment, or end your segment with an intro embellishment.

To change an existing groove or embellishment

  1. Right-click a groove or embellishment change symbol in the Groove track. A shortcut menu box is displayed.
  2. Click Properties.
  3. In the Properties window, choose the desired groove and embellishment.


Inserting Grooves and Embellishments During Playback

You can enter groove and embellishment changes with the mouse while the segment is playing. A newly entered change becomes active immediately. If the spot where the change is entered has already been played, you can hear the changes the next time the segment repeats.

You can enter new changes on any measure, select and delete change symbols, or edit changes at any time while the segment is playing. If your segment is set to loop during playback, you can repeatedly audition the changes to the grooves and embellishments until you are satisfied.

To enter grooves and embellishments during playback

  1. Click the Play button to begin playback of the segment.
  2. Right-click any part of the Groove track, and then click Insert.
  3. Click a choice for the groove and embellishment.
  4. Click the Stop button to stop the playback.

Note If you enter a groove or embellishment change in the same measure currently occupied by another change, the new change replaces the old entry. If a change lands on the wrong measure, simply drag it to the desired position while the music plays.


Deleting Grooves and Embellishments

You can delete a single groove or embellishment change, or select multiple changes to delete them.

To remove a single groove or embellishment

  1. Right-click a groove or embellishment change symbol in the Groove track. A shortcut menu is displayed.
  2. On the shortcut menu, click Delete.

If you select more than one groove or embellishment change at a time, you can drag, copy, or delete them all at once in the same manner as you do a single change.

To delete a group of groove or embellishment markers

  1. Hold down the CTRL key while clicking individual change symbols to add them to the selected group.
    or
    Hold down the SHIFT key while clicking the first and last change in a series to select all of them.
    or
    Right-click the rectangular selection button to the left of the Groove track, as shown in the following figure, and then click Select All.

  2. Press DELETE.


Lyrics Notification Track

The Lyrics Notification track can contain any text you want. Lyrics in a segment can be used as a guide for a singer if the segment is intended to accompany a live performance. You can also use the track for instructional text, called notification, that is displayed on the screen when the segment is used in a software game or multimedia application, or which triggers a function in the application.

You can right-click the Lyrics Notification track where you want lyrics to begin, and then click Insert to display a Lyric Properties window similar to the following.

Use this window to enter a string of lyrics of any length and place it to begin on any measure, beat, or tick in the segment.

Timing settings are specifically for use when lyrics provide notification text in a game or multimedia application. When a segment is used in an application, the Microsoft® DirectMusic® system components process the segment during run time and send data to the application. Each packet of data is given a specific start time, referred to as a time stamp. The timing setting you choose in the Lyrics Properties controls how soon after the notification is sent to the application that it is processed and used in the application. There are three timing options:

  • Quick Response

    As fast as possible. The notification is processed as soon as it is sent, regardless of its time stamp. By default, lyric notifications are sent approximately 1000 milliseconds earlier than their time stamp. Useful when the text is used to set a parameter that can occur at any time.

  • Before Time Stamp

    The notification is processed just before its time stamp, allowing for port latency. Useful when the text is used to set a parameter before another event, such as a change in instrument sounds before the beginning of a note.

  • At Time Stamp

    The notification is processed at the time stamp, right on the beat and tick of the start time for the lyric. Useful for displaying text at the exact moment other notes are playing.

To enter a string of lyric into a segment

  1. In the Lyrics Notification track, right-click a measure or beat where you want the lyrics to begin, and then click Insert.
  2. In the Lyric box, enter the text you want to use. You can also copy and paste text from any other document or text editor.
  3. If necessary, adjust the Measure, Beat, and Tick settings to set a start time in the segment where the lyric will begin.
  4. In the Timing box, choose Quick Response, Before Time Stamp or At Time Stamp.
  5. When you close the Lyrics Properties window, the string of lyrics is displayed in the Lyrics Notification track.

After entering a string of lyrics, you can edit them at any time by right-clicking the first word in the string and clicking Properties to display its Lyrics Properties window.

Viewing Lyrics in the Message Window

If the Message Window is open, the contents of the Lyrics Notification track are displayed in the window when a segment plays. As each string of lyrics is reached, it is displayed.

The effects of different timing options are not evident when lyrics are displayed in the Message Window. The Message Window always displays lyrics using the Before Time Stamp setting, regardless of the actual settings in the Lyrics Properties.

Additional Lyrics Notification Tracks

You can insert multiple Lyrics Notification tracks into a segment. See Adding New Tracks.

Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For more information, see Properties Windows for Segment Tracks.


Marker Track

Markers designate appropriate points in the segment where the segment can stop or start. You can insert an Exit marker or an Enter Switch Point marker at any point in the Marker track.

Markers you insert can serve several purposes:

  • The segment can end playback at an Exit marker.
  • Another segment can begin as a secondary segment at an Exit marker.
  • A transition to another segment can begin at an Exit marker.
  • The segment can begin as secondary segment at an Enter Switch Point marker.
  • The segment can begin as a destination component in a transition at an Enter Switch Point marker.

After you insert a marker in a segment, it can be used by the performance boundary settings found in several different windows:

  • Segment Properties Boundary tab
  • Secondary Segment Audition Options window
  • Segment/Motif Trigger Properties window of a trigger in a Segment Trigger track
  • Transition Options window

Each of these windows contains options for triggering the start or end of a segment when a marker occurs. For information, see Boundaries.

The following figure shows a segment with a track containing exit and enter markers in every measure.

Blue markers along the upper edge of the track are Exit markers. Green markers along the lower of the track are Enter Switch Points. You can right-click either edge of the track to enter the type of marker desired.

Generally, markers are placed at the ends of short phrases that make up a segment, or at places that are natural stopping or starting points in the segment. For example, a segment that is 24 measures long might have six different phrases of four measures each. An exit and enter marker make it possible for the segment to stop or start playback in several places.

To insert a marker in a segment

  1. If necessary, add a Marker track to the segment.
  2. In the Marker track, right-click any measure or beat along the upper edge of the track to insert an Exit marker. Right-click along the lower edge to insert an Enter Switch Point. A small rectangle appears in the track where you click, and a shortcut menu is displayed.
  3. On the shortcut menu, click Insert. A Mark Range, Unmark All, Marker/Enter Switch Point Properties window is displayed. The Type box shows that you have entered a marker.
  4. If necessary, adjust the measure, beat, grid, or tick on which the marker occurs.

To insert multiple markers in a segment

  1. If necessary, add a Marker track to the segment.
  2. If necessary, adjust the measure, beat, grid, or tick on which the marker occurs.

Note If you insert a style containing Variation Switch Points into a segment, they affect the segment as if you had inserted Enter Switch Points in the Marker track of the segment. However, the Variation Switch Points of the style pattern are not displayed in the Marker track of the segment. For information about creating Variation Switch Points in a style, see Variation Switch Points.

For information about playing secondary segments, see Secondary Segments.

For information about transitions, see Transitions.


Melody Formulation Track

The Melody Formulation Track is not implemented for the Microsoft® DirectX® 8.0 Release of Microsoft® DirectMusic® Producer.


Mute Track

You can place symbols in the Mute track of a segment so the playback for any PChannel is silent for any part of a segment. All events that would ordinarily affect the PChannel are muted. This includes playback output for the PChannel, regardless of whether it is coming from a style, a wave, or a MIDI sequence. This also includes settings contained in an item that occurs during the muted period, such as instrument setting changes that occur in a band.

In the following figure, the Mute track contains mute symbols (X) in various measures and beats of PChannels 1, 2, 3, and 4. PChannel 1 is muted during the entire segment, and PChannels 2 and 3 are muted only during the first two beats of measure 1. PChannel 4 is muted during the first three beats of measure 2.

You can also use the Mute track to assign the contents of individual beats or any portion of a PChannel contents to play over a different PChannel. See Remapping PChannel Contents.

To mute a PChannel for all measures of a segment

  1. In the Mute track, scroll the list of PChannels until the PChannel you want appears in the list.
  2. Right-click any space to the right of the PChannel number. A shortcut menu appears.
  3. In the shortcut menu, click Mute PChannel n. (n is the PChannel number next to which you clicked in the list). Each measure and beat in the segment is given a mute symbol (X) for the PChannel.

To mute a PChannel for selected beats

  1. In the Mute track, scroll the list of PChannels until the desired PChannel is visible in the list.
  2. Click any beat space to the right of the PChannel number to place a mute symbol (X).
  3. Click any existing mute symbols to remove them from a beat space.

The Mute list initially contains only PChannels 1 through 16. You can add or remove as many PChannels as you like to the list.

To add or remove PChannels to the Mute list

  1. Right-click anywhere in the Mute track to display a shortcut menu.
  2. Click Add/Remove PChannels. The following Add/Remove PChannels window is displayed.

  1. In the Add PChannels region, click the Add button to add the next PChannel to that is not already in the Mute list. For example, if the list currently contains PChannels 1 through 16, clicking Add inserts PChannel 17 into the list. You can click Add as many times as you want to insert new PChannels.
  2. Remove any PChannels from the PChannels list by selecting one or more PChannels in the list, and then clicking Remove Selected.

You can add a new Mute track to a segment at any time. See Adding New Tracks. Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For more information, see Properties Windows for Segment Tracks.


Remapping PChannel Contents

You can use the Mute track to assign the contents of individual beats in a PChannel, or any portion of a PChannel contents, to play over a different PChannel. This is referred to as remapping a PChannel. With the exception of instrument assignments and settings, all playback output and any other data that ordinarily affects the PChannel can be remapped to a different PChannel.

Instrument assignments for each PChannel are set in the band files of a segment, and do not change to different PChannels by remapping. For example, if a PChannel is set in a band to use the flute sound, then notes that are remapped to that PChannel from a different PChannel also play using the flute sound.

The portion of the PChannel's contents you want to remap can be defined by a Mute symbol to separate it from other material in the PChannel. For example, in PChannel 1 there may be a group of beats that is separated from other material in the PChannel by a mute mark before and after. You can remap the group of beats to another PChannel so that the contents of the group play over the new PChannel. All events from the Sequence, Style, and Band tracks are assigned to the new PChannel.

The following figure shows several places where PChannel contents are remapped to play over other PChannels.

To remap a beat or group of beats to a different PChannel

  1. In the Mute track, scroll the list of PChannels until the PChannel you want appears in the list.
  2. Right-click an beat space that does not contain a mute symbol. A shortcut menu is displayed.
  3. Click Remap PChannel. The following Remap PChannel window appears.

  4. In the PChannel box, enter the PChannel to which you want to assign the beat or group of beats.


Parameter Control Track

You can add a Parameter Control track to a segment, and then insert curves that control the timing, settings, and parameters for audio effects contained in an Audiopath file, including Tools and DMO audio effects. A parameter control curve extends over any number of measures in a segment, so that the parameters of a DMO or Tool are adjusted over a period of time during playback.

For example, if an audiopath uses a Echo effect, and you would like to gradually increase the Wet Dry Mix setting for the effect over a range of six measures, you can insert a curve in the Parameter Control track that does this for you. The following figure shows a segment with a parameter control curve that does this.

The Parameter Control track can contain curves that control any DMO or tool used in the audiopath that is currently selected as the default, or the audiopath that is embedded in the segment. For more information selecting a default audiopath, see Audiopath List. For information about embedding an audio path in a segment, see Embedding an Audiopath in a Segment.

You can add as many parameters as you want to the Parameter Control track. When you add a parameter, a window similar to the following is displayed.

In the preceding window you can choose the following settings:

  • DMOs or Tools

    A choice of buttons for whether you want to control a DMO effect or a tool effect. For more information about DMOs, see Effect Palette.

  • Stage

    A drop-down list containing the default audiopath and any audiopaths embedded in the active segment.

  • Object

    A drop-down list displaying all DMOs and tools available in the audiopath you select. For information about the DMOs and tools in an audiopath, see Audiopath Designer.

  • PChannels (read only)

    A read-only display of which PChannels are affected by the effect you select.

  • Parameter

    A drop-down list of all parameters in the effect. For information about the parameters in a DMO, see Effect Properties Window.

Each type of parameter has a separate strip in the Parameter Control track. For each new parameter strip you add to the track, you must choose settings to identify which effect and parameters are controlled by the curves in the strip.

After you enter a curve to control the parameters of an effect, you can right-click it and choose Properties to display a Parameter Properties window.

To insert a parameter control curve

  1. If necessary, add a Parameter Control track to the segment.
  2. Right-click the track, and choose Add New Parameter.
  3. In the Add Parameter window, choose DMO or Tool.
  4. In the Stage window, click from the Performance's active audiopath to choose the default audio path, or click from the Segment's audiopath to choose the audiopath embedded in the segment.
  5. In the Object window, choose the effect type that you want to control in the audiopath.
  6. In the Parameter window, choose the parameter in the effect you want to control .


Parameter Properties Window

After you enter a curve to control the parameters of an effect, you can right-click it and choose Properties to display a Parameter Properties window similar to the following.

Use the settings in this window to adjust the following properties of the curve:

  • Start Time, End Time, and Duration

    Defines the start time, end time, and duration, expressed as bar (measure), beat, grid (divisions of the beat), and tick values (minute offsets from the grid, based on 768 ticks per quarter note). If you edit the start time, the duration remains unchanged, and the end time adjusts automatically. If you edit the end time, the start time remains unchanged and the duration adjusts automatically. If you edit the duration, the start time remains unchanged, and the end time adjusts automatically.

  • Start Value

    The value of the curve setting at its beginning.

  • End Value

    The value of the curve setting at its end.

  • Start From Current

    If you select the Start From Current option, the current value for the controller type at the time the curve starts replaces the Start Value. For example, if another curve in the segment has previously set the controller to a different value, then that value is used in place of the Start Value shown in this Properties window.

  • Type

    Choose a wave shape to apply to the curve. You can choose Sine, Logarithmic, Exponential, Instant, and Linear.

  • Flip Vertical or Flip Horizontal

    Flip the wave shape to control the shape and design of the curve.

If you select more than one wave in a track, then only the values that are equal in all selected waves are shown. All other fields are left empty. The following figure shows the Properties window for two similar curves with the same duration, start and end values, and type. However, the two curves begin and end on different measures and beats.


Pattern Track

A pattern is normally created as part of a style file, and a style typically contains multiple patterns. However, you can create an individual pattern in the Pattern track of a segment. This lets you create a single pattern to play during a segment without using an entire style file. The Pattern track provides a quick way to create variable content in a segment that responds to chords. A pattern in a Pattern track plays exactly as if you had created a style containing a single pattern, and then played that single pattern style as part of a segment.

A pattern that you create in the Pattern track is essentially a sequence that contains variations, and takes advantage of style note functionality. Notes in a pattern adjust during playback to the chords contained in the Chord track. Notes in a Sequence track do not adjust to chords. You can enter notes in a Pattern track in the same way you do a Sequence track, but you can choose any of 32 variations to hold the notes in the Pattern track. A Pattern track can contain variation switch points and controller curves, exactly like a pattern in a style.

You can create and edit a pattern in the Pattern track in the exact same way as you edit a pattern in a style, with the exception that you do not use a Chord for Composition when creating the pattern in a Pattern track. When you enter notes into a Pattern track, you always enter them as if the Chord for Composition is C major. This is true for the Sequence track as well. You can also insert a pattern into the Pattern track using the copy and paste commands to copy notes from a pattern in a Style or from another Pattern track.

If the segment contains a Chord track, you can turn on/off the variable functionality of the notes in a Pattern track, so that they don't adjust to the chords during playback. Right-click anywhere in the Chord track and click Keep Constant. Select MIDI Notes for the Pattern track notes to play the same pitches regardless of the chords in the segment, or select Functionality for the Pattern track notes to adjust to chords in the segment.

For more information about creating and editing patterns and their variations, see Pattern Editor.


Script Track

You can insert one or more programmed scripts of computer commands into the Script track. This allows you to trigger one or more scripts at specific points in the timeline of a segment. The scripts you insert work directly with the Microsoft® DirectMusic® DLLs to control playback of performances, including playback of the segment containing the script, and other segments named within the scripts.

Before you can insert a script in the Script track, you must use Script Designer to create a script containing at least one routine/procedure. For example, the script shown in the following figure contains two very simple routines/procedures:

  • SetMasterTempo50

    Uses the SetMasterTempo method to set the tempo of the segment to 50% of its original state.

  • ResetMasterTempo100

    Uses the SetMasterTempo method to set the tempo back to its original state.

For information about creating a script, see Script Designer.

Script routines you create can only be run by playing a segment that contains calls for the routines in its Script track. The following figure shows a segment with the SetMasterTempo50 routine in measure 2, and the ResetMasterTempo100 routine in measure 4.

Note If a script routine contains a method that calls a segment, such as the Segment.Play method, then that segment takes over as the primary segment, and playback transitions to it. Playback of the segment containing the script track does not continue, and any other script routines in the track are not run. See Primary Segments.

When you insert script calls in the Script track, a Script Routine Properties window, similar to the following, is displayed.

In this window you select the script, and then choose from a list of all routines contained in the script. You can select a measure, beat and tick to assign a script a specific start time referred to as a time stamp. The timing setting you choose in the Script Routine Properties controls how soon after the calls is reached that the script is processed and used in the performance. There are three timing options:

  • Quick Response

    As fast as possible. The script is processed as soon as it is reached, regardless of its time stamp. Useful when the script is used to set a parameter that can occur at any time.

  • Before Time Stamp (default)

    The notification is processed just before its time stamp, allowing for port latency. Useful when the script is used to set a parameter before another event, such as a change in instrument sounds before the beginning of a note.

  • At Time Stamp

    The notification is processed at the time stamp, right on the beat and tick of the start time for the lyric. Useful for when a script is to begin playing a file at a precise start time.

To insert a script into a segment

  1. If necessary, create a script using Script Editor.
  2. In the Script track, right-click a measure or beat where you want the script to begin, and then click Insert.
  3. In the Script box, click the script file you want to use.
  4. In the Routine box, select the routine in the script you want to use.
  5. If necessary, adjust the measure, beat, and tick settings to set a start time in the segment where the script will begin.
  6. In the Timing box, click Quick Response, Before Time Stamp or At Time Stamp.


Segment Trigger Track

You can insert triggers for any other segments or motifs into the Segment Trigger track, so that the segments or motifs play in a specific order and with specific start times that you choose. This lets you use the current segment to control the timing of playback for numerous other segments or motifs.

Both segments and motifs are inserted into the track as segments. A segment or motif that you insert in the Segment Trigger track is a reference to an existing segment or motif, but each trigger in the track has its own set of properties that control its playback, but do not affect the properties of the original file.

There are two ways you can use the Segment Trigger track to control the performance of multiple segments:

  • Create one segment to serve as the primary segment with its own data for playback, and then insert secondary segments into its Segment Trigger track so their playback is layered on top of the primary segment without interrupting its playback. Secondary segments can be positioned to start at specific times during playback of the primary segment, and they contain their own individual settings for playback, including how long to play before stopping, and how many times to loop.
  • Create a segment that is completely empty except for a Segment Trigger track, and use it only to control the start times of segments in the Segment Trigger track. The tempo of the empty segment controls the tempos of all secondary segments. All segments you insert in the track can be secondary, or a single segment in the track can be primary.

You can click anywhere in the Segment Trigger Track and press Insert to place a trigger. A Segment/Motif Trigger Properties window is displayed, as shown in the following figure.

You can also right-click an existing trigger in the track and click Properties to display the Segment/Motif Trigger Properties for the trigger.

The Segment/Motif Trigger Properties window contains two tabs:

  • Segment tab

    Provides settings for triggering a segment or motif, making it primary or secondary, making it controlling, and setting Start Time and Belongs To time. Note that there can only be one primary segment at a time, so choosing the primary option can interrupt playback.

  • Boundary tab

    Provides performance boundary settings to override the default settings of a segment that is triggered. For information, see Boundaries.

To insert a segment or motif into the Segment Trigger Track

  1. In the Segment Trigger track, right-click a measure or beat where you want the segment to begin, and then click Insert.
  2. Click the Segment option if the trigger will play a segment. Click Motif if the trigger will play a motif.
  3. If using a segment, select the segment you want to use in the Segment list. If using a motif, the Segment list changes to a Style list. Select the style containing the motif, and then in the Motif list, select the motif you want to use.
  4. In the Type area, select Primary or Secondary.
  5. If you want the segment to be controlling, select the Controlling option.
  6. If necessary, adjust the measure, beat, and tick settings to set a start time where the segment will begin.
  7. Click the Boundaries tab to create new performance boundary, align, and timing settings for the segment. For information, see Boundaries.


Segment/Motif Trigger Properties Segment Tab

You can click anywhere in the Segment Trigger Track and press Insert to place a marker, or right-click an existing marker in the track and click Properties to display the following Segment/Motif Trigger Properties window.

Use the Segment Tab of the Segment/Motif Trigger Properties window as follows:

  • Choose either the Segment or Motif option.

    If you choose Segment, then the drop-down list displays all segments available in the project. If you choose Motif, then the drop-down list switches to show all styles available in the project, and the Motif window is activated. The Motif window displays a list of all motifs available in the style you select.

  • Designate the segment or motif as Primary or Secondary.

    See explanation below.

  • Designate the segment as Controlling if desired.

    If you choose Secondary, the Contolling option becomes available. Select this option to turn on the controlling options for all tracks in the secondary segment that use the controlling flag. Contents of these track override those in the primary segment for as long as the secondary segment plays. For information, see Properties Window Flags Tab.

  • Choose a start time for the segment. See Segment Properties.
  • If desired, choose a Belongs To time. See Belongs to Beat.

Primary or Secondary option

Only one segment at a time can be primary. Choosing the Primary option in the Segment/Motif Trigger Properties window causes playback of a primary segment that contains the Segment Trigger track to be interrupted. When you place a marker for a primary segment in the Segment Trigger track of another primary segment, playback transitions to the new primary when it is reached. Thus, a transition occurs from the source segment containing a Segment Trigger track, to a destination segment. Playback of the source segment is halted, and all remaining measures in the source segment are ignored.

If you do not want playback of the source segment to stop, choose the Secondary option in the Segment/Motif Trigger Properties window to set the segment in the track to be a secondary segment. For more information, see Multiple Primary Segments.

For more information about the relationship between primary and secondary segments, see Primary Segments.

In most cases, playback of a primary segment is not changed by secondary segments, with one exception: instrument sounds. When two or more segments use the same PChannel, the instrument sound used on that PChannel is controlled by the last segment to be reached during playback. For more information, see Band Conflicts.

You can also set a segment in the Segment Trigger track as a controlling segment so that some of its tracks control the playback of all other segments. For more information, see Controlling Segments.


Sequence Track

A segment can contain one or more sequences of MIDI data to be played using any tempo, start and stop time, and instrumentation.

You can use four methods to place a sequence of MIDI data in a segment:

  • Import a MIDI file

    You can import a MIDI file as a segment. This creates a new segment with a sequence track containing all MIDI data for notes and MIDI controller curves, and a Band track containing all instrument assignment information for the MIDI file. For more information, see Importing a MIDI File as a Segment.

  • Copy and paste MIDI data from a separate MIDI program

    You can copy MIDI data from a separate MIDI software application, and paste it into the Sequence track of a segment. All MIDI data and MIDI controller information can be copied. See Cutting and Pasting Notes.

  • Copy and paste MIDI data between tracks

    You can copy MIDI data from one Sequence track and paste it into another. You can create multiple Sequence tracks in a segment to contain multiple sequences of MIDI data you are pasting, or you can combine the contents of multiple Sequence tracks by pasting MIDI data into one track. See Cutting and Pasting Notes

  • Copy and paste MIDI data between components

    You can copy MIDI data from a Sequence track in one segment and paste it into another segment. You can also copy MIDI data from a style pattern and paste it into the Sequence track of a segment.

Copying large regions of material in segments and patterns is made easier using a combination of the timeline and the selection buttons along the left edge of a segment or pattern. For information, see Using the Timeline and Selection Buttons to Cut and Paste Large Regions.

Note MIDI controller events that are part of a MIDI sequence can be stored along with the notes in the Sequence tracks of a segment. MIDI notes must be copied and pasted separately from MIDI controller curves when using copy and paste commands. For more information, see Sequence Editor.

In addition to placing a complete sequence of MIDI data into the sequence track, you can enter new MIDI data in a Sequence track by recording from a MIDI input device, or by clicking in the track when the Sequence Editor is opened, to enter individual notes. See Note Entry and Editing.

You can add any number of empty Sequence tracks to a segment and enter new MIDI data in the track. For more information, see Adding New Tracks.

A sequence of MIDI data can be placed so it begins on any beat or measure in the segment. The tempo shown in the Tempo box, or the tempos in the Tempo track, will apply to the playback of all MIDI sequences in a segment. For more information, see Segment Tempos.

Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For more information, see Properties Windows for Segment Tracks.


Sequence Track Properties

A Sequence track can only be assigned to a single track group at a time, but you can insert multiple Sequence tracks in a segment with each containing a different instrument part. You can right-click a Style track in a segment and click Properties to open a window similar to the following.

You can enter any track group number from 1 to 32 for the selected track. The Properties window of a Sequence track also includes the following settings:

  • Sequence track name

    Enter any name you want to describe the individual Sequence track. The default name for all Sequence tracks is Sequence. The Sequence track name is displayed in the Track list of the segment.

  • PChannel assignment

    Assign the Sequence track to a performance channel. When you choose a PChannel number, the PChannel name is automatically updated to show the name currently used for all other components in the project for that PChannel.

  • PChannel name

    Assign a new PChannel name to the selected PChannel. The PChannel name you enter is used for all components throughout the project. This name can be edited from the Properties windows of other components in the project, including other segments and styles.

  • Note Color

    Choose a color for the notes in the selected track.

  • Overlapping Color

    Choose a color for the overlapping notes in the Sequence track.

  • Selection Color

    Choose a color for the selected notes in the Sequence track.

  • Accidental Color

    Choose a color for the accidentals in the Sequence track.


Signpost Track

There are 13 signpost groups (1, 2, 3, 4, 5, 6, 7, A, B, C, D, E, or F) available in a chordmap file. When you place a signpost in a Signpost track, it tells a segment which of these signpost groups (SPGs) to switch to and when to switch.

In order to draw chords from a chordmap, the Signpost track must contain at least one signpost that corresponds to a signpost group in the chordmap. In addition, the specified chordmap must have at least one chord assigned to the signpost group. For information about signposts and signpost groups, see Organizing the Signpost List.

Signpost chords often have chord paths that extend from them. A Signpost track must have at least two signposts in order for any chord paths to be used. In addition, the two signposts must be separated by the number of measures required to fit the chord path. If no paths fit, then the signposts are used without their paths. For information, see Placing Signposts.


Compose Chords Button

A segment containing a chordmap and signposts can repeatedly generate fresh chord progressions based on the signpost chords of a chordmap file. This is done using the Compose Chords button, shown on the Signpost track in the following figure.

After you create the basic structure of a segment, click the Compose Chords button to search out signpost chords that fit the parameters of the segment's structure and place chords in the Chord track. For more information, see Variable Chord Progressions.

Using the Compose Chords button in Microsoft® DirectMusic® Producer creates the same effect of a software developer using the Compose Chords command to generate chords in a segment at run time in a software application or game. For more information, see Using Files in the Developer Environment.

Before you can use the Compose Chords button, you must complete the following actions in the segment:

  • In the Chordmap track, insert a chordmap from which the chords are drawn.
  • In the Signpost track, insert one or more signposts.
  • Add either a Style track or a Pattern track if one does not exist. If you use a Style track, you must also insert a style to play in the segment.

You have the option of using a chordmap for designing the segment only. When the segment is used as a run-time file by a developer, the chordmap in the Chordmap track can be used or ignored, depending on the option you choose. Right-click the Chordmap track and select Properties, click the Flags tab, and choose Audition (Design) Only. The chordmap in the track is ignored, and a developer can use any chordmap with the segment. For more information, see Properties Window Flags Tab.

After using the Compose Chords button, you can select and edit a chord in the Chord track. For more information, see Chord Properties Window. If you save the segment, the chords displayed in the Chord track are saved. Each new use of the Compose Chords command replaces the current chords with new chords drawn from the chordmap file.


Placing Signposts

In order for DirectMusic Producer to calculate which chords to place in a segment, you must place signposts in the Signpost track of the segment. You must also choose a chordmap and style for the segment.

You can place one signpost per measure in as many measures as you choose, though it is recommended that you spread them out over several measures. You should always place a marker in the first measure. Thereafter, an signpost usually occurs every four to eight measures, depending on how frequently you want the chords to change. However, you are free to place them wherever they make the most musical sense.

When use the Compose Chords command, signpost chords are drawn from the signpost groups of the chordmap and inserted at the signposts. If any of the signpost chords is followed by a chord path that can logically fit between the signposts in the segment, the chord path is also inserted. You should place signposts to allow enough space for chord paths to fit using the minimum or maximum duration of the combined string of chords. If no chords in the signpost group have paths that fit, DirectMusic Producer selects a single chord from the signpost group to play by itself until the next signpost group arrives. For more information about how chordmaps and segments work together, see How a Chordmap Interacts with Signposts.

To insert a new signpost

  1. Right-click the Signpost track in any measure. You do not need to click the first beat of the measure.
  2. Choose Insert from the shortcut menu. The following Signpost Properties window is displayed.

  3. In the drop-down list, select a signpost group.
  4. Click Precede Signpost with Cadence to use any cadence chords that are attached to signpost chords in the group. For more information, see Chordmap Designer. A new signpost is placed in the Signpost track of the segment.

  5. To place additional signposts, repeat steps 1 through 4 for each measure.
  6. Click the Close button to close the Signpost Group Properties window.

You can select and edit one or more signposts in a segment using the Copy, Cut, Delete, and Paste commands. For more information, see Editing Objects in Segment Tracks.

.


Signpost Track Properties

You can right-click the Signpost track and select Properties to open the Signpost Track Properties window.

The Signpost Track Properties window contains three tabs:

  • Track Group Assignment

    Used to assign the track to a track group, as you can for many tracks in a segment. See Track Group Assignment Tab.

  • Flags

    Used to set behavior of the track for playback and interaction with other tracks, including the Audition (Design) Only option that lets the contents of the track be ignored by a developer. See Signpost Track Flags Tab.

  • Audition Settings

    Used to set an activity level for controlling the number of chords that can occur between signposts. See Audition Settings Tab.


Audition Settings Tab

The Audition tab in the Signpost Track Properties window contains an Activity Level setting. You can use this setting to control the number of connecting chords that are inserted between signposts in the segment when you click the Compose Chord button in the Signpost track. If more than one path can fit between a pair of signposts, DirectMusic Producer must choose one at random. You can set an activity level in the segment to help DirectMusic Producer choose which paths to use.

You can choose from five activity levels: High, Medium High, Medium Low, Low, and Bypass Activity. Bypass Activity is the default setting. Depending on the level you select, connecting chords are inserted between signpost chords every one to two measures.

If a variety of chord paths are in a chordmap, the Activity Level setting helps differentiate between them. A chord path with an average of two or more connecting chords in each measure is considered a high-activity chord path. A chord path with one connecting chord every two or more measures is considered a low-activity chord path.

When you choose the Low setting, only chord paths with low activity can be used to fill in the measures between signposts. When you choose the High setting in a segment, only chord paths with high activity can be used to fill in the measures between signposts. When you choose Bypass Activity, the numbers of chords in the chord paths are ignored. A chord path is selected at random from all chord paths that can fit, regardless of the number of chords it contains.

Note Depending on the number of chords in the chord paths, some activity level settings can result in no chord paths being selected. For example, if all chord paths contain a high number of chords, and you choose a low-activity level, there may be no chord paths that match. The Bypass activity level ensures that a chord path is selected, regardless of the number of chords.

The following table shows the intensity level choices and the general tendency for the number of chord changes that are inserted. The distance between the signposts can affect the actual number of chords inserted.

Setting | Effect
Low | Average of one chord every two measures.
Medium Low | Average of two chords every three measures.
Medium High | Average of one chord per measure.
High | Average of two chords per measure.
Bypass Activity | Randomly chooses a valid chord path.

To change the chord activity used when generating a segment

  1. In the project tree, right-click the internal icon of the segment and select Properties.
  2. Click the Audition tab.
  3. In the Activity Level box, select the level for the segment. The chord activity affects which chords DirectMusic Producer chooses when you generate segment chords.

Note The activity level setting is saved in the properties for the segment. In addition, after you change any settings, they remain that way until you change them again. However, the settings are not saved in the properties of the segment run-time file that you deliver to a software developer.


Signpost Track Flags Tab

Use the Flags Tab to set behavior of the Signpost track for playback and interaction with other tracks, including the Audition (Design) Only option that lets the contents of the track be ignored by a developer.

Set the Recompose on Play option to apply the Compose Chords command each time the segment starts to play.

Set the Recompose on Loop option to apply the Compose Chords command each time segment playback loops.

With either of these options selected, a Chord track is automatically added if none exist when the Compose Chords command is applied.

For more information about Flags, see Properties Window Flags Tab.


Style Track

A style consists of musical patterns, rhythms, and melodies designed to imitate the sound of a particular musical genre. It also include bands to match the genre. A style also contains multiple variations in its patterns. Thus, the performance of a segment sounds different each time Microsoft® DirectMusic® Producer plays it, including when playback loops.

You can insert as many styles as you want in the Style track of a segment, though no more than one style per measure.

The first style in the track is considered the primary style for the segment and should be inserted on beat 1 of measure 1.

You can add a new Style track to a segment at any time. See Adding New Tracks. Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For more information, see Properties Windows for Segment Tracks.

For more information about inserting styles into a segment, see Inserting Styles in a Segment.

If you do not include a Style track in a segment, or if you leave the Style track empty, the segment has no musical material to play, and is silent during playback. The exception to this is when a segment is based on a sequence of MIDI data. See Sequence-Based Segments.


Style Track Properties

A Style track can only be assigned to a single track group at a time, but you can insert a separate Style track for each track group in a segment. You can right-click a Style track in a segment and click Properties to open a window similar to the following.

You can enter any track group number from 1 to 32 for the selected track.

The Style Track Properties window contains a special Seed Variation for Audition option that you can use to generate a "seed" of the variations in the style. You can click the Enable box to temporarily lock the order of the variations in their current state. This causes the playback of the style in the Style track to be the same every time the segment is played. This option makes it possible for you to select a variations order for repeated use, or to recall a specific variations order for future use.

Each seed of the variations in the style has a unique number. You can view the number by clicking the Edit Seed button. This opens an Edit Seed window that displays the number of the current seed. You can enter any number in the window, limited only by the potential of the style for mixing variations together from all its parts. If you know the number of the seed you want to use, you can enter the number. The exact order of variations is then recalled.

You cannot save a seed number in DirectMusic Producer, other than to write down the number or remember it on your own. However, you can click the Edit Seed button at any time to enter the seed number you want.

With the Enable box selected, the current seed of the variations is locked in until you click the Generate New Seed button. Clicking this button creates a new order of the variations that completely replaces the previous one. The newly generated seed is selected at random from the numerous possible orders of the style variations. The new seed has a completely separate number that is different from the number of the previous seed (the seeds are not chosen in any predictable order). Thus, if you have not written down or remembered the number of the previous seed, you have only a small chance of returning to that particular seed.

By experimenting with the Generate New Seed button, you may come up with several workable seeds that you would like to recall for future use. In addition to entering a desired seed number in the Edit Seed window, you can deliver the seed numbers to a software developer who can recall a specific seed using the commands in the DirectMusic components. For information about delivering DirectMusic Producer files to software developers, see Using Files in the Developer Environment.


Inserting Styles in a Segment

You can insert as many styles as you want in the Style track of a segment, though no more than one style per measure.

To enter a style in a segment

  1. In the Segment Designer window, click the Style track at the beginning of any measure and then press the INSERT key.
    Or, right-click the Style track at the beginning of a measure and then from the shortcut menu, click Insert. The Style Properties window appears.
  2. In the Style list, choose a style. Only styles currently in the project tree are listed. To add a style to the tree, see Adding Existing Components to the Project Tree.
  3. In the Measure box, choose the measure in the segment to place the style.

Other ways you can add a style:

  • Drag-and-Drop

    Another way to add a style to a segment is using the mouse to drag and drop the style onto the Style track of a target segment. The original style can either be dragged from the project tree or from the Style track of another segment. When you drag a style, you place it in the beginning of a measure. During playback, the style then becomes active in the segment at the beginning of its measure. If you drag the style onto the wrong beat or measure, you can simply right-click the style in the segment's Style track to open its Properties window and adjust the measure for the style.

  • Changing Styles

    If you have spent a great deal of time placing groove and embellishment changes, or inserting special chords in a segment, you may insert a different style in the segment without losing your previous work. Although Microsoft® DirectMusic® Producer can compose an all new segment using information from a style, you may want to vary the segment by inserting new data from some other style, while retaining all other work you have already done to the segment.

To save a copy of a finished segment and then apply new style information while retaining the chords of the original, you can use the Save As command on the File menu. For example, assume you are writing a song in the style of a slow ballad for the verse segment, using a carefully planned chord progression. However, you want to create a bridge segment that switches to a rock style with a faster tempo, yet retain all the chord information of the original segment. To accomplish this, you could set the tempo to 90 beats per minute and the style to 12/8 ballad during the verse segment, and in the bridge segment set the tempo to 120 beats per minute and the style to rock.


Tempo Track

You can place one or more tempo markings in the Tempo track of a segment, with the playback of the segment adjusting to follow the new tempos. You can insert as many tempo markings as you want in a segment, though no more than one tempo change per measure. Tempos can range from 1 to 1,000 beats per minute. Tempo markings you insert in the Tempo track of a segment control the playback tempo of all tracks in the segment. For more information, see Segment Tempos.

A segment must have only one Tempo track. For variety, you can insert multiple tracks of styles, sequences, and other components in a segment and organize them into as many as 32 different groups of tracks. However, the Tempo track belongs to all the track groups. For more information, see Track Groups.

If the segment contains any styles in the Style track, the tempos of the styles are automatically placed in the Tempo track at the corresponding measures where the styles becomes active. If there is no Tempo track in a segment when you add a Style track to it, a Tempo track is automatically added. For more information, see Adding New Tracks.

The first tempo in the Tempo track is considered the primary tempo for the segment and should be inserted on beat 1 of measure 1. During playback, the tempo currently in effect for the measure being played is displayed in the Current Tempo box.

Each track in a segment has a Properties window you can open by right-clicking the track and clickinging Properties in the shortcut menu. For more information, see Properties Windows for Segment Tracks.


Inserting and Editing Tempo Markings in a Segment

When you first add a Tempo track to a segment, a default tempo of 120 is inserted in the track on beat 1 of the segment. You can right-click anywhere in the track and click Insert to place additional tempos in the track. When you insert a tempo, or when you right-click an existing tempo and click Properties, a Tempo Properties window is displayed similar to the following.

You can enter any tempo from 10 to 350 in the Tempo box. You can also adjust the measure, beat, and tick where the tempo begins in the segment. You can enter as many tempos in a segment as you want, including multiple tempos within a single measure.


Time Signature Track

You can place one or more time signatures in the Time Signature track of a segment, with the timeline adjusting automatically to follow them. You can insert as many time signature changes in a segment as you want, though no more than one time signature per measure.

In addition, the segment must follow the time signatures of any styles used in the segment. When you add a Style track to a segment, the Time Signature track in the segment is dimmed so you can no longer enter or edit time signatures in it. In addition, the time signature of each style in the segment is automatically placed in the Time Signature track at the measure where the style becomes active. If there is no style track, you can enter or edit any time signature in the Time Signature track using the mouse.

Note If you do not use a Style track in a segment (and, thus, must use a Time Signature track in order to use time signatures), you should make certain there is a time signature in measure 1. Without a time signature in the first measure, using the metronome during recording or playback will produce a quarter-note tick until the first time signature is reached in the segment. This occurs whether or not the time signature later in the segment has a note value other than a quarter note. You can add a new Time Signature track to a segment at any time. See Adding New Tracks. Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For information, see Properties Windows for Segment Tracks.

The time signatures you insert into a segment, and time signatures that belong to styles, contain a grid setting to help you more accurately position the cursor and enter notes. For more information, see Segment Grid Divisions.

For more information about inserting time signatures in a segment, default segment time signatures, and using multiple time signatures, see Segment Time Signatures.


Time Signature Track Properties

A Time Signature track can only be assigned to a single track group at a time, but you can insert a separate Time Signature track for each track group in a segment. You can right-click a Time Signature track in a segment and click Properties to open a window similar to the following.

You can enter any track group number from 1 to 32 for the selected track.


Wave Track

You can insert one or more wave files into the Wave track, giving them a specific start time according to their position on the timeline. You can add a Wave track to a segment at any time. See Adding New Tracks.

The Wave track can contain files with a .wav extension, generally created by digitally sampling the sound of a musical instrument or other acoustic sound source.

Waves can be mono or stereo waves, and can be set to play straight through a single time, or loop one or more times. Waves you insert in the track are only references to wave files in the project tree, and are not embedded in the segment. A wave contained in a DLS collection cannot be used unless a copy of it is placed in the project tree.

Each Wave track can contain one or more parts. Each part belongs to a specific PChannel, and appears as a separate strip in the Segment Design. For example, the preceding illustration shows a segment with a single Wave track. The track contains two parts, Main Wave Part and Extra Wave Part, assigned to play over PChannel 33 and PChannel 34. The Main Wave Part contains two .wav files: CHIMES and APPLAUSE.

When you insert a new Wave track into a segment, it is initially displayed as shown in the following figure.

By default, a new Wave track contains one part, assigned to PChannel 1. The name of the PChannel is the same name used for PChannel 1 in all files in the project.

Click the Maximize button in the part to display its contents. The following figure shows an empty part. The part initially contains a single, active layer with a selection button labeled "a". There is an empty layer below it that is inactive and has a button without a label.

You can right-click the "a" layer at any time and click Insert to insert a wave in the part.

To insert a wave file in the wave part

  1. If necessary, add a wave file to the project tree. See Adding Existing Components to the Project Tree.
  2. Double-click the wave part to expand it, displaying its contents.
  3. Click anywhere in the "a" layer of the wave part and press the INSERT key, or right-click the track and click Insert. The Waves Properties window is displayed. See Properties for Waves in a Wave Track.
  4. In the Waves Properties window, click the Wave list to choose the wave you want to insert in the segment.
  5. If desired, adjust the start time, end time, length or offset for the wave. For more information, see Properties for Waves in a Wave Track.
  6. Click OK to close the Wave Properties window.
  7. Drag the newly inserted wave to any position in the part.

Using Multiple Layers

When you insert a wave in the "a" layer of the part, the "a" on its selection button turns dark. You can insert as many waves as you want in the layer. If you insert a wave in the inactive layer below, that layer becomes active and "b" appears on the selection button for the layer. An inactive layer is added below the "b" layer. You can continue inserting waves to activate as many layers in as you want in the wave part. All waves in all layers of a part are heard during playback of the segment.

Other Methods for Inserting Waves

You can also insert a wave by dragging its internal icon from the project tree onto the wave part, or using the Copy and Paste commands to copy a wave from either the project tree or another Wave track or part. See Drag and Drop.

Using Variations for Waves

For each Wave part, you can create 32 variations using the variation buttons at the top of the part. See Wave Variations.

Using Multiple Wave Tracks

You can add as many individual Wave tracks as you want in a segment, and assign each Wave track to a single track group. See Track Group Assignment Tab.

Using Clock Time or Music Time

You can set a Wave track to use clock time, so that the timeline appears in the track using minutes and seconds instead of measures and beats. See Clock Time in a Wave Track.

Waves Playing Their Full Length

You can insert a wave that is longer than the segment that contains it. The wave continues to play its full length even after the segment reaches its end. You can select options to control whether a wave plays its full length when playback of its segment is interrupted or transitions while the wave is playing. See Performance Tab for Waves in a Wave Track.


Wave Variations

For each wave part, you can create 32 variations using the variation buttons at the top of the part. This is very similar to using variations in a pattern part. See Part Variations.

For example, you can create a part that plays a different wave or group of waves each time the segment loops. The variation that plays when a segment loops is chosen in a random order, or according to an order that you decide.

The following figure shows a Wave track with a maximized wave part, displaying the 32 variations buttons. The button for variation 1 is selected, which makes the variation active. Because no other buttons are selected, all other variations in the part are inactive. The CHIMES wave is contained only in variation 1.

After you design multiple variations for a part, you can choose options in the Wave Part tab of the Wave Track Properties window for playing the variations in random order, for tying their order to another part, and for other options. You can also use setting in the Wave Track tab of the Wave Track Properties window to link the variations order to that of the Pattern track, or reset the variations order each time the segment plays.

You can use the Variations tab in the Properties window of a selected wave to assign it to one or more variations in the part. See Wave Track Properties.


Properties for Waves in a Wave Track

You can right-click a wave in the Wave track of a segment, and click Properties to open the Wave Properties window, as shown in the following figure. The window is also displayed when you right-click a Wave track and click Insert.

This window controls all properties for how the wave is used in the segment. The window contains four tabs:

  • Wave Tab for Waves in a Wave Track

    Provides a choice of waves available in the project tree, and settings for start, end, length, and offset.

  • Loop Tab for Waves in a Wave Track

    Provides options for selecting a portion of the wave to be looped in place of the entire wave.

  • Performance Tab for Waves in a Wave Track

    Provides options for attenuation, tuning, a belongs to beat setting, and more.

  • Variations Tab for Waves in a Wave Track

    Provides options for assigning a wave to 32 variations.


Wave Tab for Waves in a Wave Track

The Properties window of a wave in a Wave track contains a Wave tab, shown in the following figure. The Wave tab provides a choice of waves available in the project tree, and settings for start, end, length, and offset.

Click the Wave list to choose any wave file that is in the project. If a wave does not appear in the list, you can add a wave to the project. See Adding Existing Components to the Project Tree.

Settings in the Start row show the current bar (measure), beat, grid, and tick for the beginning of the selected wave. Enter new settings to adjust the position.

Settings in the End row show the current bar (measure), beat, grid, and tick for the ending of the selected wave. Enter new settings to adjust the position. You can click the Lock button to lock the position for the end of the wave. When the end is locked, adjusting the start settings affects the length of the wave only.

The Source row beneath the End row shows the ending position of the wave based on the original length of the wave you insert. This information does not change if you edit the end or the length settings for the selected wave. When you change the start position of the wave, the source information adjusts to show where the originally inserted wave would end using its normal length.

Settings in the Length row show the current length of the wave, measured in bars, beats, grid, and ticks. These settings adjust automatically when you change the start or end settings for the wave. You can click the Lock button to lock the length, so that the start and end settings move in tandem to maintain the length of the wave.

The Source row beneath the Length row shows the original length of the wave you insert. This information does not change.

Settings in the Offset row show a value for delaying the start of a wave. For example, you can set the Start time of a wave so it is positioned on beat 1 of a measure, and then adjust the offset so the wave does not actually begin playing until beat 2. The offset does not affect the end of the wave. Some contents of the wave are removed so the wave fits into a shorter period.

The Samples area of the window shows the number of digital samples used to play the wave. Information in the upper box adjusts when you change the length of the wave. Information below the upper box shows the original number of digital samples in the wave you insert.

Information in the bottom box adjusts to show the number of samples removed when you change the offset.


Loop Tab for Waves in a Wave Track

The Properties window of a wave in a Wave track contains a Loop tab, shown in the following figure. The Loop tab provides options for selecting a portion of the wave to be played in place of the entire wave. This portion is looped during playback, so that the length of time when the wave plays is filled with the selected wave portion playing repeatedly.

Select the Loop check box to activate the looping option.

Note For the DX release of DirectMusic Producer, a looping wave repeats a very small portion of its beginning after it finishes looping.

Use settings in the Start row to choose a beginning bar (measure), beat, grid, and tick for the looped portion of the wave. You can enter settings that fall within the time of the entire wave shown in the Wave tab. If you choose a start time that is not the beginning of the wave, the wave begins normally and plays until the start point for the loop is reached, then begins playing the looped portion of the wave.

Use settings in the End row to choose an ending bar, beat, grid, and tick for the looped portion of the wave. You can enter settings that fall within the time of the entire wave shown in the Wave tab, and after the Start setting of the wave loop. After playback of the wave begins, the portion of the wave that is looped plays continually until the end time set in the Wave tab is reached.

Settings in the Length row show the current length of the loop, measured in bars, beats, grid, and ticks. These settings adjust automatically when you change the start or end settings for the loop. Enter new settings for the length, and the End setting adjusts automatically. You can click the Lock button to lock the length, so that the start and end settings move in tandem to maintain the length of the wave.

The Samples area of the window shows which digital samples are used to play the wave loop. Information in the upper box shows the position of the first sample used in the loop, and adjusts when you change the start time of the loop. Information in the middle box shows the position of the last sample used in the loop, and adjusts when you change the end time of the loop. Information in the lower box adjusts when you change the length of the loop. You can change the settings in the Samples area to adjust the start, end, and length of the loop.

Wave Looping in Run-time Files

When you deliver a segment as a run-time file to a software developer, the loop setting for a wave in a Wave track is saved with the file.


Performance Tab for Waves in a Wave Track

The Properties window of a wave in a Wave track contains a Performance tab, shown in the following figure, that provides options for attenuation, tuning, a setting to not cut off a flag, and assigning a measure and beat where the wave belongs.

  • Attenuation

    Use to reduce the volume of the wave for playback, measured in decibels (dB). A setting of zero dB plays the wave at its original volume. The lowest setting of –96.0 dB reduces the volume to silence.

  • Fine Tune

    Use to change the pitch of the wave during playback, measured in semitones. The highest setting of 12.00 semitones raises the pitch one octave. The lowest setting of –12.00 semitones lowers the pitch one octave.

  • Flags - Don't Cut Off

    Select this check box to ensure that after a wave starts playing in a segment, the wave is not cut off before it is finished. Under normal circumstances a wave continues to play after a segment containing it ends. For example, if a wave that is 30 seconds in length is inserted at the beginning of a two-measure segment that ends after only 10 seconds, the wave will continue to play 20 seconds beyond the end of the segment. If playback of the segment is interrupted while the wave is playing, or transitions to another segment before a wave ends, playback of the wave is halted abruptly . Choose Don't Cut Off to let the wave finish. See Cut Off and Invalidation of Notes or Waves.

  • Belongs To

    Specifies the measure and beat that a wave belongs to, which lets you physically place the wave to play on a beat, but associate it logically with another beat. This is useful for waves that you want to include in a looping portion of a segment, but which are heard before or after the looping portion. See Belongs To Beat.


Variations Tab for Waves in a Wave Track

For each wave part, you can create 32 variations using the variation buttons at the top of the part. See Wave Variations.

You can use the Variations tab, shown in the following figure, in the Properties window of a wave in a Wave track to assign a selected wave to any of the 32 variations.

Right-click a wave in a part, click Properties, and then click the Variations tab. You can select the check box of any variation in the tab to assign the selected wave to the variation. You can assign the wave to as many variations as you want. This works in the same way as using copy and paste commands to insert the wave in the variation. Clearing a variation's check box removes the wave from the variation.


Wave Track Properties

You can right-click the Wave track in a segment to open a Wave Track Properties window, shown in the following figure.

The Wave Track Properties window contains the following tabs:

  • Track Group Assignment

    When you create multiple Wave tracks, you can assign them to separate track groups. See Track Groups.

  • Flags

    Use this tab to control behavior of the Wave track in several ways, including choosing Clock Time for the timeline of the track. See Wave Track Flags Tab.

  • Wave Track

    Use this tab to attenuate the volume for the entire track, and to link the order for variations in any of the wave track's parts to that of the Pattern track, or reset the variations order each time the segment plays.

  • Wave Part

    Use this tab to choose a name for the part, assign a PChannel, edit the PChannel name, attenuate the volume for the part, choose an order for the variations in the part, and create a variations lock group for the part.


Wave Track Flags Tab

Use this tab to control behavior of the Wave track in several ways, including choosing Clock Time for the timeline of the track.

See also Clock Time in a Wave Track.


Clock Time in a Wave Track

You can open the Properties window of a Wave track and set the track to use clock time, so that the timeline appears in the track using minutes and seconds instead of measures and beats.

The following figure shows a segment that uses music time in its timeline, with a Wave track using clock time.

When you use clock time in this track, editing and performance is done on a clock basis using minutes, seconds, grids per second, and milliseconds. The placement of waves in the track is not affected by changes to the current Tempo setting.


Wave Track Tab

Use this tab to attenuate the volume for the entire track, and to link the order for variations in any of the wave track's parts to that of the Pattern track, or reset the variations order each time the segment plays.


Wave Part Tab

Use this tab to choose a name for the part, assign a PChannel, edit the PChannel name, attenuate the volume for the part, choose an order for the variations in the part, and create a variations lock group for the part.


Track Groups

When you build a segment, you initially use one each of any type of track. You can build a segment with multiple groups of tracks and multiple instances of each individual type of track. The exception to this is the Tempo track, of which there can be only one in a segment.

You organize the tracks into track group 1, track group 2, and so on, with one track of each type (for example, style and band) assigned to each track group. You can create a maximum of 32 separate track groups in a segment. The single Tempo track provided in a segment applies to all track groups (1 through 32) in the segment.

By using multiple track groups, you can create multiple layers of sound that play simultaneously in the segment. Each group of tracks might have its own band, style, and chords.

Note Because the instrument settings used on a given PChannel override any previous settings used on the PChannel, it is recommended that all Band tracks that you assign to a track group contain bands that use only those PChannels not used by bands in any other track groups.

As you are building a segment, you can use the Add New Track(s) command to insert a new track of any type in the segment. You can then right-click the track to open a Properties window where you assign it to a track group. For more information, see Assigning a Track Group Number.

Each track group can have its own individual tracks for styles, chords, grooves, bands, and so on, with contents in the tracks that are completely different from the other track groups. You can also share tracks between multiple groups so you do not have to re-create a separate instance of a track for each group that is using it. The exceptions to this are the Style and MIDI file tracks, which can only be assigned to one group at a time.


Assigning a Track Group Number

Each track in a segment has a Properties window you can use to assign the track to one or more groups of tracks. You use these groupings to organize and maintain more than one set of tracks within a segment. Thus, you can create a segment with numerous versions of Style, Band, and Chordmap tracks. You can organize them in the Track list with group 1 on top, group 2 next on the list, and so on. For more information, see Track Groups.

To assign a track to a track group

  1. In the Segment Designer, right-click a track. A shortcut menu is displayed.
  2. Choose Properties.
  3. Click the check box of any track group to assign the track.

Tracks can be shared between multiple groups so you do not have to re-create them each time. The exceptions to this are Style and MIDI file tracks, which can only be assigned to one group at a time.


Segment Properties

Each segment has a Properties window in which you set up the segment's name, tempo, key length, and repeats, plus the style, chordmap, and band to be used with the segment.

To open the Properties window of a segment

  1. In the project tree, right-click the segment's internal name. A shortcut menu is displayed.

  2. Choose Properties. A window similar to the following is displayed.

The Properties window has three tabs:

  • Segment Tab

    Contains settings for how a segment plays, such as length, key, and playback starting point.

  • Loop Tab

    Contains settings for which part of a segment plays when looping and how many repeats to play.

  • Info Tab

    Contains reference information about components, such as author, copyright information, and other information you may want to store.

  • Boundary Tab

    Contains default boundary settings for the segment used for stopping, playing as a secondary segment, and transitions.


Segment Tab

The Segment tab, shown in the following figure, includes the segment's name and length, plus several playback settings for the segment. For more information about segment names, see Project and Component Names in the Project Tree.

The Segment tab contains the following settings:

  • Name

    Name of the segment. This is the same as it appears in the project tree next to the internal icon of the file.

  • Length

    Length of the segment in measures.

  • Segment Start Time

    To specify a starting point in the segment where playback begins.

  • Play on new instance of embedded audiopath

    Optional flag for the segment. See Embedding an Audiopath in a Segment.


Segment Name

The Name box in the Segment tab shows the internal name of the segment. The same internal name appears in the project tree next to the internal icon of the segment. To modify the internal name, click the box and type a new name. The name is updated in the project tree as you type. For more information, see Project and Component Names in the Project Tree.


Segment Length

Length specifies the number of measures that the segment contains. Choosing a length for the segment is based on the number of measures you want the segment to play before it loops back to its beginning. The overall length of the segment is 20 measures by default.

To change the segment length

  1. In the Segment Properties window, click the Segment tab.
  2. Click the Length button. The Segment Length window appears.

  3. In the Number of Measures box, enter a number for the desired number of measures for the segment.
    Or, you can click the UP ARROW and DOWN ARROW keys to set the number of measures.
  4. Click OK.

If the new length is shorter than the previous length, measures beyond the current length are deleted from the segment, including any chords, grooves, embellishments, or other commands that existed. Everything that falls within the new length appears in the segment as before.

If the new length is longer than the previous length, the newly added measures will contain no new chords or other commands.


Segment Start Time

You can specify a bar (measure), beat, beat division (grid), and tick anywhere within the length of a segment where the segment begins playback. By entering a bar, beat, grid, and tick setting, you choose a point in the segment at which playback begins each time you start a new playback of the segment. For example, you may want to have a segment begin playing from the middle each time it plays. Default settings start the segment at the beginning of measure 1, beat 1. The Segment Start Time setting affects only the beginning of playback for a segment. If the segment is set to loop, playback will loop back to the beginning of the segment, unless you have set a different start point for looping.

  • For information about setting a loop start point, see Loop Tab.
  • For information about the measurement of beats, grids, and ticks, see Time and Beat Measurement.


Loop Tab

When you play a segment, it plays one time through and then stops by default. For convenience while editing, you can set the segment in the Loop tab to repeat over and over during playback. Clicking the Loop tab displays a window similar to the following.

In this window, you can set the following parameters to determine how the segment plays:

  • Loop Repeat

    To specify the number of times the segment should loop during playback.

  • Loop Start and Loop End

    To define a start and end time for the loop by entering the measure, beat, grid position, and tick for each. The information you enter affects the playback of the segment only after it begins looping. The initial start time for the segment is set in the Segment tab. For more information about beats, measures, grid divisions, and ticks, see Time and Beat Measurement.

  • Reset Loop to Entire Segment

    To revert to the default setting of using all measures of the segment for playback looping.

Looping Run-time Files

When you deliver a segment as a run-time file to a software developer, the loop setting is discarded. When the segment is used to create an interactive performance, looping is controlled by playback commands sent from the software application to DirectMusic.


Segment Properties Boundary Tab

You use the Boundary tab, as shown in the following figure, to set the default performance boundary for a segment.

Boundary settings are applied to the playback of a segment. They control three parameters:

  • How long playback of a segment continues after a stop command occurs.
  • How quickly a segment begins playback as a secondary segment.
  • How quickly a segment begins playback as a destination component in a transition.

Settings in the Boundary tab are equivalent to boundary settings used for playing secondary segments, and transitions. For information about boundary settings for all these, see Boundaries.


Boundaries

Boundary settings are applied to the playback of a segment. They control three parameters:

  • Ending a Segment

    The boundary determines how long playback of a segment continues after a stop command occurs. It is applied when you click the Stop or Stop at Boundary button, or when a stop command occurs in a software application using the segment. This can provide extra time for a segment to finish playing before playback ends, and affects how long playback of the segment continues whether it is used as a primary or a secondary segment.

  • Starting a Secondary Segment

    The boundary determines how quickly a segment begins playback as a secondary segment. It is applied to the beginning of a segment when you click a Play From Start button for a secondary segment, when a secondary segment trigger occurs in the Segment Trigger track, or when a secondary segment start command occurs in a software application using the segment. This provide precise timing so that a secondary segment begins at a point that aligns well with the primary segment.

  • Starting a Transition

    The boundary determines how quickly a segment begins playback as a destination component in a transition. It is applied to the beginning of a segment when you click the Transition button, or when a transition occurs in a software application using the segment. This provide precise timing so that a destination segment begins at a point that aligns well with the source component.

    The default boundary settings of a segment are also applied at the beginning of a transition segment that is inserted between two other components in a transition.

Note When you play a segment, the Stop or Stop at Boundary button functions only as a Stop at Boundary button. However, the Stop Immediate button halts playback of all components immediately, regardless of performance boundary settings in the components.

Boundary settings are set in four different windows:

  • Segment Properties Boundary tab

    The main boundary settings for a segment, used as the default for the segment, whether it is used as a primary segment, secondary segment, or as a component in a transition.

  • Secondary Segment Audition Options

    Temporary settings used for experimentation with starting a segment as a secondary segment.

  • Segment/Motif Trigger Properties window of a trigger in a Segment Trigger track

    Permanent settings you can create for starting secondary segments.

  • Transition Options window

    Temporary settings used for experimentation with transitioning between components.

Each of these windows contains settings that are very similar to those in the following figure.

The preceding figure shows the exact appearance of the Segment Properties window and the Segment/Motif Trigger Properties window of a trigger in a Segment Trigger track.

Other windows containing boundary settings contain differences as listed below.

  • In the Secondary Segment Audition Options window, Segment's Default is included in the drop-down list, in place of a separate Use Segment's Default option.
  • The Transition Options window is larger than the figure shown. It contains additional options so you can choose a transition segment or a transition pattern, and choose settings for controlling them.

Boundary settings shared by all the windows are organized info four areas:

  • Performance Boundary

    Choose a boundary on which to stop playback of the segment, or a boundary to start the segment as a secondary segment, or as a destination component in a transition. See Performance Boundary Options.

  • Align Options

    If you choose an option in the drop-down list for start points, you can choose one of several Align options. See Align Options.

  • Timing

    Choose Quick Response or After Prepare Time. See Timing Options.

  • Flags

Each of the windows includes a Don't Cut Off option so that if playback of the segment is interrupted, notes that are being held are not cut off before they are completed. See Cut Off and Invalidation of Notes or Waves.


Performance Boundary Options

Several performance boundary settings are available, as shown in the following figure.

  • Start at next marker

    Playback of the segment as a secondary segment begins after a start command, and then only after an Enter Switch Point is reached in the Marker track of the primary segment.

  • Transition at next marker

    Playback of the segment as a destination component in a transition begins after a transition command, and then only after an Enter Switch Point is reached in the Marker track of the source segment.

  • If no markers, start

    Enabled only if Start at next marker or Transition at next marker are selected. When a secondary segment start command or a transition command occurs, and no marker is found in the primary or source component, then other settings in the window are used.

  • Use Segment's Default

    You can choose this option when the segment is used as a secondary segment or in a transition.

  • Boundary Options Drop Down List of

    Choose Immediate, Grid, Beat, Barline, Align to Beat, Align to Barline, Align to Segment, End of Segment or End of Segment Queue.

    For example, the setting of Barline causes a segment to end at its next barline, or a secondary segment to wait until the next barline in primary segment is reached before starting to play.

Note Variation Switch Points in a style pattern also serve as boundary markers when the style is used in a segment. The option for Start at Marker or Transition at Marker can be triggered by the presence of a Variation Switch Point in the pattern being played. See Variation Switch Points.

Following are descriptions of the options in the Boundary Options drop-down list:

  • Immediate (default setting)

    Playback of the currently playing segment ends immediately. Playback of the segment as a secondary segment or transition destination immediately. The default Performance Boundary setting for a segment is Immediate.

  • Grid

    Playback of the currently playing segment ends when the next grid division is reached. Playback of the segment as a secondary segment or transition destination begins as the next grid division is reached in the primary segment.

  • Beat

    Playback of the currently playing segment ends when the next beat is reached. Playback of the segment as a secondary segment or transition destination begins as the next beat is reached in the primary segment.

  • Barline

    Playback of the currently playing segment ends as the next bar (measure) is reached. Playback of the segment as a secondary segment or transition destination begins as the next bar is reached in the primary segment.

  • End of Segment

    Playback of the currently playing segment ends at the end of the segment, regardless of whether it is set to loop. Playback of the segment as a secondary segment or transition destination begins as the end of the primary segment is reached.

  • End of Segment Queue

    Playback of the currently playing segment ends at the end of the segment cue. Playback of the segment as a secondary segment or transition destination begins as the end of the primary segment is reached.

Rather than force a segment to wait until a specific boundary is reached before it begins as a secondary segment a transition, you can use one of the following options in the Boundary Options drop-down list to let the segment start sooner. The segment can use one of the options below to align itself to the rhythm of the current segment. You can make the segment do this by cuing its start point to a rhythmic boundary that has already passed. The rhythm in the cued segment is thus aligned with that in the current segment, and the new segment can start playing immediately.

  • Align to Beat

    Playback of the segment as a secondary segment or transition destination begins immediately, but aligned with a beat in the current segment.

  • Align to Barline

    Playback of the segment as a secondary segment or transition destination begins immediately, but aligned with a barline in the current segment.

  • Align to Segment

    Playback of the segment as a secondary segment or transition destination begins immediately, but aligned with the beginning of the current segment.

The above three options enable additional choices in the Align Options area of the window. these provide additional settings for when a segment begins when Enter Switchpoints are present. See Align Options.


Align Options

The Segment Properties Boundary tab, Secondary Segment Audition Options, and Segment/Motif Trigger Properties window of a marker in a Segment Trigger track, and the Transition Options window all include a variety of Align Options, as shown in the following figure.

The Align Options are enabled when you choose Align to Beat, Align to Measure, or Align to Segment in the Boundary Options drop-down list. See Performance Boundary Options.

Using Align to Beat, Align to Measure, or Align to Segment causes a segment to begin playing as a secondary segment or as a transition destination at the soonest possible time after all alignment conditions are met. When you combine these settings with the Align Options, you can more thoroughly control this behavior.

The first condition is that an Enter Switchpoint must be found in the segment that is to begin playing. If no switchpoint is found, then the segment begins according to one of the following settings:

• any time

The segment begins at the first possible moment that all align conditions are met.

• on any grid

The segment begins at the first grid after all align conditions are met.

• on any beat

The segment begins at the first beat after all align conditions are met.

• on any barline

The segment begins at the first barline after all align conditions are met.


Timing Options

If the segment is played as a secondary segment, there are two additional options in the Performance Boundary setting that can affect how quickly a segment will begin or stop playing:

  • Quick Response

    Music may drop out for a short time if there are any conflicts among the instrument patch settings in the components being played.

  • After Prepare Time

    The secondary segment plays about a second later than expected, but still on the chosen boundary. This ensures that the music transition will be seamless.

When you play a segment as a secondary segment, you can temporarily override all performance boundary settings for the segment by opening the Secondary Segment Audition Options in the Secondary Transport controls. You can adjust settings in this window to experiment with other Start Boundary settings when the segment is a secondary segment, without altering any of the segment's original performance boundary settings. Options for Quick Response and After Prepare Time are not included in the Secondary Segment Start window.


Timeline in a Segment

See Timeline.


Segment Time Signatures

By default, the time signature of a segment is 4/4. The time signature is indicated by the number of beats in each measure and is represented by blue lines in the timeline. The 4/4 default time signature remains active until you perform one of the following:

  • Insert one or more styles in the Style track of the segment. If the segment does not contain a Style track, you must first add one. For more information, see Adding New Tracks.
  • Insert one or more time signatures in the Time Signature track of the segment. If the segment does not contain a Time Signature track you must first add one. For more information, see Adding New Tracks.

If a segment contains a Style track, then the time signatures for the segment are determined by the styles you insert in the track. The default 4/4 time signature of the segment is then ignored. With each style you insert in the Style track, the time signature of that style is automatically inserted in the Time Signature track of the segment. Because you can insert a maximum of one style in each measure of a segment, the Time Signature track can display in each measure no more than one time signature that is drawn from a style.

If the segment does not already contain a Time Signature track, you can add one so the time signature is displayed. In any segment that contains a Style track, the Time Signature track is set as read-only so you cannot edit time signatures that are automatically placed there with the styles. Nor can you add new time signatures without inserting a style.

If a segment does not contain a Style track, then the Time Signature track can be fully edited and you can enter or edit any time signature in the Time Signature track. In this case, you can insert time signatures using the mouse, though no more than one time signature per measure can be entered.

All time signatures used in a segment include a grid setting to help you more accurately position the cursor and insert notes. The grid division is not displayed in the timeline, but it is shown in the Sequence Editor window of a segment. For more information, see Segment Grid Divisions.

To enter a segment time signature in the Time Signature track

  1. If necessary, add a Time Signature track to the segment.
  2. In the Time Signature track, right-click the first beat of the first measure.
  3. Click Insert. The Time Signature Properties window is displayed.
  4. Click the Time Signature button. The Change Time Signature window is displayed.
  5. In the Beats Per Measure box, enter a numerator (for the number of beat in each measure) between 1 and 100.
  6. In the Beat box, choose a denominator (for the value of each beat) from the drop-down list with possible values of 1, 2, 4, 8, 16, and 32.
  7. In the Grid Division box, choose a minimum note value for the segment to use from the drop-down list. See Segment Grid Divisions.
  8. Click OK, and close the Time Signature Properties window.

You can also insert multiple styles in the Style track, though no more than one style per measure. The time signature of each style becomes active beginning with the measure where the style is placed. The timeline adjusts to the time signature with the placement of each style, so each measure has the same number of beats as the style that is active for that measure. For information about adjusting the time signature of a style, see Setting a Style Time Signature and Grid.


Segment Grid Divisions

The timeline in a segment does not show any grid division for subdividing the individual beats. However, grid divisions are shown in the Sequence track of the Segment Designer to help you more accurately position the cursor and place notes. See Sequence Editor.

For all other tracks in a segment, any musical elements you insert (for example, bands inserted in the Band track) must be positioned on the beats, and the grid division cannot be used. Some elements you insert in a segment (for example, styles inserted in the Style track) can only be positioned on the first beat of a measure. Thus, a grid division would not be used for most tracks of the Segment Designer, and is not included in the segment timeline.

By default, the segment timeline uses a sixteenth note grid division, or four divisions per beat. If you insert a style in the segment, the grid division of the style is automatically used in the segment, beginning at the measure where you place the style. For information about setting the time signature and grid for a style, see Setting a Style Time Signature and Grid.

When you enter a time signature in the Time Signature track of a segment, you can choose a grid division in the Change Time Signature window that applies to the entire segment. See Segment Time Signatures. The Grid field in the Change Time Signature window controls the number of divisions for each quarter note value that is used in the segment and displayed in the Sequence track, and can impact several editing functions. For any time signatures with a beat value that is something other than 4, the grid values are displayed in a range from 1 to 24 parts per quarter note. If the beat value is 4, then several additional grid value choices are added to the list (including triplet divisions at various levels).

Note You cannot enter or edit time signatures in the Time Signature track if the segment contains a Style track. See Segment Time Signatures.


Segment Tempos

By default, the tempo used in a segment is 120 beats per minute (bpm). This default tempo is not displayed anywhere in a segment until you add a Tempo track to the segment. If a Tempo track exists in the segment, the tempo of the segment appears in the Tempo track and also in the Tempo box.

You can insert any tempos you want in the Tempo track. The first tempo in the Tempo track is considered the primary tempo for the segment and should be inserted on beat 1 of measure 1. The Tempo track can contain any number of tempo markings. You can place a tempo marking on any measure and beat, and on any tick within a beat. As a segment plays, and the cursor moves into the region of a new tempo, the Tempo box changes to show the currently active tempo marking. For information, the tempos shown in the Tempo track of a segment are typically drawn from the styles or sequences contained in the segment. See Style Track and Sequence Track.

When you insert a style into a segment, a Tempo track is added to the segment (if one does not exist), and the tempo of the style is inserted into the Tempo track. The tempo is positioned in the same measure as the style. Similarly, whenever you import a MIDI file as a segment, the new segment of MIDI data includes a Tempo track and the original tempo of the MIDI file is placed in the Tempo track.

If the segment contains multiple styles, the tempos of all the styles are placed in the Tempo track at the corresponding measure where each style becomes active. As the cursor moves during playback into the region of a style, the Tempo box value is updated. The current tempo is then displayed in the Tempo box until the next tempo is reached in the segment.

Note The position of a tempo marking in a segment might fall to the left of the current position of the cursor (for example, in a previous measure). Thus, the Tempo box actually reflects the tempo marking that is to the immediate left of the point where the cursor is located.

A segment must have only one Tempo track. For variety, you can insert multiple tracks of styles, sequences, and other components in a segment and organize them into as many as 32 different groups of tracks. However, the Tempo track belongs to all the track groups. For more information, see Track Groups.

The tempos in a segment are not necessarily tied to the occurrences of style or sequences in the segment. You can insert as many additional tempo markings as you want into the Tempo track of a segment (as many as one per beat), or drag any existing tempo marking to another beat or measure. In addition, you can right-click the tempo marking in the Tempos track and click Properties, or select the tempo marking and press F11 to open a Tempo Properties window, and edit the position of the tempo marking. See Editing Segment Tempos.

You can add a new Tempo track to a segment at any time, if one does not exist. However, a segment can have only one Tempo track. See Adding New Tracks. Each track in a segment has a Properties window you can open by right-clicking the track and clicking Properties in the shortcut menu. For information, see Properties Windows for Segment Tracks.


Editing Segment Tempos

You can select any tempo marking in the Tempos track of a segment, and adjust the following settings:

  • The tempo of the marking
  • The measure, beat, grid or tick on which the marking is placed

You can use the Tempo box or the Tempo Properties window to adjust the settings of a tempo.

To change a tempo setting using the tempo box

  1. In the Tempo track, click a tempo marking to select it.
  2. In the Tempo box, increase or decrease the tempo using the UP ARROW and DOWN ARROW buttons, or enter a tempo by typing a new value.

To change a tempo setting or its position using the Properties window

  1. In the Tempo track, right-click the tempo marking and click Properties (or select the tempo marking and press F11) to open a Tempo Properties window.
  2. In the Tempo box , increase or decrease the tempo using the UP ARROW and DOWN ARROW buttons, or enter a tempo by typing a new value.
  3. In the Measure box, enter a measure for the tempo to begin.
  4. In the Beat box, enter a beat within the measure for the tempo to begin.
  5. In the Tick box, enter a tick within the beat for the tempo to begin.


Editing Objects in Segment Tracks

After you have placed chords, styles, grooves, embellishments, tempos, chordmaps, signposts, mute commands, and bands in a segment, you can select them and change them in the following ways:

  • Select and then cut, copy, or paste an individual object.
  • Select and then delete an individual object.
  • Select and then drag an individual object.
  • Select and open a Properties window for an individual object.
  • Select and then cut, copy, or paste multiple objects.
  • Select and then delete multiple objects.
  • Select and then drag multiple objects (except chords, which can only be dragged individually).

As you move from one object to another, you can leave the Properties window displayed. The window contents change to show the properties of the object you select.

You can also select and edit lyrics in much the same way as you edit objects in a segment. However, an individual word in a string of lyrics cannot be edited; only a complete string of lyrics can be selected and edited.

For information about editing objects, see Editing Individual Objects in Segment Tracks and Editing Multiple Objects in Segment Tracks.


Editing Individual Objects in Segment Tracks

Use the following procedures to change an object's properties and to delete or copy an object.

To change an object's properties

  1. Right-click any groove, embellishment or signpost.
  2. Click Properties.
  3. In the Properties window, click the desired signpost, groove or embellishment settings.

To delete an object

  1. Right-click any groove, embellishment or signpost.
  2. Click Delete.

To copy and paste an object to another measure

  1. Right-click any groove, embellishment or signpost.
  2. Click Copy.
  3. Right-click any measure (including a measure already containing objects) in the appropriate strip for the type of object you have copied to the Clipboard.
  4. In the shortcut menu, click Paste. The new object is inserted in the measure.


Editing Multiple Objects in Segment Tracks

You can select multiple objects and then copy, paste, or delete them using the same commands described in Editing Individual Objects in Segment Tracks. Objects that are copied and pasted will replace any objects already present in the target measures.

You can select large regions of material in one or more strips using the timeline in combination with the rectangular selection buttons at the left edge of any strip. For more information, see Using the Timeline and Selection Buttons to Cut and Paste Segment Material.

To select multiple objects for copying or deleting

  1. Click any object.
  2. Press and hold down the SHIFT key.
  3. Click any other object in the same strip. All objects between the two objects are selected.

To select all objects in a strip for copying or deleting

  • Click the rectangular selection button at the left of the desired strip and on the Edit menu, click Select All.
    Or, right-click an object and then click Select All.

To paste multiple selected objects

  1. Click any measure. This can be a measure already containing objects.
  2. On the Edit menu, click Paste. Objects that are copied and pasted will replace any objects already present in the target measures.


Using the Timeline and Selection Buttons to Cut and Paste Segment Material

You can use the timeline in combination with the rectangular selection buttons at the left edge of the Segment window to highlight a large region of a segment. You can then apply the Cut, Copy, and Paste commands to the region. The timeline shows the beats and measures in a segment, and dragging the mouse cursor across it highlights a region of the segment.

Each track in a segment has a selection button. The selection buttons you choose set which tracks are included in a selected region. After highlighting a section of the timeline, you can click the rectangular selection button next to any track. All material in the track is selected over the measures and beats highlighted in the timeline.

You can also click the selection button of a track and then drag the mouse cursor across a section of the timeline to highlight it. The section of the timeline you highlight controls which part of the track is selected.

While the timeline is highlighted, you can click a track's selection button to add it to the selected group of tracks, or click it again to remove it from the selection. While the timeline is highlighted, you can also extend or shorten the selected region by dragging the right end of the region.

Dragging the mouse cursor across the timeline selects the music in one-beat increments. You can right-click the timeline to click the Snap To command and then choose a different increment for selection.

You can paste the contents of the Clipboard into a track by clicking the selection button of the track to indicate that the track is where the material should be inserted. The Paste command works only if the material in the Clipboard is appropriate to the track you are pasting into.

For information about selection buttons, see Selection Buttons.


Importing a MIDI File as a Segment

You can import a MIDI sequence in a segment using the Import File into Project command on the File menu. After the MIDI data has been imported as a new segment file, you can double-click the new segment in the project tree to open it in the Segment Designer.

A segment of imported MIDI data includes tracks containing the tempo, the time signature, the instrument sound, volume and pan assignments, and all MIDI note and controller information contained in the original MIDI file. For more information about the contents of a segment of imported MIDI data, see Imported MIDI Segment Structure.

After a MIDI file is imported in a segment, you can modify the segment and then save it to playback in a linear, note-for-note manner. You can add more musical elements and edit the segment in the following ways:

  • Display and edit the notes of the MIDI sequence using Sequence Editor.
  • Use the Cut, Copy, and Paste commands to move large sections of MIDI data.
  • Insert one or more new tempo markings.
  • Loop and repeat the MIDI data.
  • Substitute different bands to play the MIDI file.
  • Edit the band originally imported with the MIDI data.
  • Set start and stop points for playback.
  • Mute sections of MIDI data beat-by-beat and for each PChannel.
  • Reassign MIDI channels to any PChannel.

For more information about editing and modifying a segment containing imported MIDI data, see Entering Data in a Segment.

To import a MIDI sequence

  1. On the File menu, click Import File into Project.
    or
    In the project tree, right-click a project's icon to display a shortcut menu and then click Import.
  2. On the secondary menu that is displayed, click MIDI File as Segment.
  3. In the File of type box, click MIDI Files (*.mid).
  4. Locate a MIDI file on your computer and select it.
  5. Click OK. The MIDI file is imported into DirectMusic Producer and is added as a segment (*.sgp) file in the project tree.


Imported MIDI Segment Structure

Data imported from a MIDI file is placed in one or more Sequence tracks of a segment. A Sequence track in the segment is used for each instrument channel in the imported file, and each Sequence track is assigned its own PChannel. Standard MIDI files are limited to channels 1 through 16. The PChannel number used in the segment matches the channel number in the original MIDI file.

The following figure shows a segment that was created by importing a MIDI file containing six instrument tracks.

When you import a MIDI file, all information in the MIDI file is transferred to a newly created segment. For example, the preceding figure shows a segment containing the following imported data from the DemoMIDI file:

  • The key signature is C (identified in the new segment as zero sharps and flats).
  • The tempo is 87 beats per minute.
  • The first track in the MIDI file is track 1. It is renamed "Sequence" in the new segment and is assigned to PChannel 1.
  • The Strings track (Patch 50) is track 2 and is assigned to PChannel 2.
  • The Acoustic Guitar track (Patch 24) is track 3 and is assigned to PChannel 3.
  • The Acoustic Grand Piano track (Patch 4) is track 4 and is assigned to PChannel 4.
  • The Fretless Bass track (Patch 35) is track 5 and is assigned to PChannel 5.
  • The Drum Kit is track 10 and is assigned to PChannel 10.
  • The time signature is 4/4.
  • The instrument sound assignments are collected in a new band file called Band 1.
  • The volume and pan settings of each track of the imported file are placed in Continuous Controller tracks within the sequence tracks. These are visible only when a sequence track is maximized.

Note Regardless of the arrangement of channels in a MIDI file, DirectMusic Producer imports channels in ascending order 1-16. For information about changing the order in which PChannels appear in the segment, see Imported PChannels.

When you import a MIDI file as a segment or a style pattern, the unified volume and pan mixing buttons in the band are clustered at the lower left edge of the Band editing window, showing a volume setting of zero and a pan setting of hard left. The actual volume and pan settings imported with the MIDI file are contained in the Continuous Controller tracks. See Band Conflicts with Continuous Controllers.

Note When you import a MIDI file as a segment, the initial band is inserted using a negative offset or –1 tick so instrument program changes will occur just prior to the beginning of the segment. See Inserting a Band at a Negative Offset.

A basic beginning chord of 1 C M is inserted automatically in the Chord track of a segment when you import a MIDI file. This chord does not affect the MIDI data, and changing the chord does not transpose MIDI data into a different key. For more information, see Chord Track.

All tracks in the newly created segment are initially assigned to a track group. For more information, see Track Groups.

In DirectMusic Producer, PChannel 10 is reserved for drums. If a MIDI file contains an instrument other than drums in track 10, the track is assigned to another available PChannel.

You can edit a segment of imported MIDI data in two ways:

  • Adjusting the playback behavior of the segment using tempo changes, repeats, boundaries, and other parameters available in the Segment Designer.
  • Opening the MIDI sequences using the Sequence Editor to change the actual content of MIDI sequences in the segment.

For information about editing the playback behavior of a segment and editing the content of MIDI sequences in a segment, see:

  • Entering Data in a Segment
  • Sequence Editor


Imported PChannels

Standard MIDI files are limited to channels 1 though 16, and these are assigned to PChannels 1 through 16 when you import the MIDI data. Tracks in segments and patterns are usually displayed in ascending order according to their PChannel numbers. If you want to change the position of a track, you must assign the track a different PChannel number. Thus, when you import a MIDI file, the tracks or parts are displayed in ascending order regardless of how they are ordered in the original application used to create the file.

Each time you import a MIDI file, there is a potential of creating instrument assignment conflicts on PChannels 1-16. As a precaution, avoid using PChannels 1-16 in a project into which you will import a MIDI file. Do this BEFORE importing a MIDI file.

If you choose not to avoid using PChannels 1-16, then you can reassign the tracks of imported MIDI data to different PChannels after you import a MIDI file. This requires special care, so that you do not lose instrument settings or create conflicts with other bands in the project. Since a band that is imported with a MIDI file can contain up to 16 PChannels, it is easiest to choose a set of 16 unused PChannels that you reserve for reassigning all at once.

Reassigning PChannels in an imported MIDI file requires three steps:

  1. In the segment of imported MIDI data, or in the style into which MIDI file is imported, double-click the imported band file to open it in Band Editor. In a segment, the imported band is called Band1, and is in the Bands track. In a style, the band is in the Bands list, and has the same name as the imported pattern.
  2. Double-click each PChannel in the band to open its Performance Channel Properties window, and re-assign it an unused PChannel. Except for the PChannel name, all instrument properties are retained.
  3. In the segment, right-click each sequence track to open its Sequence Track Properties, or in the pattern, right-click each part to open its Part Properties. Reassign each track or part to new PChannel numbers, matching each track with the appropriate PChannel used in the band.

NOTE Volume and Pan settings are not activated in the Properties window of a PChannel in an imported band. The volume of a PChannel is displayed as zero, and the pan is displayed as L63 (hard left). Volume and pan settings are inserted as a Continuous Controller curve for each track or part. These settings are not affected when you change the PChannel of a track or part. For more information, see Band Conflicts with Continuous Controllers.

Reassigning PChannels for a MIDI file is especially difficult if you are importing multiple MIDI files that are meant to segue from one to the next, because it is recommended that you do not use overlapping groups of PChannel groups if there are going to be different instruments playing.

If, instead of importing a MIDI file as a segment, you copy and paste MIDI data from a separate sequencer application into the sequence track of a Producer segment, data is pasted in top-down order, placing the highest MIDI channel at the top of the Producer window. For example, if you select all at once and copy channels 1 through 10 in the editing window of a MIDI sequencer program, and then paste them all at once into the Sequence track of Producer, the data from MIDI channel 10 would actually get pasted to PChannel 1, the data from MIDI channel 2 gets pasted to PChannel 2, and so on.

Using Multiple Tracks on a Single MIDI Channel

Most MIDI applications allow you to assign multiple tracks to a channel. For example, you might have four separate violin tracks playing on a single MIDI channel. In this way you can create MIDI files with far more than 16 instrument parts, by combining similar tracks on a single MIDI channel. When you import a MIDI file into DirectMusic Producer, the tracks are kept separate, depending on the type of MIDI file you import.

  • Type 1 MIDI files

    Regardless of MIDI channel assignments, each track is placed in a separate part when imported into DirectMusic Producer.

  • Type 0 MIDI files

    All tracks on a MIDI channel are placed in a single part when imported into DirectMusic Producer.


Primary Segments

As you design and edit components in Microsoft® DirectMusic® Producer, you can open and edit multiple components in the Editing pane. DirectMusic Producer is capable of playing up to 100 components simultaneously, so the music you create in DirectMusic Producer can contain many separate components that are layered on top of one another during playback.

When you want to play multiple components simultaneously, you choose one to be the primary component by selecting it in the Transport list. The name of the primary component appears in the Transport list at all times. You can also choose a component to be primary by selecting the its internal icon in the Project Tree, or making the component active in the Editing Window. For more information about selecting components for playback, see Transport List.

Note For most purposes, the primary and secondary components you play in DirectMusic Producer are referred to as segments, though other file types can be selected as primary or secondary. When you deliver DirectMusic Producer run-time files to a developer for use in a computer game, Web site, or other multimedia application, most files are used to create segments which are then played using commands to play a segment. For this reason, the remainder of this discussion refers to primary and secondary components as primary and secondary segments. See Using Files in the Developer Environment and DirectMusic Use of Segments.

Choosing a segment as the primary segment is not a permanent setting, and you can choose a different segment in the Transport list at any time. All other files that you play simultaneously with the primary segment are considered secondary segments. You can use any segment as a primary or secondary segment any time you like. For information about playing secondary segments, see Secondary Segments.

Only one segment at a time can be primary during playback. Secondary segments can play without interrupting the playback of the primary. They layer on top of the primary segments during playback. However, if you play a different segment as the primary, then playback of the first primary segment is interrupted, and playback transitions to the second primary segment.

The behavior of primary and secondary segments is the same when a developer uses your files in a software application. The DirectMusic playback components are capable of playing any number of segments simultaneously, so a developer can combine multiple events and music elements with as much layering as desired.

Note Since only one segment at a time can be primary, playback of a primary segment that contains other segments may be interrupted unexpectedly. For example, when you place an object for a primary segment in the Segment Trigger track of another primary segment, playback transitions to the new primary when it is reached. Similarly, if the Script track in a primary segment contains a routine that calls another primary segment, playback transitions to the new primary when the script executes. See Multiple Primary Segments.

As you design a component, you can keep in mind whether it will be used as a primary or a secondary segment either during playback in DirectMusic Producer, or when it is used by a software developer. For example, a primary segment might be the main body of a musical piece that will play continuously. You can use any number of secondary segments as enhancements to the sound of the primary segment. Secondary segments generally start and stop while the primary segment is playing. Secondary segments can be any length, but they are typically short segments of only a few measures, or a motif that is only a measure or less in length. When multiple components play, the Primary Segment controls the tempo of all secondary segments. Otherwise, the playback of the primary segment does not affect or control playback of secondary segments.

Because a PChannel can only use one instrument sound at a given moment during playback, the bands in primary and secondary segments may conflict with each other. For information, see Band Conflicts.

For more information about how primary segments and secondary segments interact during playback, see Secondary Segments.


Multiple Primary Segments

Only one segment at a time can be primary, so playback of a primary segment that contains other segments may be interrupted unexpectedly. For example, when you place a trigger for a primary segment in the Segment Trigger track of another primary segment, playback transitions to the new primary when it is reached. Thus, a transition occurs from the source segment, which contain the Segment Trigger track, to a destination segment. Playback of the source segment is halted, and all remaining measures in the source segment are ignored. For more information about playback transitions from one primary segment to another, see Transitions.

Similarly, if the Script track in a primary segment contains a routine that calls another primary segment, then playback transitions to the new primary when the script executes. Playback of the source segment containing the Script track is halted, and all remaining measures in the source segment are ignored. For example, if a primary segment contains a script using the Segment.Play method without including the IsSecondary variable, playback transitions to the segment named in the script as a primary segment.

Note Transitions are affected by performance boundary settings of the source and destination segments. For information, see Boundaries.

If you do not want playback of the source segment to stop, you can set the later segment to be a secondary segment as follows:

  • When using the Secondary Segment Trigger track, choose the Secondary option in the Segment/Motif Trigger Properties window.
  • When using the Segment.Play method in a script, include the IsSecondary variable.

If you want playback to transition back to the first primary segment after the later segment is finished, you can use one of the following methods:

  • In the later segment, insert a trigger in the Secondary Segment Trigger track. Set the trigger you insert to play the first primary segment. This works both if the later segment is started in a script or by a primary segment.
  • In the script that calls the later segment, insert a routine that calls the first segment, such as the Segment.Play method with the AtFinish variable.


Secondary Segments

As you are designing and editing segments in Microsoft® DirectMusic® Producer, you can open and edit multiple segments in the Editing Window. DirectMusic Producer is capable of playing up to 100 segments simultaneously, so the music you create in DirectMusic Producer can contain many separate segments that are layered on top of one another during playback.

The Microsoft® DirectMusic® playback components are capable of playing any number of segment files simultaneously. In this way, a developer of an application or Web page can combine multiple events and music elements with as much layering as desired. These segments can be played at any time, for any period, in any order, and simultaneously.

You can designate a segment as primary and designate all other segments that play in layers over it as secondary. A software developer can do this as well. You can create your DirectMusic Producer files with this in mind. For example, a primary segment might be the main body of a musical piece that will play continuously. You can create any number of secondary segments that are added as enhancements to the sound of the primary segment. Secondary segments can be any length, but they are typically short segments of only a few measures, or a motif that is only a measure or less in length.

For example, the primary segment may feature rhythm section parts, while the secondary segments contain instrumental solos that can be interactively cued over the rhythm section. Or, the primary segment can contain ambient sounds, while the secondary segments contain sound effects that can be interactively cued.

Because you can assign a Performance Boundary to a segment in its Properties window, you can coordinate the entrance of secondary segments so they coordinate rhythmically and harmonically with the primary segment. For more information, see Segment Properties.

You can experiment with using various DirectMusic Producer components and subcomponents as primary and secondary segments. Do this by selecting them in the Transport controls and the Secondary Transport controls. In DirectMusic Producer, you can combine the playback of as many as 99 secondary segments with that of a primary component.

Although several different types of components can be used as the primary component (in the Transport list), only a segment or motif can be used as a secondary component. For more information, see Secondary Segment Toolbar.

When you create run-time files to deliver to a software developer, a segment and a motif can be saved as run-time segment (.sgt) files. Only these two types of files (segments and motifs) can be delivered to a software developer for use as a secondary component without requiring additional changes. For more information, see Using Files in the Developer Environment.

You can also define a secondary segment as a controlling secondary segment. Then, instead of being layered on top, the tracks of the controlling segment will affect and essentially replace the tracks of the primary segment. For more information, see Controlling Segments.

As you create components in DirectMusic Producer, you can use the Secondary Transport controls to play segments or motifs in combination with the primary component, which you select in the Transport list.

A secondary segment typically includes one or more bands in the Bands track. You can place as many bands as you want in a secondary segment. However, depending on the bands you use, playing a secondary segment with a primary segment may cause unexpected conflicts in the instrument sounds and settings used during playback. In fact, any time you play multiple segments at the same time, there is a risk of conflicting band settings. See Band Conflicts.

The PChannels you use in a project can use one instrument sound and one set of PChannel properties at a time. As a band is reached during playback, its PChannel settings override all previous settings, regardless of whether the band is in a primary or a secondary segment. Thus, when you play multiple segments, the settings for instrument sound, volume, pan, octave, transposition, and priority may change with every new band that is reached.


Controlling Segments

Secondary segments usually are designed to be layered on top of the primary segment, and playback of the primary segment continues uninterrupted and unaffected by the secondary segment. An exception to this is a band in the primary segment, which may be affected by bands in another segment. See Band Conflicts).

You can designate a secondary segment as a controlling secondary segment so that elements of the secondary segment change the behavior of the primary segment. When you play a primary segment and a controlling secondary segment simultaneously, some tracks in the controlling segment affect and essentially replace the corresponding tracks of the primary segment. When playback of the secondary segment stops, playback of the primary segment reverts to its original state.

For example, a controlling secondary segment might contain a Chord track and a Groove track. If you play a primary segment and then start playback of the controlling segment while the primary segment is playing, the secondary segment's Chord and Groove tracks temporarily replace the chords and the grooves of the primary segment. When playback of the secondary segment stops, playback of the primary segment reverts to using information in its own Chord and Groove tracks.

A controlling segment may affect the playback behavior of all other segments that are playing simultaneously, including the primary segment and all other secondary segments. The following tracks in a controlling secondary segment, called controlling tracks, override the contents of tracks in other segments:

  • Chord track

    Chords in a controlling secondary segment are used for playback of style patterns and pattern tracks in the primary segment and all other segments that are played at the same time. When playback of the controlling segment stops, playback of the primary segment reverts to using the chords in its own Chord track.

  • Groove track

    Groove levels in a controlling secondary segment are used for playback of style patterns in the primary segment and all other segments that are played at the same time. When playback of the controlling segment stops, playback of the primary segment reverts to using groove levels in its own Groove track. However, if the time signatures of the primary and secondary segment are not equal, or if the secondary segment began playing on a boundary other than a barline, the groove levels in the primary segment may no longer align with barlines.

  • Mute track

    PChannel mute settings in a controlling secondary segment are used for playback of the primary segment and all other segments that play at the same time. When playback of the controlling segment stops, playback of the primary segment reverts to using mute settings in its own Mute track.

  • Tempo track

    Tempos in a controlling secondary segment are used for playback of the primary segment and all other segments that are played at the same time. When playback of the controlling segment stops, playback of the primary segment reverts to using tempos in its own Tempo track.

Note Though the Band track in a secondary segment does not specifically override the Band track in a primary segment, all playback is affected by the band that is most recently reached in any segment that is playing. When you play multiple segments, you can use the Band track in any segment as a controlling track. For more information, see Band Conflicts.


Non Controlling Tracks

The following tracks in a controlling secondary segment do not affect the playback of a primary segment in any special way. These tracks behave as they do when any secondary segment is played simultaneously with a primary segment.

  • Band track

    The contents of all bands tracks in all segments take effect as they are reached during playback.

  • Chordmap track

    The choice of chordmap for a creating variable chord progressions in a segment does not affect any other segment.

  • Lyrics Notification track

    Lyrics in primary and secondary segments can play simultaneously, and begin as they are reached during playback. All lyrics appear in the message window in the order they occur during playback.

  • Pattern track

    Patterns in primary and secondary segments can play simultaneously, and begin as they are reached during playback.

  • Script track

    Scripts in primary and secondary segments can run simultaneously, and begin as they are reached during playback.

  • Segment Trigger track

    Segments in the Segment Trigger tracks of primary and secondary segments can play simultaneously, and begin as they are reached during playback.

  • Sequence track

    Sequences in primary and secondary segments can play simultaneously, and begin as they are reached during playback.

  • Signpost track

    The placement of signposts in a segment that uses chordmaps does not affect any other segment.

  • Style track

    Styles in primary and secondary segments can play simultaneously, and begin as they are reached during playback.

  • Time Signature track

    Playback of every segment is always controlled by its own time signature.

You can experiment with using a segment as a secondary controlling segment, by turning on an option in the Secondary Segment Audition Options window. Experimenting with settings in this window is referred to as "auditioning" a controlling secondary segment. The settings in this window are temporary, and are not saved as part of the properties of a segment.

To audition a segment as a controlling secondary segment

  1. Right-click the Play button of any Secondary Transport control and select the Controlling Segment option.
  2. Start the primary segment by clicking the Play From Start button of the main transport.
  3. Click the Play From Start button in the Secondary Transport control. The tracks of the controlling secondary segment will replace the related tracks of the primary segment.

If you want to more permanently use a secondary segment as a controlling segment, you can insert the segment into the Segment Trigger track of a primary segment, choosing secondary segment and controlling segment options. See Segment Trigger Track.


Sequence Editor

Each sequence of MIDI data in a segment has its own notes and playback data that are contained in a Sequence track. The Segment Designer includes a Sequence Editor that enables you to display and edit the entire contents of any Sequence track. This includes all note information and data for continuous MIDI controllers, such as pitch bend and filters. You can also use the Sequence editor to enter new MIDI notes in a Sequence track by recording from a MIDI input device, or clicking in the editing region with the mouse to enter individual notes.

Initially, all Sequence tracks are displayed in a minimized version in which the notes are represented graphically as thin colored lines. The following figure shows four separate Sequence tracks in minimized form.

You can double-click any Sequence track in a segment or click the Maximize button at the right end of any Sequence track to open it with the Sequence Editor. An editing window similar to the following is opened for the selected Sequence track.

Maximizing or opening a Sequence track displays it with the Sequence Editor. By default, the contents of the track are initially displayed using piano roll notation, as shown in the preceding figure. You can view and edit a Sequence track using piano roll notation, or a special hybrid notation that uses a combination of graphic display and conventional notation. In both piano roll and hybrid notation, the notes in a MIDI sequence are represented graphically as rectangles positioned on a grid that indicate measures and beats. The following figure shows an imported MIDI file in the Sequence Editor using piano roll notation, followed by the same MIDI file displayed in hybrid notation.

The preceding figure shows how the amount of vertical space needed to display the note contents of a Sequence track is much less when using hybrid notation. Because some pitches can be represented by using an accidental, about half the vertical space is needed to display the same score in hybrid notation than in piano roll notation.

At any time while a Sequence track is opened and displayed (maximized) in the Sequence Editor, you can switch between the two types of notation.

To switch between piano roll notation and hybrid notation

  • Click anywhere in a maximized Sequence track and press the H key on the computer keyboard to toggle between the two notation options.
  • or
  • Right-click anywhere in a maximized Sequence track to open the shortcut menu shown in the following illustration. Click Views, and then click Piano Roll or Hybrid Notation.

The following topics provide additional information about displaying, entering, and editing notes in the Sequence Editor:

  • Piano Roll Notation in the Sequence Editor
  • Hybrid Notation in the Sequence Editor
  • Entering and Editing Notes in the Sequence Editor


Piano Roll Notation in the Sequence Editor

The Sequence Editor provides individual editing windows for each Sequence track in a segment. You can double-click any Sequence track to open (or maximize) it, displaying its contents. When opened, a Sequence track displays an editing region containing the notes of the sequence. It also contains a pitch guide along the left side of the editing region in the form of a keyboard. Each pitch in the keyboard corresponds to the notes directly to the right of it. By default, the pitch guide remains visible even when you scroll up or down, or to the left or right, in the editing region to display other notes.

By default, maximizing or opening a Sequence track initially displays the contents of the track using piano roll notation. The following figure shows the Sequence Editor with a Sequence track displayed in piano roll notation.

When viewing the contents of a sequence in the Sequence Editor, you have the choice of viewing the sequence using piano roll notation or hybrid notation.

To switch between piano roll notation and hybrid notation

  • Click anywhere in the maximized Sequence track and press the H key on the computer keyboard to toggle between the two notation options.
  • or
  • Right-click anywhere in the maximized Sequence track. Click Views, and then click Piano Roll or Hybrid Notation.

In both piano roll and hybrid notation, the notes of a sequence are represented as rectangles placed on a grid of measures and beats. The editing region is aligned horizontally with the timeline, with colored vertical lines that indicate the following:

  • Heavy, black vertical lines represent measure barlines.
  • Thin, blue vertical lines represent beats.
  • Thin, gray vertical lines represent beat subdivisions or grid divisions. The grid for a sequence is set in the Time Signature Properties window. For more information, see Segment Time Signatures.

Horizontal placement of note rectangles represents the parameter of time. The left end of the note rectangle represents the start time of the note, the right end represents the end time, and the length of the rectangle represents the length of the note. The height of the note represents the relative velocity of the note.

The piano roll window is aligned vertically with a piano keyboard on the left to show which pitch a note has. Vertical placement of a note corresponds to the MIDI note designation on the keyboard located on the left side of the editing window. Each C is marked with the appropriate octave. For example, C 5 represents middle C, equal to MIDI note 60.

For information about pitches and MIDI numbers, see Pitch Names and MIDI Numbers.

For information about entering and editing notes in the Sequence Editor using piano roll notation, see Entering and Editing Notes in the Sequence Editor.

For information about displaying and editing notes using hybrid notation, see Hybrid Notation in the Sequence Editor.


Hybrid Notation in the Sequence Editor

When viewing the contents of a sequence in the Sequence Editor, you have the choice of viewing the sequence using piano roll notation or hybrid notation.

To switch between piano roll notation and hybrid notation

  • Click anywhere in an opened (maximized) Sequence track and press the H key on the computer keyboard to toggle between the two notation options.
  • or
  • Right-click anywhere in the maximized Sequence track. Click Views, and then click Piano Roll or Hybrid Notation.

Hybrid notation uses a combination of piano roll notation and standard music notation to represent music. The notes of a sequence are represented as rectangles, just as they are in piano roll notation, but a grand staff (combined treble and bass clefs) is used to show which pitch a note has. This makes it possible to fit the entire range of ten octaves in a compact vertical area and within a single window view so the information can be viewed without scrolling up or down. The following figure shows the Sequence Editor with a Sequence track displayed in hybrid notation.

Rectangular-shaped notes are positioned on the lines and spaces of the staff just as traditional note heads are in standard music notation. In addition, accidentals are used as modifiers for the rectangular notes on the staff just as they are in standard notation.

Each pitch position on the grand staff corresponds to a MIDI pitch, as in piano roll notation. For example, middle C is equal to MIDI note 60. For more information, see Pitch Names and MIDI Numbers.

Rectangular notes are placed on a grid of measures and beats, as in piano roll notation. The editing region is aligned horizontally with the timeline, with colored vertical lines indicating the following:

  • Heavy, black vertical lines represent measure barlines.
  • Thin, blue vertical lines represent beats.
  • Thin, gray vertical lines represent beat subdivisions or grid divisions. The grid for a sequence is set in the Time Signature Properties window. For more information, see Segment Time Signatures.

Horizontal placement of a note rectangle represents the parameter of time, just as it does in piano roll notation. The left end of the note rectangle represents the start time of the note, the right end represents the end time, and the length of the rectangle represents the length of the note. The overall height of the note represents the relative velocity of the note.

For information about entering and editing notes in the Sequence Editor using hybrid notation, see Entering and Editing Notes in the Sequence Editor.


Custom DLS and Percussion DLS in the Sequence Editor Pitch Guide

When you use a custom or a percussion DLS instrument in a Sequence track, the pitch guide that is shown when you view the track using piano roll notation will display the individual wave sounds assigned to each pitch. (Wave names are not shown when you view the track using hybrid notation.)

For example, the following figure shows a Sequence track that uses a custom DLS instrument. The DLS instrument has separate wave sounds, each assigned to a different range. The range assignment is reflected in the pitch guide so you can predict which wave is used for each note you enter in the editing region.

When using a percussion DLS, the pitch guide of the Sequence track shows the name of each wave sound in the DLS instrument. Typically, a percussion DLS has 128 separate wave regions, each containing a different wave. The name of each wave appears in the pitch guide so you can predict which wave is used for each note you enter in the editing region.

The region or pitch for which a wave sound is used is assigned in the DLS instrument. To change the wave that is used for a selected note, you must open the DLS instrument using the DLS Designer.


Entering and Editing Notes in the Sequence Editor

You can add new notes to a segment in four ways:

  • Open a Sequence track in the Sequence Editor and right-click the mouse in the track to insert individual notes. You can also hold down the CTRL key and click.
  • Open a Sequence track and enter notes using a MIDI input device in real time or step time.
  • Copy MIDI data from the Sequence track of another segment and paste it in a Sequence track of the segment you are editing.
  • Import a MIDI file as a new segment. If necessary, you can copy and paste imported MIDI data between segments and between Sequence tracks.

When entering notes using either the mouse or step-time recording, a default note length and velocity is used for each new note. The default length is equal to one beat and the default velocity is 100. When entering notes using real-time MIDI recording, the length and velocity are determined by how you play the notes on the input device.

After a note is entered, you can select and adjust its length, velocity, pitch, duration, start time, and end time, plus numerous other parameters for how the note behaves. You can also copy and paste the note, drag it to a new position, and place it in other Sequence tracks.

Note that entry and editing are handled in much the same way for both the Sequence Editor and the Pattern Editor. For complete information about note entry and editing in both editors, see Note Entry and Editing.


Band Editor

Just as you can arrange music for the particular instrumentation of a live ensemble, you can vary the sound of music you create in Microsoft® DirectMusic® Producer, depending on the band you use. In DirectMusic Producer, a band is a collection of digital instrument sound settings that define an ensemble of instruments, such as piano, guitar, bass, brass, and drums. You design a band so the instrument settings for a piece of music are collected in one file. After you design a band, you can use it to play numerous pieces, and you can insert it in a style or a segment so it is always available for playback.

A band can have as many as 999 distinct instruments with each assigned to one of 999 performance channels (PChannels). Similar to a MIDI channel used for MIDI playback, any sound can be assigned to a performance channel, whether it is a traditional MIDI sound or a downloadable sound (DLS).

The instrument sound you assign to a PChannel can be selected from three different sources:

  • The General MIDI DLS collection (GM.dls) of downloadable waveform sounds, provided with DirectMusic Producer.
  • A General MIDI sound set contained in a hardware MIDI sound device, such as a sound card or external MIDI keyboard.
  • Other DLS collections in the project tree, including custom DLS collections that you design.

For more information, see Playback Devices.

Because the GM.dls collection is provided to all users of Microsoft® Windows®, it is recommended that you design bands exclusively using the sounds in this collection. Doing so ensures that the same instrument sounds are used to play music you create. For more information, see DLS and DLS Collections.

Important The GM.dls collection is installed in your computer when you install the DirectMusic components, in the Windows/System32/Drivers folder.

The GM.dls collection uses the GM/GS® Sound Set, which is trademarked by the Roland Corporation and is the legal property of the Roland Corporation. It cannot be modified and must be redistributed in its entirety, without alteration. The component sounds and waveforms in the Roland GM.dls collection must not be used as source material to create other DLS sounds or collections. Please read the Legal Information regarding the use of the GM.dls. In addition, for any component you use, read copyright information contained in the Properties window of the file.

DirectMusic Producer gives you tremendous flexibility to define settings for each instrument so you can have bands that contrast greatly or vary only slightly. For more information, see Using Bands.


Using Bands

The instrument sounds in a band are typically designed to correspond to the instrumentation of a live music ensemble in a particular musical genre. For example, if the music to play is rock music, the band might contain guitar, drums, bass, wind instruments, strings, or whatever instrumentation is appropriate for the genre. You can use the bands that come with Microsoft® DirectMusic® Producer and modify them to suit your needs, or you can create your own bands.

A band can be stored in a project in three ways:

  • As a subcomponent in a style

    The band is located in the band folder of the style and is included in the Bands list in the Style Designer window. For more information, see Bands in Styles.

  • As part of a segment

    The band is located in the Band track of a segment. For more information, see Bands in Segments.

  • As a stand-alone component in the project

    The band is located on the first level of components in a project. For more information, see Bands in a Project as Stand-Alone Components.

When you create a style, or add a new band component to a project, DirectMusic Producer inserts a default band you can modify. When you create a segment, there is no band until you add a Band track and insert a band in the track. When you create a segment by importing a MIDI file as a segment, the instrument settings in the original MIDI file are collected as a band and inserted in the new segment of imported MIDI data.

Note Volume and pan settings for the instruments in a band are often contained in separate continuous controller tracks of a segment or a style. Changes you make in a band do not affect settings in these separate tracks. For more information, see Band Conflicts with Continuous Controllers.


Bands in Styles

You can insert one or more bands in a style. Placing multiple bands in a style makes it easy to try the musical content of the style using the different combinations of instruments in each band. The bands you add to a style can be new default bands that you modify, or they can be existing bands borrowed from other styles or other projects. For more information, see Adding an Existing Band to the Project Tree and Dragging Bands.

For example, you could create a folk rock style with one band that contains guitars, harmonica, and drums, and another band that contains piano, flute, and tambourine. Having multiple bands stored in a style enables you to arrange the rhythms, melodies, and patterns of the style so they take advantage of the special sound qualities or timbres of the instruments in the bands.

When you view a style using Style Designer, you can display its Bands list as shown in the following illustration.

The Bands list displays the bands in the same order as they appear in the Bands folder within the style, as it is shown in the project tree. For example, the Amadeus style in the illustration has five distinct bands: Default, Classical, Clockwork, Outer Space, and Twangs.

In each style, one band is designated as the default band. This band does not necessarily use the default settings that DirectMusic Producer uses when creating a new unedited band. You can modify this band and designate it as the default band for the style. When the style plays, the default band is used if no other band is specified. This includes instances when a software developer uses a style as a source for music in a Web page or software application without specifying a band to play the style.


Bands in Segments

You can insert one or more bands in the Bands track of a segment. Placing multiple bands in a segment makes it possible to change the instrumentation used for playback at various points in the performance.

You can insert a different band in each measure of a segment, as shown in the following illustration. The instrumentation used for playback changes each time a different band is reached.

The bands you insert can be new default bands that you modify or existing bands borrowed from other segments, styles, and projects. For more information, see Adding an Existing Band to the Project Tree and Dragging Bands.

When you insert a style in the Styles track of a segment, a Bands track is added to a segment if one is not already in the segment. The default band of the style you insert is placed in the Bands track on beat one of the first measure. You can open and edit this default band, as well as insert other bands into the Bands track.

Similarly, when you import a MIDI file as a segment, the instrument settings in the MIDI file are inserted as a band in the Bands track of the new segment. You can open and edit this band, as well as insert other bands into the Bands track. See Importing a MIDI File as a Segment.

Note Volume and pan settings of an imported MIDI file are placed in continuous controller tracks. The volume settings are displayed in the band-editing window as zero, and the pan settings are displayed as hard left, that is, completely to the left speaker. For information, see Band Conflicts with Continuous Controllers.

A band is needed in a segment so the settings for instrument sound choice, volume, and pan position can be assigned to each PChannel for playback. If the Bands track is empty, or if there is no Bands track in a segment, playback of the segment uses the instrument settings that have most recently been set—for instance, by the band used in another segment—for the PChannels. If no instrument sound choice, volume, and pan have been set for a PChannel, then one of the following results is heard during playback:

  • When playing the segment in DirectMusic Producer, the PChannel uses the piano sound found on the GM patch 00 of the Default GM Sound Set, a default volume setting of 85, and pan setting based on the default position of the mixing button for the PChannel.
  • When playing the segment outside DirectMusic Producer—that is, using the DirectMusic programming APIs—the PChannel is silent. For information about playing DirectMusic Producer files using the DirectMusic system components, see Using Files in the Developer Environment.

If you do not want to include a band in a segment, you can place a band in a secondary segment so that the instrument assignments used in the secondary segment are sent to the PChannels. See Secondary Segments.


Bands in a Project as Stand-Alone Components

You can insert bands in the project tree so they are located in the first level of components in a project. Placing multiple bands in a project makes it easy to try the sounds of various bands in combination with other components in the project.

If you create a new band in a project using the New command on the File menu, the band is placed in the project tree as a separate component in the project where you can drag it to styles or segments. For more information, see Creating a New Band and Dragging Bands.


Dragging Bands

You can drag a band to a different component or to a new position in either the project tree or the Editing pane. You can drag a band in or out of a style, making it part of a different component, or making it a separate component in the project tree. Similarly, you can drag a band in or out of a segment, but only from one segment to another, and only when both segments are open and displayed using Segment Designer. You can also drag a band from one position to another in the Band track of a segment.

When dragging a band, you can use different options to control whether the band is copied to the new location or only moved from the original location to the new location:

  • Dragging a band by using the right mouse button will provide you with the Move and Copy options. The Move option moves a band from its original location, while the Copy option makes a copy of the band.
  • Pressing the CTRL key and then dragging the band will make a copy of the band being dragged.

If you drag a band without using the Copy option or the CTRL key method, the band is removed from its original location, with some exceptions. When you drag a band from the Bands list of a style to the Bands track of a segment, the original band is always left in its original location. Similarly, when you drag a band from anywhere in the project tree to the Bands track of a segment, the original band is always left in its original location.

If you drag a copy of a band to a component or project, you can edit the copy without affecting the original band.


Cutting, Copying, and Pasting Bands

You can right-click a band and use the Cut, Copy, and Paste commands on the shortcut menu to insert a band in a different component, or place it in a new position. You can copy or cut a band in a style and paste it in another style, in the Band track of a segment, or in a project as a separate component. Similarly, you can copy or cut a band in a segment and paste it in another segment, but only when both segments are open and displayed using Segment Designer.

After placing a copy of a band in a component or a project, you can edit the copy without affecting the original band.


Band Structure

You design a band so the instrument settings you need for a piece of music are collected in one file. You can use a band to play many segments or styles.

A band can have as many as 999 distinct instruments, with each assigned to one of 999 performance channels. Following is a graphic representation of how playback information from a style or segment passes through a band before its output to either a software synthesizer, such as the Microsoft® Synthesizer, or a hardware playback device.

The structure for this band contains:

  • Performance channels (PChannels)
  • Instrument sound assignments
  • Volume and pan controls

For more information about the structure of a band, see Band Editor Window.


Band Editor Window

Opening a band starts Band Editor and displays a window similar to the following illustration.

The Band Editor window is divided into two sections:

  • Performance Channel List

    At the left of the Band Editor window, the Performance Channel list shows the PChannel names and basic data about the instrument assignment for up to 999 PChannels.

  • Volume and Pan Graphic Interface

    At the right of the Band Editor window, the graphic interface region contains a unified volume and pan mixing button for each PChannel. Use the button to adjust the pan and volume balance in the band.

For any PChannel in Band Editor, you can open a PChannel Properties window to edit all settings.

To edit the settings for a PChannel

  1. In the PChannel list, click a PChannel to select it.
  2. Right-click the PChannel and choose Properties on the shortcut menu. A PChannel Properties window is displayed showing the settings of the channel.

You can add new PChannels to the PChannel list at any time. For information, see Adding Performance Channels to a Band.

For information about editing the settings of a PChannel, see Performance Channel Properties Window.


Performance Channel List

The left section of the Band Editor window contains a list of the PChannels in the band. PChannels are listed in order, from lowest to highest according to their channel number. You can use the PChannel list in three ways:

  • Scroll through the list to view basic information about all PChannels in the band, such as a PChannel's name and instrument sound.
  • Right-click a PChannel and choose Properties on the shortcut menu to open a Performance Channel Properties window and edit settings for the channel.
  • Right-click the PChannels list to add or delete PChannels.

The PChannel list displays several settings for each PChannel in the band, as shown in the following diagram:

  • Performance Channel Numbers

    Each instrument in a band is placed in a separate performance channel, and has a number, from 1 to 999.

  • Performance Channel Name

    You can assign any name to each PChannel in a band. The name is a general description of the instrument sound used in the PChannel. The PChannel name is used in all files throughout a project.

  • Performance Channel Instrument Assignment

    The instrument assignment is the instrument sound used on the channel. This can be a sound from the GM.dls collection (recommended), a sound from a different DLS collection on your computer, or a sound in a MIDI hardware device.

  • Octave and Interval Transposition Setting

    The Octave and Interval Transposition setting is used for transposing an instrument's pitch at playback in octave and half-step increments. If any notes in a part are written at a transposed pitch, you may need to set playback to account for the transposition.

  • Priority

    The priority setting determines if a PChannel can be omitted from playback when the capacity of a playback device (port) does not support enough voices to play all the notes playing at one time. Also, if the same PChannel in another band is assigned a different instrument sound, the priority setting can be used to control which instrument sound takes precedence.


Volume and Pan Graphic Interface

The right section of the Band Editor window is a graphic interface you can use to balance the relative volume of the instruments in the band and to adjust the left and right pan positions for each instrument. The graphic interface is shown in the following illustration.

Each PChannel in a band has a unified volume and pan mixing button that adjusts both the volume and pan setting of the channel. You can drag a button vertically to adjust the volume of an instrument, and drag it horizontally to adjust the pan setting. Any time you select a button, the button turns red and the corresponding PChannel is selected in the Performance Channel list.

You can press the CTRL key and click multiple mixing buttons to select them, and then drag the group of buttons to adjust all their positions in the window at one time. The corresponding PChannel for each selected button is highlighted in the Performance Channel list. You can also select a group of buttons by holding the mouse button and dragging the cursor across several mixing buttons to enclose them in a selection box.

The upper and lower edges of the window represent high and low MIDI volume settings of 127 and zero, respectively. The center axis on the grid represents a median MIDI volume setting of 64. The left and right edges of the window represent hard left and hard right pan settings, equal to settings in the PChannel Properties window of L63 and R64, respectively. The center axis on the grid represents a center pan setting. For more information, see Performance Channel Volume and Pan.

You can also edit the volume and pan settings for a PChannel by opening the PChannel Properties window. As you edit the volume or pan properties of a PChannel, the mixing buttons in the Volume and Pan Graphic Interface move accordingly. Similarly, the settings in the PChannel properties are updated whenever you change the position of the button.

Note Volume and pan settings for the instruments in a band are often contained in separate continuous controller tracks of a segment or a style. Changes you make in a band do not affect settings in these separate tracks. For information, see Band Conflicts with Continuous Controllers.


Opening a Band

You open a band by double-clicking its icon in the project tree. If no band is in the tree, you can add one by creating a new band or adding one that is stored on your computer as a .bnj file. For more information, see Adding an Existing Band to the Project Tree or Creating a New Band.


Adding an Existing Band to the Project Tree

A band can exist as a subcomponent in a style or a segment, or as a stand-alone component in a project. You can add a band to a project in several ways. The following three methods use the dragging method to create a copy of a band in a new location or move the original band to a new location:

  • In the project tree, drag a band from one project to another.
  • In the project tree, drag a band from the Bands folder of a style to the icon of a project.
  • In the Style Designer window, drag a band from the Bands list to the icon of a project.

There are four other ways to add a band to a project:

  • In the project tree, right-click a band to display a shortcut menu. Use the Copy and Paste commands to insert a copy of the band in a project.
  • On the File menu, choose New to create a new default band in the project. For more information, see Creating a New Band.
  • On the File menu, choose Insert File into Project and choose an existing band file. For more information, see Adding Existing Components to the Project Tree.
  • On the File menu, choose Insert File into Project and locate an existing style file. The bands it contains can be moved into the project. For more information, see Adding Existing Components to the Project Tree.

After you place a band in a project, use the Copy and Paste commands or drag the band to place it elsewhere. This includes moving the band from one component to another, or placing it in the first level of components in the project. For more information, see Dragging Bands and Cutting, Copying, and Pasting Bands.

After a band is displayed in the project tree, you can double-click its icon to launch Band Editor and display the band's settings.


Auditioning a Band

Auditioning a band requires musical material from a style or a segment. The quickest way to audition a band is to open a style or a segment that contains the band to audition and play the style or segment.

Auditioning a Band Using a Style

To use a style to audition a band, open the style, select the band in the Bands list, and play the style. If the band is not contained in the style's Bands list, you can drag a band into the style.

To have the Band Editor window open while you audition a band, double-click the band in the Bands list of Style Designer, or double-click the icon in the project tree of a band in the Bands folder of the style. You can do this while Pattern Editor is open, which makes it easier for you to edit the band and the pattern notes. For more information, see Listening to a Band While You Edit.

To play a style using one of its bands

  1. In the project tree, double-click a style to open the Style Designer window.
  2. In the Style Designer window, click the Bands list to choose a band.
  3. To audition a band not in the list, drag the band from the project tree to the Bands list of the displayed style.
  4. In the Style Designer window, select a pattern.
  5. In the Transport Controls box, click the Start button.

Using a style to play a band allows you to audition the band without opening the Band Editor window. However, if you double-click the name of a band in the Bands list, the Band Editor window opens. You can hear changes you make to the band as the style is playing. For more information, see Listening to a Band While You Edit.

Auditioning a Band Using a Segment

To use a segment to audition a band, it is easier to use a segment that has an imported sequence of MIDI data as its musical content, instead of a segment that references a separate style component. This is because a segment containing a MIDI sequence does not require a separate style component and does not need a Chord track in order to play. For more information, see Minimum Segment Structure.

When you use this method, work with a backup copy of the segment of imported MIDI data. This eliminates the risk of losing important band information in the original segment of the imported MIDI data. You can open the segment copy, insert the band to audition at the beginning of the Band track, and play the segment. To avoid confusion during playback, you may need to delete all other bands from the segment. For more information, see Dragging Bands and Deleting a Band from the Segment or Project Tree.

To audition a band using a segment of imported MIDI data

  1. In the project tree, double-click a segment of imported MIDI data. The Segment Designer window is opened.
  2. To audition a band not in the first measure of the Bands track, drag the band from the project tree to the first measure of the Bands track. Any band on the first beat is overwritten by the new band.
  3. To avoid confusion during playback, delete all other bands from the Band track.
  4. In the Transport Controls box, click the Start button.

Using a segment to play a band allows you to audition the band without opening the Band Editor window. However, if you double-click the band in the Bands track, the Band Editor window is opened. You can hear changes you make to the band as the segment is playing. For more information, see Listening to a Band While You Edit.

Using the Transport Window

When you place a band in a segment or a style, you are selecting a specific component to use when listening to and editing the band. As you select a style pattern or a segment, it is displayed in the Transport list. If the Transport list does not display the name of the segment or the pattern you are using to edit the band, then you will not hear changes to the band during playback.


Switching Bands During Playback

DirectMusic Producer

Switching Bands During Audition Playback

You can switch to a different band while a style pattern or a segment is playing. This lets you audition several bands in sequence without stopping playback.

If you are using a style to audition bands, you can choose any band contained in the Bands list of the style, or drag a band from another style or from the project tree to the Bands list of the style you are playing.

If you are using a segment to audition bands, you can drag any band contained in another segment, in the project tree, or in a style onto the first beat in the segment's Band track to hear that band play. In some cases, you may need to stop and restart playback to hear the new band.

For more information, see Dragging Bands.


Creating a New Band

When designing bands, you have a choice of modifying an existing band or creating a new band. Working with an existing band has some advantages because some instruments and properties do not have to be set again. If you choose to modify an existing band, use the Save As command to save the modified band in the project tree under a new name.

An existing band may have more PChannels activated than you intend to use in the new band. For this reason, it is recommended that you create a band starting with a default band in which all PChannels are turned off (are dimmed). As you modify the setting for a PChannel in Band Editor, the channel is activated and its settings are added to the data for the band.

You can create a new band in three ways:

  • Insert a new band in a style.
  • Insert a new band in a segment.
  • Insert a new band in the project as a separate component.

When you insert a new band in a style, segment, or project, Microsoft® DirectMusic® Producer creates a new default band. After a new band is inserted, you can open it using Band Editor and modify it.

A new default band is named Bandn, where n is the number of new bands entered in the style, segment, or project during the current work session. For more information, see Default File Names and Internal Names.

To create a new band in a style

  1. In the project tree, right-click the Bands folder of the style and choose New Band on the shortcut menu. A new default band named Bandn is inserted in the folder.
  3. In the project tree, double-click the icon of the new band to open Band Editor.
  4. Modify the band as needed.

To create a new band in a segment

  1. In the Segment Designer window, right-click the band that is on the first beat of the Band track. If there is no band on beat one, skip to step 3.
  2. On the shortcut menu, choose Delete.
  3. In the Band track, right-click the first beat.
  4. On the shortcut menu, choose Insert. A Band Properties window is displayed.
  5. In the Measure box, enter 1.
  6. In the Beat box, enter 1.
  7. In the Tick box, enter 0.
  8. Click the Close button. A new default band named Bandn is inserted in the Band track.
  9. In the Band track, double-click the new band to open Band Editor.
  10. Modify the band as needed.

To create a new band in the project as a separate component

  1. Open the File menu and choose New. The following window is displayed.

  1. Scroll through the New list of file choices and double-click Band. An icon for the new band named Bandn is added to the project tree.
  2. In the project tree, double-click the icon of the new band to open Band Editor.
  3. Modify the band as needed.

For more information about modifying band settings, see Editing a Band.


Default Band

The following illustration shows the default settings for every new band that DirectMusic Producer creates.

The default band has the following settings:

  • Of the available 999 performance channels (PChannels), 16 are included in the band.
  • All PChannels are inactive (dimmed) until you use or edit them.
  • PChannels 1 through 9 and 11 through 16 are assigned to play the General MIDI Piano patch 1.
  • PChannel 10 is assigned to play a standard General MIDI Drum Set patch.
  • All PChannels are set to play without octave transposition or transposition by an interval.
  • Unified volume and pan controls for each PChannel are set at middle level.

Note When you open a new band, all PChannel names are dimmed and left inactive until you assign them instrument sounds, change their octave settings, or move their pan and volume controls. This allows you to select which PChannels are included in the data of the band. If a PChannel is inactive, then only data for the volume of that channel is contained in the band file.


Editing a Band

You can double-click a band anywhere it appears in Microsoft® DirectMusic® Producer to open it with Band Editor. This includes double-clicking the icon of a band in the project tree, or opening a band that is a subcomponent of a segment or a style. Editing a band that is in a segment or a style is easier because you can listen to the segment or style as you make adjustments to settings in the bands. For more information, see Listening to a Band While You Edit.

Double-clicking a band opens Band Editor, which displays a window similar to the following.

In Band Editor, you can edit a band in several ways:

  • Change PChannel settings in the PChannel Properties window

    Edit the names, instrument assignments, and basic data for a PChannel. For more information, see Performance Channel Properties.

  • Balance the volume and pan settings for the band

    Drag mixing buttons for each PChannel in the graphic interface of the Band Editor window. For more information, see Performance Channel Volume and Pan.

  • Add PChannels to the band

    For more information, see Adding Performance Channels to a Band.

  • Remove PChannels from the band

    For more information, see Deleting Performance Channels from a Band.

To edit the settings for a PChannel

  1. In the PChannel list, click a channel to select it.
  2. Right-click the PChannel and choose Properties. A Performance Channel Properties window is opened, showing the settings of the channel.
  3. Edit the properties of the channel and click the Close button.
  4. In the graphic interface of the Band Editor window, drag the PChannel's mixing button to adjust the volume and the pan.

For information about editing the settings of a PChannel, see Performance Channel Properties Window.


Performance Channel Properties Window

To change the instrument sound assigned to a PChannel, or edit the settings for how the playback of a PChannel sounds, you can open any band that uses the PChannel, and open a Performance Channel Properties window.

To open the Performance Channel Properties window for a PChannel

  • In the Performance Channel list, double-click a PChannel.

    or

    In the Performance Channel list, click a PChannel to select it, and press F11.

    or

    In the Performance Channel list, right-click a PChannel and choose Properties on the shortcut menu.

A PChannel Properties window similar to the following is displayed.

The PChannel Properties window contains the following settings for a Pchannel:

  • Performance Channel Number

    This setting is read-only and cannot be edited. There are up to 999 PChannels in a band.

  • Performance Channel Name

    The name you assign to a PChannel is used in all files in the project.

  • Performance Channel Instrument Assignment

    You can assign an instrument sound for a PChannel, choosing from many sound sets and DLS collections.

  • Sound Set and Patch Information

    This setting displays the name of a sound set or DLS collection containing the instrument sound used for a PChannel, and the most significant byte (MSB), least significant byte (LSB), and patch number of the sound.

  • Octave and Interval Transposition Setting

    You can assign a transposition value to a PChannel using a combination of octaves and intervals.

  • Volume

    You can set a PChannel to play at any MIDI volume.

  • Pan

    You can set a PChannel to play in any pan position.

  • High and Low Range Settings

    You can limit how many samples of a DLS instrument are downloaded.

  • Priority

    You can select which instrument parts to omit from playback when the voice capacity of an output port is exceeded.

  • Always use the default GM Set for the Instrument

    You can ensure that an instrument in another sound source, such as another DLS collection or a hardware device, cannot be substituted for the GM.dls sound you select for the PChannel.


Performance Channel Numbers

At the left of the Performance Channels list is a column of PChannel numbers (PCh#), shown in the following illustration, for all PChannels in a band. PChannels are listed by this number in ascending order.

Performance channel numbers cannot be edited. PChannels 1 through 16 are generally included in all existing bands and are included in every default band.

You choose the number of a PChannel between 1 and 999 when you add it to a band. If you want a PChannel number not in the list, add the desired PChannel and delete any unwanted PChannel. For more information, see Adding Performance Channels to a Band and Deleting Performance Channels from a Band.

Note Performance channels 1 through 999 can be used for any instrument assignments, with the exception of PChannel 10 and every 16th channel thereafter. These are reserved for percussion.

For more information, see Performance Channels Reserved for Percussion.


Performance Channels Reserved for Percussion

Performance channels 1 through 999 can be used for any instrument assignments, with the exception of PChannel 10 and every 16th channel thereafter. These are reserved for percussion.

PChannels reserved for percussion are:

10, 26, 42, 58, 74, 90,

106, 122, 138, 154, 170, 186,

202, 218, 234, 250, 266, 282, 298

314, 330, 346, 362, 378, 394

410, 426, 442, 458, 474, 490

506, 522, 538, 554, 570, 586

602, 618, 634, 650, 666, 682, 698

714, 730, 746, 762, 778, 794

810, 826, 842, 858, 874, 890

906, 922, 938, 954, 970, 986

When you open the PChannel Properties window for a PChannel in this list and click the Instrument button, the following menu is displayed; this menu is different from the one displayed for regular channels in the band.

This menu includes all the drum set patches in the GM.dls collection. Click a drum set to select it, or click Other DLS to choose drum sounds from another DLS collection in the project tree.

For more information about selecting instrument patches, see Editing Instrument Assignment.


Performance Channel Name

The second column in the Performance Channel list, shown in the following illustration, contains the performance channel names (PCh Name) for all PChannels in a band.

You enter the PChannel name for a PChannel in the PChannel Properties window. The name you enter is used for the PChannel in all files in the project that also use that PChannel.

You can use any name to describe a PChannel. The PChannel name is typically a general description of the instrument sound used in the PChannel, such as flute. In the preceding illustration, some PChannels have names describing the type of instrument used in the PChannel, while some PChannels have names that simply match the PChannel number.

Note You can also open a style pattern using Style Designer and assign a name to a PChannel in the Part Properties window of a part in the style pattern. When you have done this, the PChannel name is propagated to all files in the project.

To assign a PChannel name to a PChannel

  1. In a band file within a project, double-click a PChannel to open a PChannel Properties window for the PChannel.
  2. In the PChannel name box, next to the box containing the PChannel number, type a name for the PChannel. The PChannel name is used in all files in the project.


Performance Channel Instrument Assignment

In Band Editor, you can assign a instrument sound, also called a patch, to each PChannel. The instrument sound you choose determines the timbre of the channel. Timbre refers to the tone quality or color of the sound. Most instrument sounds are identified according to the acoustic instrument they emulate, such as the trumpet or violin. Some sets of instrument sounds contain multiple variations of an instrument, such as bright trumpet or muted trumpet. In addition, there are some sounds that are not based on an instrument, but are more appropriately referred to as sound effects. For example, the following illustration uses the Ice Rain sound effect. In a band, sound effects are also referred to as instrument sounds, even though they are not necessarily based on musical instruments.

The third column in the Performance Channel list, shown in the following illustration, shows the instrument sound assignments for all PChannels in a band.

Note When you assign an instrument sound to a PChannel in a band, that sound is used for the PChannel only when the band is used. The sound does not propagate to other band files in the project, even if another band uses the same PChannel.

Double-click a PChannel in the Performance Channel list to open a Performance Channel Properties window and assign an instrument sound to the PChannel. You can then click the Instrument Patch Assignment button, shown in the following window, to choose a different instrument sound for the PChannel.

The Instrument Patch Assignment button displays the name of the instrument sound assigned to the PChannel. Clicking the button displays a menu of instrument families. The menu contains several lists in which you can select one of 254 GM/GS instrument sounds. You can ignore the lists of GM/GS sounds and select an instrument sound from another DLS collection in the project. For more information, see Instrument Family Menu. Whether you choose a GM/GS instrument sound included in the Instrument Family menu, or a sound in another DLS collection, the name of the sound is displayed on the Instrument Patch Assignment button.

Important You should never set a component in one project to refer to a component in a different project. Doing so puts the data in your files at risk. For example, it is recommended that all DLS collections used in a band be included in the same project as the band. However, when you use the default GM.dls collection, it is not necessary to load the collection into the project tree. See GM.dls Collection.

When you choose a sound from the list of GM/GS instrument sounds, you are selecting a sound that is contained in the Default GM Sound Set on your computer. The default playback setup for DirectMusic Producer uses the GM.dls collection as the Default GM Sound Set. You can also choose a different DLS collection as the sound set for default playback. See Default GM Sound Set.

The name of the sound set that contains the instrument sound, and the patch number information for the sound, are displayed in the Sound Set and Patch Information area of the PChannel Properties window, as shown in the following illustration:

If you select a GM/GS sound in the Default GM Sound Set, the information in the window begins with GM or GS. If the sound is contained in another DLS collection, the information begins with the name of the DLS collection. For example, this illustration shows that the Flute instrument sound was drawn from DLS Collection 1. For more information, see Sound Set and Patch Information.

Following the name of the sound set, the complete patch number information for the instrument sound is enclosed in parentheses. This information includes the most significant byte (MSB), least significant byte (LSB), and patch numbers for the sound. For more information, see Patch Numbers, MSB, and LSB.

To assign an instrument sound to a PChannel

  1. In a band file, double-click a PChannel to open a PChannel Properties window for the PChannel.
  2. Click the Instrument check box to activate the Instrument button.
  3. Click the Instrument button.
  4. On the Instrument Family menu, click an instrument group, such as Piano, Guitar, Brass, or Percussive. A submenu of instrument patches is displayed. To choose an instrument sound from a different DLS collection, choose Other DLS.
  5. Select a patch.
    • For a General MIDI instrument, click the patch.
    • For a GS instrument, point to GS and click the patch. For more information, see GS Patch Options.
    • For an instrument sound from a different DLS, choose the DLS collection and select the patch. For more information, see Other DLS Option.

Note The default setting in DirectMusic Producer uses the GM.dls collection for all PChannels. The GM.dls collection is installed in the Windows/System32/Drivers folder when you install the DirectMusic system components in your computer. It is available to all projects, and you do not need to add it to the project tree.

Because the GM.dls collection and the Microsoft Synthesizer are provided free to all users, it is recommended that you design bands exclusively using the sounds in the GM.dls collection. Doing so ensures that the same instrument sounds are used on all computers to play music you create.


Instrument Family Menu

The list of instrument sounds available in the Performance Channel Properties window is the General MIDI set of 128 instrument sounds, plus the set of 126 GS sounds—a bank of sounds added to the General MIDI set. Additionally, you can choose instrument sounds in other DLS collections in the project tree, including custom DLS collections you create. See DLS and DLS Collections.

When you choose an instrument sound that is included in a standard list of GM or GS sounds, the corresponding GM/GS instrument sound in the default GM DLS collection is used. If playback for the PChannel is set to use a sound in a GM hardware playback device, the corresponding GM/GS sound in the hardware device is used.

You can select an instrument sound for a PChannel from one of the following three sources:

  • The GM.dls collection of downloadable General MIDI waveform sounds, provided with DirectMusic Producer. The default playback setup uses this collection as the source for all instrument sounds.
  • A general MIDI sound set contained in a hardware MIDI sound device, such as a sound card or external MIDI keyboard.
  • Other DLS collections in the project tree, including custom DLS collections that you design.

For each PChannel, you can open a PChannel Properties window and click the Instrument button to display the Instrument Family menu, shown in the following illustration.

Note A different menu is displayed if the PChannel you are editing is reserved for percussion instruments—for example, channel 10, 26, 42, and so on. For more information , see Performance Channels Reserved for Percussion.

In the preceding menu, you can click an instrument family, such as Brass or Organ, to display an Instrument Patch list within that family. From the list of instrument patches, shown in the following illustration, you can choose a specific General MIDI patch, such as Trumpet or Trombone.

If the patch is not included in the Instrument Patch list, you can choose two other options:

  • GS

    Included as an option in the Instrument Patch list.

  • Other DLS

    Included as an option in the Instrument Family menu.


GS Patch Options

In each instrument family, except Reed, Pipe, and Synth Pad, there is a set of sounds from the standard GM/GS Sound Set provided by the Roland Corporation. These are accessed at the top of a family's Instrument Patch list. You can choose an instrument family and select GS to display a submenu of GS sounds for the instrument family, as shown in the following illustration.


Other DLS Option

On the Instrument Family menu, you can select any DLS collection in the project tree. Instead of choosing an instrument family, click Other DLS to display a window similar to the one shown in the following illustration.

Click the DLS Collections list to choose a DLS collection and select an instrument patch from the collection.

You can choose any DLS collection in the list and use its sounds as instruments in a band. You can also change which DLS collection is selected in the list. This allows you to access instrument sounds from several DLS collections within a single band.

Note When you choose the Other DLS command, DirectMusic Producer compares the DLS collections in the project tree to check for conflicting patch number assignments. If any are found, a window warns you about the conflict and provides options for fixing the problem. For more information, see DLS Patch Conflicts.


Sound Set and Patch Information

When you choose an instrument sound for a PChannel, you select it from a set of sounds such as the General MIDI sound set in the General MIDI DLS collection, or from the GM sounds in a hardware playback device.

The instrument sound you select has a most significant byte (MSB) number, a least significant byte (LSB) number, and a patch number that form a unique set of identification numbers for the instrument sound.

For convenience, the name of the sound set and the three identifying numbers for the instrument sound are displayed in the Sound Set and Patch Information area of the PChannel Properties window, as shown in the following illustration.

This illustration shows that the instrument sound used for the PChannel is Flute. The sound is contained in DLS Collection1 and has MSB number 1, LSB number 0, and patch number 73.

When you select a sound from the GM list in the Instrument Family menu, the sound set is shown as GM, the MSB and LSB numbers are zero, and the patch number is the standard MIDI patch number for the General MIDI sound you choose.

If you select a sound from a GS submenu in the Instrument Family menu, the sound set is shown as GM, and the MSB number is something other than zero to show that a different bank of instrument sounds is in use. For more information, see Patch Numbers, MSB, and LSB.

When the GM sound set is used for a PChannel, the GM/GS sounds of either a hardware playback device or the GM.dls sound set are used, depending on the output port you select in the Port Configuration window.

Note The default setting in DirectMusic Producer uses the General MIDI DLS collection (GM.dls) for playback of PChannels. GM.dls includes the GS sounds and is installed in the Windows/System32/Drivers folder when you install the DirectMusic system components. If you select the option Always use the default GM set for this instrument, the GM/GS sounds in the GM.dls collection are always used for all PChannels, regardless of whether a hardware device is selected as the output port. For more information, see Always Use the Default GM Set.

Any time the link to the sound set has become broken, Unknown appears as the sound set in the Sound Set and Patch Information area. For example, if a DLS collection sound selected from the Other DLS list is no longer included in the project tree, Unknown is displayed.


Performance Channel Octave and Interval Transposition

If the instrument patch selected for a PChannel needs to transpose the pitches it plays either higher or lower by a fixed interval, or if an instrument's notes, in a style or segment, are written at a transposed pitch, you may need to set playback to account for the transposition. You can set the playback transposition of an instrument's pitch, higher or lower, in octave increments and in half-step increments using the PChannel Properties window, shown in the following illustration.

In the PChannel Properties window, you can type or select a value in the Oct box for the number of octaves that the instrument part should be transposed. You can use any of the following settings for octave transposition (a positive number indicates a transposition upward; a negative number indicates a transposition downward).

-1, -2, -3, -4, 0, 1, 2, 3, 4,

You can also type or select an interval between a minor 2nd and a major 7th in the Trans box to indicate the interval that the instrument part should be transposed. You can use any of the following settings for interval transposition. A positive number indicates a transposition upward; a negative number indicates a transposition downward.

Ma7, mi7, Ma6, mi6, 5th, b5, 4th. Ma3, mi3, Ma2, mi2, None, -mi2, -Ma2, -mi3, -Ma3, -4th, -b5, -5th, -mi6, -Ma6, -mi7, -Ma7

Alternatively, you can enter a number in the Trans box between –11 and 11 to represent the number of half steps for the desired transposition.

You can also combine the values in the Oct and Trans boxes to express large intervals as a number of octaves plus an interval. For example, an interval of a major 10th could be defined by entering 1 in the Oct box and Ma3 in the Trans box.

Note If you enter a positive value in the Oct box, the Trans box always shows a transposition interval that is either zero or a positive number. If you enter a negative value in the Oct box, the Trans box always shows a transposition interval that is either zero or a negative number. If you enter an Oct value of zero, the full range of transposition intervals from -Ma7 to Ma7 is available.

For example, if you start with an Oct setting of +3 and a Trans setting of zero, and reduce the Trans value by one increment, an Oct setting of +2 with a Trans setting of Ma7 is produced, instead of Oct +3 and Trans -mi2. Even if you explicitly enter a negative interval in the Trans box, the Oct setting and the Trans setting are reinterpreted to follow this rule.

To modify the octave and interval transposition setting of a PChannel

  1. In the Performance Channel list, click a PChannel to select it.
  2. Right-click the PChannel and choose Properties on the shortcut menu. A PChannel Properties window is displayed.
  4. Next to the Oct and Trans boxes, click the check box to activate transposing.
  5. In the Oct box, type or select the number of octaves to transpose the PChannel. Positive numbers transpose upward, negative numbers transpose downward.
  6. In the Trans box, type or select the interval for the PChannel to transpose in addition to the octave transposition. Positive numbers transpose upward, negative numbers transpose downward.

While playback of previously entered notes is always consistent, different results can occur during playing or recording when you use transposed instruments. For example:

  • When in step-record mode or when you click the piano roll notation pitch guide, MIDI data is played back with transposition.
  • When you are not recording or when recording in real time to a low-latency output port, MIDI data is passed from the keyboard to the PChannel without transposition.

Note To eliminate confusion caused by delays in the audible MIDI feedback when recording in real time to a high-latency output port, no MIDI feedback is provided, regardless of transposition settings. If recording to a style pattern, the new notes are played as audible notes when the pattern loops during the recording period. For more information, see MIDI Recording.


Performance Channel Volume and Pan

You can adjust the settings for how a PChannel plays through the speakers of your playback equipment. The volume setting of a PChannel controls its relative volume compared to other PChannels in the band. The pan setting controls whether a PChannel plays out of the left or right speaker, or a combination of both.

You can change the volume and pan settings of a PChannel in two ways:

  • Enter new settings in the Performance Channel Properties window.
  • Drag the PChannel's mixing button in the graphic interface of the Band Editor window.

Editing the volume and pan settings of a PChannel in its properties window is useful for making fine adjustments. You can enter a volume setting between zero and 127, and a pan setting ranging from L63, corresponding to a hard left pan setting, to R64, corresponding to a hard right pan setting.

Editing the volume and pan settings in the graphic interface is useful for adjusting the relative balance and pan positions for all instruments in the band while listening to the band play a segment or style. For more information, see Listening to a Band While You Edit.

Note Volume and pan settings for the instruments in a band are often contained in separate continuous controller tracks of a segment or a style. Changes you make in a band do not affect settings in these separate tracks. For information, see Band Conflicts with Continuous Controllers.

The upper and lower edges of the volume and pan graphic interface represent high and low MIDI volume settings of 128 and 1, respectively. The center axis on the grid represents a median MIDI volume setting of 64. The left and right edges of the window represent hard left and hard right pan settings, equal to settings in the PChannel Properties window of L63 and R63, respectively. The center axis on the grid represents a center pan setting.

To modify the volume and pan settings of an instrument using the PChannel Properties window

  1. In the Performance Channel list, click a PChannel to select it.
  2. Right-click the PChannel and choose Properties on the shortcut menu. A PChannel Properties window similar to the following is displayed.

  3. In the Vol box, enter a value between 1 and 128.
  4. In the Pan box, enter Mid for a pan setting centered between the speakers, or enter a value between L63 (hard left) and R63 (hard right) for a balance that is stronger in one speaker than another.

To modify the volume and pan settings of an instrument using the Band Editor graphic interface

  1. In the Graphic Interface box, click the mixing button of a PChannel.
  2. Drag the button vertically to change the instrument volume.
  3. Drag the button horizontally to shift the sound more prominently to the right or left speaker.


Performance Channel Range Settings

The high and low range settings in the PChannel Properties window provide a way to minimize unnecessary loading of wave files into the temporary memory of the synthesizer. Most DLS sounds use multiple wave files to produce the full range of MIDI notes, from zero to 127. However, if you know that the instrument assigned to a PChannel will not be used above or below certain pitches, you can specify a high and low range for the PChannel. Any waves used in the DLS instrument that are employed beyond the range limits are left unused. DirectMusic Producer does not load these unused waves into the memory of the synthesizer and, thus, saves time downloading the DLS instruments needed.

The default setting for the ranges of a PChannel uses all notes from zero to 127; all waves in a DLS instrument are loaded into the synthesizer, regardless of whether the waves are used. You can determine which notes are not played in any parts or sequences that play on a PChannel by opening the parts or sequences to visually locate the highest and lowest pitches. If you click the Range box in the PChannel Properties window, you can enter the highest and lowest pitches from a part or sequence as the high and low range notes. Only the waves required for notes within the limits are loaded into the memory for playback.

When setting the range limits, keep in mind that notes in a part often transpose when encountering chords in a segment. For example, a flute part may be transposed to play very high notes when encountering a chord built on a root of 2 Bb or 2 B. For information, see Inversion Boundaries and How a Pattern Interacts with a Chord.

DirectMusic Producer uses a system of letter names and octaves to name the pitch of a note in a part display or a segment. For example, middle C is called C 5. To enter the name of a note in the range setting, you must translate the note name to a MIDI number. For example, middle C is equal to MIDI note 60. For more information, see Pitch Names and MIDI Numbers.


Performance Channel Priority

Each output port (playback device) you use has a maximum number of notes that it can play at a time. Thus, on any beat, a limited number of notes can sound. When DirectMusic Producer files are played, the files could exceed the playback capabilities of the output port. You can assign a priority setting to each PChannel in a band, so DirectMusic Producer can select which instrument parts to omit from playback if the voice capacity of an output port is exceeded.

There are several situations when playback of DirectMusic Producer files can exceed the voice capacity of an output port. These include:

  • Playing complex chords with many voices
  • Several instrument parts sounding simultaneously on one beat
  • Sustaining notes from a previous beat when new notes begin
  • Playing multiple DirectMusic Producer files at a time
  • Combining and playing multiple segments for a computer game

You can use a variety of output ports to play DirectMusic Producer files, including MIDI hardware devices and software synthesizers. All these ports have different capacities for playback of multiple and simultaneous voices. The Microsoft Synthesizer supports up to 1000 voices, while the built-in synthesizer hardware in some sound cards supports fewer voices. If the maximum number of voices for a port are exceeded during playback, the output port selectively drops different parts of the music from playback. This avoids complete interruption of playback by letting a file continue to play using reduced instrumentation.

Each type of playback device and synthesizer has its own method for prioritizing notes in a performance when more voices than available are required. For example, many hardware devices use a method called voice stealing to selectively omit individual notes from a chord. If you are using a port that is not fully compatible with DirectMusic Producer, the port uses its own method for deciding which voices in the file to omit from playback. For more information, see Output Port Compatibility and PChannel Priority and Voice Stealing.

If you are using a DirectMusic-compatible output port, including the Microsoft Synthesizer and some hardware devices, the port can make use of the priority setting you assign to each PChannel. If the PChannel group exceeds its voice allocation, the PChannels with the lowest priority may be dropped so other PChannels can use their voices.

The Priority setting in the PChannel Properties window enables you to control the chance that a PChannel might be omitted. The following priority settings are available for a Pchannel:

  • Critical

    Critical priority can be assigned to a PChannel without which a piece could not play, such as a PChannel that contains the lead melody.

  • High

    High priority can be assigned to a PChannel that constitutes an important part of a piece, such as a PChannel that is part of the harmonic accompaniment.

  • Standard

    Standard priority is the default setting for all PChannels.

  • Low

    Low priority can be assigned to a PChannel that plays a noncritical background part.

With a Critical setting, a PChannel has the greatest possibility of always being included in playback. With a Low setting, a PChannel has the greatest likelihood of being omitted from playback, though this only occurs when necessary. By omitting one or more PChannels, files can continue playing without interruption, though with reduced instrumentation.

To set a priority for a PChannel

  1. In the Performance Channel list, click a PChannel.
  2. Right-click the PChannel and choose Properties on the shortcut menu. A PChannel Properties window is displayed.
  4. In the Priority box, choose a priority.

The following topics provide additional information about using the PChannel Priority setting:

  • Default Priority Settings
  • PChannel Priority and Voices Allocated
  • PChannel Priority and Low Memory Situations
  • PChannel Priority and Voice Stealing


Default Priority Settings

When you add new instruments to a band, DirectMusic Producer initializes the PChannels with the default DLS Level 1 priority. In DLS Level 1, the PChannels in each port group of 16 PChannels have the following priority order (from highest priority to lowest priority): 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16. If you do not assign different priority levels to one or more PChannels, this default priority order is used.


PChannel Priority and Voices Allocated

The Priority setting you choose for a PChannel is affected by the Voices Allocated setting in the Port Configuration window. This setting determines the maximum number of voices that a port can play at one time. You can set the Voices Allocated setting to any number that does not exceed the capacity of the port. The Priority setting comes into effect when more simultaneous notes are being played than the Voices Allocated setting provides for, regardless of the number of voices the port can actually handle. Depending on the number of voices available in a port to play a file, you may be able to set the Voices Allocated setting to a high number. In this case, it may not be necessary to omit any PChannels during playback.

For example, if the number of voices allocated to a playback port is high, the number of voices required to play a file might never exceed the number allocated to the port. There would be no shortage of voices when the file played through the port, and the Priority setting would not be used. Conversely, if the number of voices allocated to a playback port is low, the number of voices required to play a file might frequently exceed the number allocated to the port. A shortage of voices would most likely occur when the file plays through the port. The Priority setting would then be used.

The default for the Voices Allocated setting in the Port Configuration window is 32. However, many output ports are capable of playing far more than 32 voices at a time. For example, the Microsoft Synthesizer is capable of playing 1000 voices at a time, and thus, can use any voice allocation setting from zero to 1000. If instrument parts are omitted during playback of a file, you can increase the voices allocated to the output port and reduce the possibility that the voices required will exceed the allotment for the port. As the voices allotted for the port increases, the likelihood that the Priority setting will be used decreases. Although allocating 1000 voices to the Microsoft Synthesizer may cause excessive use of computer CPU memory, it greatly reduces the possibility of an instrument part being omitted.

Regardless of the maximum voice capabilities for a port, hardware or software, you can limit the voice allocation for a port to less than 32 voices. For information about adjusting the voice allocation for a port, see Voice Allocation.

Note When you use the Microsoft Synthesizer, voices that are dropped from playback due to limited voice capacity are held for 10 milliseconds so they can be quickly faded out. This eliminates the clicking sound in playback that occurs when notes are abruptly stopped due to a lack of voices in the output port to play them. Holding notes this extra length of time causes the Microsoft Synthesizer to briefly exceed the number of voices allocated to it in the Port Configuration window. The expanded number of voices appears in the Synthesizer Status window. The temporarily expanded number may be much higher than the number allotted.


PChannel Priority and Low Memory Situations

In addition to a software synthesizer using excessive computer memory, there are other times when enough memory is not available to fully play a DirectMusic Producer file. For example, if the combination of multiple files being processed by DirectMusic results in excessive memory use, there may not be sufficient memory available to store all DLS sounds and all playback information at one time. This may force DirectMusic to omit some PChannels from playback. The priority settings you choose in the PChannel Properties window control which instrument parts take precedence.


PChannel Priority and Voice Stealing

All output ports, including hardware playback devices and software synthesizers, have some limit to the number of voices that can play at one time. These limits cannot be exceeded, even if you allocate more voices in the Port Configuration window. If playback of a file or group of files exceeds the maximum number of voices for a port, the device must use voice stealing, in which voices are taken from one channel for use by another.

Each playback device and synthesizer has its own method for managing voice stealing, and for giving priority to some notes in a performance when more voices are required than are available. Once you set the maximum voice allocation for a port and have given priority settings to the PChannels in your files, you can then choose which PChannels to omit during playback when voice requirements exceed the limits of the port. However, if all PChannels in a file remain at the default (Standard) priority setting, the port's voice-stealing method will choose which parts to omit from playback.


Always Use the Default GM Set

In the Properties window of a PChannel, you can choose Always Use the default GM set for this instrument to have the instrument sound in the General MIDI DLS collection (GM.dls) used for the PChannel. This ensures that an instrument in another sound source, such as another DLS collection or a hardware device, cannot be substituted for the GM.dls sound you select for the PChannel.

If you select Always Use the default GM set for this instrument, the PChannel can play a number of ways, depending on the output port you select for the Pchannel:

  • When using a DLS-compatible software synthesizer, such as the Microsoft Synthesizer, any GM.dls instrument sound plays through the software synthesizer.
  • When using a DLS-compatible hardware device, such as a sound card, any GM.dls instrument sound plays through the device using the synthesizer hardware in the device.
  • When using any playback device or synthesizer, including the Microsoft Synthesizer and DLS-compatible hardware, if you select an instrument sound that is not in the GM/GS sound set, such as a sound from the Other DLS list, the Always Use the default GM set for this instrument option is ignored.
  • When using a GM-compatible hardware device or software synthesizer that is not capable with playing DLS sounds, the Always Use the default GM set for this instrument option is ignored and the instrument sound is drawn from the GM/GS sounds in the device or synthesizer using the same GM patch number.

For information about selecting a playback device for a PChannel, see Playback Port Configuration.

For information about options for playback devices, see Playback Devices.


Editing Multiple PChannels

You can select multiple PChannels in the Performance Channels list and edit settings for the selected PChannels at one time. Multiple PChannels can be selected in three ways:

  • Press the CTRL key and click a PChannel in the Performance Channel list to add it to the group.
  • Press the SHIFT key and click two PChannels in the Performance Channel list to add them and all PChannels between them to the group.
  • Press the CTRL key and click a mixing button in the graphic interface of the Band Editor window to add its PChannel to the group.

Whenever you select multiple PChannels, you can right-click the Performance Channels list and choose Properties on the shortcut menu to open a single properties window that controls all the selected PChannels at one time. You can adjust the following properties:

  • Instrument Patch Assignment
  • Volume
  • Pan
  • Octave and Interval Transposition Setting
  • High and Low Range Settings
  • Priority
  • Always using the default GM Set for the instrument

The Properties window you open for a group of PChannels shows an empty setting for any property that is not the same in all the selected PChannels. The following illustration shows a Properties window for a group of PChannels that do not share any of the same settings.

If you change a setting in a Properties window, the value you enter is used for all the selected PChannels, and the value that appears in a setting is shared by all the selected PChannels. If you leave a setting empty, the property is left unchanged in the individual PChannels of the selected group.


Adding Performance Channels to a Band

You can add as many new PChannels as you like to a band, up to 999 PChannels. You can name each PChannel and can add an instrument sound to the PChannel:

To add a single PChannel to a band

  1. In Band Editor, right-click the Performance Channel list.
  2. Choose Insert a PChannel on the shortcut menu to add a PChannel to the list. A new PChannel using the lowest unused PChannel number is inserted in the list.

To add multiple PChannels to a band

  1. In Band Editor, right-click the PChannel list and choose Add/Remove PChannels on the shortcut menu. The following window is displayed.

  3. In the AddPChannel box, enter the number of a PChannel that is not in the band and click Add. The PChannel is inserted in the PChannels list at the left of the window.
  4. Repeat step 3 to add other PChannels.
  5. Click OK.

Note You cannot select a PChannel and alter or edit its PChannel number. However, you can copy the settings from one PChannel to another, and then delete the unwanted PChannel. For information, see Lesson 3 in the Tutorial, Changing Segment Tempos, Bands, Repeats, and Other Settings.


Deleting Performance Channels from a Band

You can delete an individual PChannel from a band, or multiple channels at one time.

To delete one or more PChannels from a band

  1. In the Performance Channel list, click a PChannel to select it.
  2. Press SHIFT and click another PChannel to select it and all PChannels between it and the first PChannel selected.
  3. Press CRTL and click additional PChannels to add them to the group.
  4. Right-click the PChannel list and choose Delete PChannel(s) on the shortcut menu. A window is displayed asking you to confirm your decision to delete the selected channels.
  6. Click Yes.

To delete one or more PChannels from a band (alternate method)

  1. In Band Editor, right-click the Performance Channel list and choose Add/Remove PChannels on the shortcut menu. The following window is displayed.

  3. In the PChannel list, click a PChannel to select it.
  4. Press SHIFT and click another PChannel to select it and all PChannels between it and the first PChannel selected.
  5. Press CRTL and click additional PChannels to add them to the group.
  6. Click Remove Selected. A window is displayed asking you to confirm your decision to delete the selected channels.
  7. Click Yes. The PChannels are removed from the PChannel list.
  8. Click OK.

Note You cannot select a PChannel and alter or edit its PChannel number. However, you can copy the settings from one PChannel to another, and then delete the unwanted PChannel. For information, see Lesson 3 in the Tutorial, Changing Segment Tempos, Bands, Repeats, and Other Settings.


Listening to a Band While You Edit

The quickest way to design a band that suits your needs is to listen to it while you make adjustments to its settings. Do this by using a style or a segment to provide musical material for the band to play.

If you select a band from the Bands list in the Style Designer window, or from the Bands folder of a style in the project tree, you can play a pattern in the style and hear changes as you make them. When playing a style pattern, you can modify an associated band and hear the changes to the band as you make them. For more information, see Auditioning a Band and Dragging Bands.

Similarly, if you place the band to edit in the Band track of a segment, you can play the segment and hear changes to that band as you make them. If a band to edit is not already in the segment, you can drag a copy of the band to its Band track. When playing a segment, you can modify its band and hear the changes to the band as you make them. (For more information, see Auditioning a Band and Dragging Bands.)

To keep the Pattern Editor window open while you edit a band, open Pattern Editor to view a pattern and double-click the icon in the project tree of a band in the Bands folder of the style. This makes it easier for you to edit the band and the pattern notes.

Using the Transport Window

When you place a band in a segment or a style, you are selecting a specific component for use in listening to and editing the band. As you select a style pattern or a segment, it is displayed in the Transport list. The Transport list shows what musical material is being played. If the Transport list does not display the name of the segment or the pattern you are using to edit the band, you will not hear changes to the band during playback.

To select a style pattern and hear changes to a band

  1. In the project tree, double-click the icon of a style's internal name to display the style in the Style Designer window.
  2. In the Style Designer window, choose a band in the Bands list.
  3. If the band is not in the list, drag a band from a different style or from the project tree to the Bands list. To add a new default band to the list, right-click the style's Bands folder in the project tree and choose New Band on the shortcut menu.
  4. In the list of patterns in the Style Designer window, click a pattern to select it.
  5. In the toolbar, click the Playback button. The band you hear is the band shown in the Bands list.
  6. In the Bands list, double-click the current band to open it with Band Editor.

To choose a different band while the style pattern is playing

  1. In the Style Designer window, click the Bands list to display a list of bands in the style.
  2. In the Bands list, click a band. Playback switches to that band while the style pattern is playing.


Band Conflicts

A PChannel can use only one instrument sound and one set of PChannel properties at a time during playback. When you design a band and assign an instrument sound to a PChannel, you must keep in mind that other bands may be using the same PChannel with a different instrument assignment. In this case, there will be a conflict between the bands when they are used simultaneously during playback.

For example, when you play multiple components containing bands, such as segments, there may be more than one band sending instrument sounds to the same PChannels. If one segment uses a piano sound on PChannel 1, and another segment uses a trumpet sound on PChannel 1, there will be conflicting instrument sounds set to play on the same PChannel. In this case, the sound for the PChannel changes as playback reaches one or another band contained in the segments.

The instrument settings for a PChannel include your choice of instrument sound, plus volume, pan, octave, and transposition settings. For more information, see Performance Channel Properties Window. These settings are loaded into the memory of the synthesizer or playback output device as the band is reached during playback. Thus, when playback of your DirectMusic Producer components reaches a new band, its settings override any previous band settings for PChannels used in both bands. This is true whether you play a single component containing more than one band (such as segment), or multiple components each containing one or more bands.

For example, if you start playback of a style containing Band1, and a few seconds later start playback of a segment containing Band2, playback begins using Band1 and then switches to Band2. If any PChannels are used in both bands, then instrument settings from Band2 override the settings in Band1 for those PChannels only. Any PChannels in Band1 that are not used in Band2 continue to play unchanged.

If the segment also contains Band3 in a later measure, then playback switches to Band3 as it is reached, overriding any conflicting settings in Band2 or Band1.

If a band does not contain any settings for a PChannel, then settings for that PChannel are not affected during playback. You can avoid band conflicts by assigning unique PChannels to each of the different instrument sounds in every band used in the project.

For more information about inserting a band in a segment, see Bands in Segments.

For more information about setting the instrument sound, volume, pan, octave, transposition, and priority for a PChannel, see Editing a Band.

For more information about playing multiple components simultaneously, see Primary Segments, and Secondary Segments.

Conflicts with Continuous Controllers

Volume and pan settings can be included in continuous controller tracks contained in the sequences or patterns of a segment, or in the patterns of a style. Continuous controller settings are not overridden by settings in a band. As a segment or style plays, the most recent settings are used for volume and pan, regardless of whether those settings occur in a band or in a continuous controller track. See Band Conflicts with Continuous Controllers.

Using Band Overriding for Convenience

During playback, each band in every component overrides all other conflicting PChannel settings, regardless of what type of component contains the band. For convenience, you can use a band in one component to override instrument settings in all other components, so that you control the playback of all components at one time. For example, you can create several segments that contain no bands, and then create one segment to contain the band or bands you want used for playback. When you play all the segments simultaneously, only the segment containing bands controls the instrument settings. For information about playing multiple components, see Primary Segments and Secondary Segments.

This technique provides extra flexibility for using a single band with numerous segments at one time. You can use this method regardless of whether the segment containing the band is a primary segment or a secondary segment. Similarly, it does not matter if you designate a segment as a controlling segment.


Band Conflicts with Continuous Controllers

Volume and pan settings can be included in continuous controller tracks contained in sequences or patterns. If you are not aware of them, such settings can create unexpected results when you play a segment or style. For example, if you make changes to volume and pan settings in a band file, they can appear to work only for a short time. This is because they are overridden by settings in the continuous controller tracks which are hidden from view unless you open the tracks.

This problem occurs frequently with imported MIDI files. When you import a MIDI file as a segment or a style pattern, a band containing instrument sound assignments is inserted into the Bands track. The unified volume and pan mixing buttons in the band are clustered at the lower left edge of the band editing window, showing a volume setting of zero and a pan setting of L63 (hard left). Also, the Properties window for each PChannel shows that the volume and pan settings are not selected and inactive. The actual volume and pan settings imported with the MIDI file are contained in continuous controller tracks. The continuous controller tracks are displayed in the maximized sequence tracks when you import a MIDI file as a segment, or in the maximized parts when you import a MIDI file as a style pattern. See Importing MIDI Files.

Continuous controller settings are not overridden by settings in a band. As a segment or style plays, the most recent settings are used for volume and pan, regardless of whether those settings occur in a band or in a continuous controller track. To use volume or pan settings in a band without their being affected by settings in continuous controller tracks, you must delete settings in the tracks, or delete the tracks themselves. For information about editing Continuous Controllers, see Continuous Controllers.


Style Designer

A style is the most essential unit of music content authored in Microsoft® DirectMusic® Producer. You can design a style file to reproduce the sound and feel of a particular music genre, such as bluegrass, Latin, or funk; or to evoke a particular setting, such as a futuristic space scene or a medieval castle. A style can contain hundreds of melodic phrases and rhythmic patterns that follow the traditional playing practices used by live musicians of a specific genre. It can also contain one or more bands matching the typical instrumentation used in the genre.

DirectMusic Producer uses sophisticated logic to combine suitable melodic phrases, patterns, and rhythms that would typically be played by live musicians, thus creating a constantly changing piece of music that sounds different with each listening. A typical style has a nearly infinite number of possible pattern combinations that can be played, making a piece sound as if it were a continuous stream of ever-changing music data. Because small amounts of data are looped and reused, a style takes up little disk space on the computer when compared to a typical MIDI file.

The ability for a style to sound different with every performance is called variability. This variability also makes it possible for a piece to change interactively, in response to the user's actions. For more information about the concepts of interactivity and variability in DirectMusic Producer, see the Introduction.


Using Styles

A style is used as a component of a segment. In a segment, you can plan the use of a style over a specific number of measures. In each measure, you specify a chord over which the style plays. The patterns, and melodic phrases in the style adjust to the chords they encounter. As the segment plays, it combines various patterns in the style. The pattern combination can be random or can be based on a set of pattern options, depending on the parameters you set. Furthermore, each time the segment loops to the beginning, the user hears new variations of the style patterns. The segment enables you to control the intensity or groove level used when playing the style, and whether to insert embellishments—intro, fill, break, and end—in the performance.

A style is also used as a source file for music data in a Web page, computer game, or other interactive software application. A software developer can use the DirectMusic system components in the Microsoft® Windows® operating system to combine a style with other DirectMusic Producer files at run time. This causes a new performance to be composed while the software application, Web page, or computer game is in use. A well-designed piece contains commands for playing groove levels and embellishments from the style and for choosing chords from the chordmap, thus yielding an interesting, new performance of the style at run time.

For more information about embellishments, groove level, and segments, see the following:

  • Embellishments
  • Groove Levels
  • Segment Designer


Style Structure

Numerous, predesigned style files are included with DirectMusic Producer. They contain music patterns, embellishments, and motifs that imitate the sound of a music genre or evoke a particular atmosphere. The style files also contain bands to match that particular genre.

The following illustration is a graphic representation of the structure for a simple style.

The structure for this style contains:

  • Patterns

    Groupings of melodic and rhythmic statements that play melodic shapes and rhythms. Patterns often imitate the playing practices of instruments in a music genre. Various lengths of patterns are used in different situations where a shorter or longer pattern is played by the band.

  • Embellishments

    Intro, fill, break, and end patterns for special use at points in the performance. This can include transitions to or from a different pattern or style.

  • Motifs

    Specific types of patterns or sound events that can be triggered on command. Motifs can play individually or together, and can be interactively layered over patterns already playing.

  • Bands

    Collections of instrumental sounds and MIDI program settings, including downloadable sounds (DLS). Bands can contain up to 999 instruments on 999 individual tracks.

  • Multiple Variations

    For added interest and variability, a pattern can contain as many as 32 variations that each instrument can play. You can shape each note in a variation to respond in different ways when used in different rhythmic and harmonic contexts. When DirectMusic signals an instrument to play a pattern over a chord, it randomly selects among several variations, depending on the limits you set. A well-composed style results in the band members playing numerous combinations of variations that blend in ever-changing mixtures that rarely repeat.


Style Designer Window

Opening a style launches Style Designer and displays the following window.

The Style Designer window shows an overview of the contents and basic properties of a style. Using the Style Designer window you can:

  • Set the time signature and grid

    You can choose from several standard time signatures (shown here as 4/4) and the value for beat subdivision (shown here as a 16th note). For more information, see Setting a Style Time Signature and Grid.

  • Set the tempo

    You can set the tempo, which is defined in beats per minute. For more information, see Changing a Style Tempo.

  • Choose a band

    You can choose from a list of bands designed for the style, or imported from other styles. One band can be designated as the default band for the style. For more information, see Choosing a Band for the Style.

  • Insert, copy, and delete patterns, embellishments, and motifs

    You can insert new patterns, embellishments, and motifs, delete unwanted patterns, embellishments, and motifs, or paste patterns, embellishments, and motifs from other styles. For more information, see Inserting, Copying, and Deleting Patterns.

  • Set lengths, groove ranges, and chord rhythms for patterns

    You can choose settings for a pattern in the Style Designer Property window. For more information, see Pattern Properties.

  • Open a pattern or motif, launching Pattern Editor

    A resizable splitter bar separates the patterns and the motifs in the Style Designer window. You can edit the notes and rhythms of patterns and motifs using Pattern Editor. For more information, see Pattern Editor.

For a description of patterns, embellishments, and motifs, see Style Structure. For information about adding and removing patterns, embellishments, and motifs, and about changing time signature, grid, tempo, and band settings, see Editing a Style.


Opening a Style

A style file in the project tree has the extension .stp, as shown in the following illustration.

The style icon and file name, as shown in the illustration, match those that you see in Windows Explorer.

You can add a style to the project tree by loading a style that has been saved or by creating a new style. For more information, see Adding Existing Components to the Project Tree and Creating New Projects and Components.

After a style is placed in the project tree, you can double-click the style icon to display the internal icon and name in the style file.

The internal name and icon are used to reference a file within the DirectMusic Producer program. They do not appear in Windows Explorer. For more information about file names and internal names, see Project and Component Names in the Project Tree

Double-click the internal icon to open a style.


Adding an Existing Style to the Project Tree

You can load an existing style into the project tree and open it. Numerous predesigned style files are included with DirectMusic Producer. For information and instructions about adding an existing component to the project tree, see Adding Existing Components to the Project Tree.

After a style has been added to the project tree, you can double-click its icon to launch Style Designer and display the style's contents.


Creating a New Style

You can create a new style in which you set up new patterns, motifs, grooves, and embellishments. After it is saved, a style is stored in the current project tree for use with segments.

When you double-click the icon of a new, empty style file in the project tree, the following window is displayed.

A new style contains the following elements:

  • Single default band which is the same as the default band in Band Editor
  • Single default pattern with the name Pattern1
  • Default time signature of 4/4
  • Default grid using the eighth note
  • Default tempo of 120 beats per minute

No embellishments or motifs are included in a new style.


Editing a Style

You can edit a style by clicking its icon in the project tree.

You can design and edit a style through one of three environments, depending on which part of the style you are working with. These three environments are interrelated:

  • Style Designer Window

    The Style Designer window is used to organize a style's overall structure.

  • Pattern Editor

    Pattern Editor is used to design the playback behavior of individual patterns, including embellishments and motifs.

  • Band Editor

    Band Editor is used to design the bands that play the style.

Note Pattern Editor is considered to be contained within the Style Designer module, while Band Editor is considered a separate editing tool that can be accessed from within Style Designer.


Setting a Style Time Signature and Grid

You can edit a style's time signature and grid in the Style Designer window by clicking the Time Signature/Grid button, shown in the following illustration.

Clicking the button opens a window similar to the following.

Values for the Beats Per Measure field range from 1 to 100. The Beat field contains a drop-down list with the following values for the beat: 1, 2, 4, 8, 16, or 32, representing a whole note, half note, quarter note, eighth note, sixteenth note, and thirty-second note.

The Grid field controls the number of divisions for each quarter note value that is displayed in a style's piano roll and can affect several editing functions. For time signatures with a beat value other than 4, the grid values are displayed in a range from 1 to 24 parts per quarter note. If the beat value is 4, several grid value choices are added to the list, including triplet divisions at various levels.

To change the time signature and grid

  1. In the Style Designer window, click the Time Signature/Grid button.
  2. In the Beats Per Measure box, select a numerator.
  3. In the Beat list box, select a denominator.
  4. In the Divide Beat box, select a minimum note value for the style to use.
  5. Click OK.

Note You can also edit the time signature and grid in the Style Properties window.


Changing a Style Tempo

The tempo of a style is displayed in the Style Designer window and can be adjusted.

To change the tempo

  • In the Tempo box, select the tempo.

You can also edit the style's tempo in the Style Properties window, or you can change the value in the Tempo box when the style is the active component.


Choosing a Band for the Style

You can select the current band, for auditioning purposes only, through a drop-down list of all bands in a style. You can define the default band of a style by selecting a band in the drop-down list and selecting the Default check box to the right of the list.

To change the band

  1. In the Style Designer window, click the Bands box to display a drop-down list.
  2. Select a band from the list.
  3. If the band is not in the list, add bands to the style in the project tree. For more information, see Adding an Existing Band to the Project Tree.
  4. To designate the band as the default band for the style, select the Default check box next to the Bands list.


Inserting, Copying, and Deleting Patterns

You can insert a new pattern or copy a pattern and paste it in the Style Designer window. You can also insert a new pattern in a style's list of patterns shown in the project tree.

To insert a new, empty pattern

  1. In the Style Designer window, click a pattern to select it.
  2. Press the INSERT key.

    or

    On the Edit menu, choose Insert. A new, empty pattern is inserted in the Pattern list. The new pattern is named Patternn where n is equal to the lowest number not yet used in the list of pattern numbers.

To copy and paste a pattern

  1. In the Style Designer window, click a pattern to select it.
  2. On the Edit menu, choose Copy.
  3. On the Edit menu, choose Paste. A copy of the pattern is inserted in the Style Designer window. A number is placed at the end of the copy name, equal to the number of copies of the pattern you have inserted in a work session. If a PatternA was copied, new copies are named PattenA1, PatternA2, and so on.


Default Pattern

When you create a style or insert a pattern in a style, a default pattern is placed in the Style Designer window.

By default, the Style Designer window contains the following information:

  • Name

    Pattern1

  • Length

    One measure

  • Groove Range

    1 to 100

  • Embellishment Designation

    None

  • Chord Rhythm

    The vertical line and marks ( | ' ' ' ) represent a whole measure consisting of one downbeat followed by three beats.

For information about how to edit the properties of a pattern and create its music content, see Pattern Editor.


Style Properties

A style has numerous properties that you can assign to it in a Properties window.

To display the Properties window for a style

  1. In the project tree, right-click the icon next to the style's internal name.
  2. Choose Properties on the shortcut menu. The Properties window for the style is displayed.

Two different tabs are available in the Properties window:

  • Style Tab

    The Style tab contains the primary setup for the style.

  • Info Tab

The Info tab contains the general information fields of a style, including a setting for editing the globally unique identifier (GUID) of the style.

In some cases, a property can be edited directly in the Style Designer window or the project tree. The following table lists the properties and where you can edit them.

Property | Edit in the internal icon properties window? | Edit in the Style Designer window? | Edit in the project tree?
Name (internal) | Yes, in Style Tab | — | Yes
Tempo | Yes, in Style Tab | Yes | —
Time Signature | Yes, in Style Tab | Yes | —
Grid | Yes, in Style Tab | Yes | —
Category | Yes, in Style Tab | — | —
Subject (optional) | Yes, in Info Tab | — | —
Author (optional) | Yes, in Info Tab | — | —
Copyright (optional) | Yes, in Info Tab | — | —
Version (optional) | Yes, in Info Tab | — | —
Information (optional) | Yes, in Info Tab | — | —

Note A Properties window is available when you right-click the icon next to a file name in the project tree. In this window, you can enter a name for the run-time file created when you choose the Runtime Save As command. For more information, see the Introduction.


Style Tab

The Style tab contains the primary setup for the style.

This window controls the following settings for the style:

  • Name

    The internal name to assign to the style component.

  • Tempo

    Expressed as beats per minute.

  • Time Signature

    The time signature to use when creating the style—the number of beats per measure and what type of note gets the beat.

  • Grid

    The smallest note value used in the style's patterns.

  • Category

    The music genre of the style. This descriptive text is stored in the Properties window for your reference only.


Changing Properties in the Style Tab

The Style tab contains several important properties for the style.

To change the internal name

  1. Right-click the icon next to the style's internal name and select Properties on the shortcut menu.
  2. In the Properties window, click the Style tab.
  3. Double-click the Name box and type a new name. The name can be up to 20 letters. The internal name in the project tree is updated automatically.

You can also change the internal name of the style in the project tree. For more information, see Changing File Names and Internal Names.

To change the tempo

  • In the Tempo box, select a new tempo.

You can also change the tempo through the Style Designer window.

To change the time signature and grid

  1. In the Style tab, click the Time Signature/Grid button. The following window is displayed.

  2. In the Beats Per Measure box, select a numerator.
  3. In the Beat list, select a denominator.
  4. In the Divide Beat box, select a minimum note value for the style.
  5. Click OK.

You can also change the time signature and grid through the Style Designer window.

To change the category

  1. Click the Category box or select any text in the box.
  2. Type in the new text.


Creating a New Pattern

Patterns make up the main body of a style. You can add any number of new patterns to a style.

You can design patterns so that they serve different purposes:

  • Various phrase lengths
  • Music purposes
  • Different intensity levels (groove levels)

You create a new pattern in a style by adding a new pattern to the list in the Style Designer window. You can then adjust the properties of the pattern, such as its length, time signature, or groove range, and then double-click the new pattern to open it using Pattern Editor.

In addition to regular patterns, you can create special patterns called embellishments that are generally short and used for one of four roles in the performance of a piece:

  • Intro
  • Fill
  • Break
  • Ending

You can also create a custom embellishment that uses any name you want. For information about embellishments, see Embellishments.


Pattern Properties

For each pattern in the Style Designer window, you can open a properties window in which you set the pattern's name, length, groove range, embellishment, and chord rhythm properties.

The Pattern Properties window contains the following settings:

  • Name

    You can enter a name in the Pattern Name box. In this illustration, the name is Pattern 1.

  • Length

    You can click the Length button to choose a length for the pattern. See Pattern Length.

  • Groove Range

    You can give a pattern a groove range from 1 to 100. For information, see Groove Levels.

  • Embellishment Designation

    You can assign the role of an intro, fill, break, or end to a pattern. For information, see Embellishments.

  • Set Chord Rhythm

    You can assign a chord rhythm of a whole measure, half measure, every beat, or selected beats. This setting controls how frequently chords can change in the pattern. For information, see Chord Rhythm.


Pattern Length

You can click the Length button in the Pattern Properties window to set a length for a pattern. You can choose any number of measures from 1 through 999. Because patterns generally loop repeatedly during playback, a typical length is from one to four measures.

Shortening a pattern removes measures from the end of the pattern. Thus, any note data in the measures that you remove is also lost.

Parts within a pattern can have different lengths than the pattern. For information, see Part Length.


Pattern Time Signature

You can click the Time Signature/Grid button in the Pattern Properties window, shown in the following illustration, to set a time signature for a pattern.

Clicking the button opens a Pattern Time Signature and Grid window.

Values for the Beats Per Measure field range from 1 to 100. The Beat field contains a drop-down list with the following values for the beat: 1, 2, 4, 8, 16, or 32, representing a whole note, half note, quarter note, eighth note, sixteenth note, and thirty-second note.

The Grid field controls the number of divisions for each quarter note value that is displayed in a style's piano roll and can affect several editing functions. For time signatures with a beat value other than 4, the grid values are displayed in a range from 1 to 24 parts per quarter note. If the beat value is 4, several grid value choices are added to the list, including triplet divisions at various levels.

To change the time signature and grid

  1. In the Pattern Properties window, click the Time Signature/Grid button.
  2. In the Beats Per Measure box, select a numerator.
  3. In the Beat list box, select a denominator.
  4. In the Divide Beat box, select a minimum note value for the style to use.
  5. Click OK.

Note You can set a separate time signature for any part in a pattern. See Part Properties.


Groove Levels

You can design patterns in a style with higher or lower levels of intensity, called groove levels. For example, a highly active pattern might contain lots of rhythmic activity, complex melodic patterns, and several instruments playing at once. This is a high groove level. An inactive pattern with a low groove level might contain several simple repetitions with little rhythmic variety and use only a few instruments.

After you create a pattern, you can assign it a range of groove levels, from 1 to 100. Generally, the groove levels can be organized using 1 as the lowest intensity level and 100 as the highest. However, you can use a narrower choice of numbers, for example, from 1 to 20, to give your styles a less complex array of intensity levels. You also can use any groove level number to represent any level of intensity. Groove level numbers are only indicators, for your convenience, and do not control the intensity of the pattern.

When you play a style in a segment, you can shape the overall intensity of the performance using whatever groove levels you set for the patterns in the style.

For example, you create four patterns named Pattern1, Pattern2, Pattern3, and Pattern4, and a segment can use all four patterns equally. The four patterns 1, 2, 3, and 4 range in intensity, from low, medium low, medium high, and high, respectively. To achieve a performnance that starts with high intensity, moves gradually to a low level and returns to high, you would set the segment to use the patterns in the following order.

4 - 3 - 2 - 1 - 2 - 3 - 4 (high to low to high)

To create a segment of music, 14 measures long, using a variety of groove levels, you can deliberately set the segment to follow an overall shape, such as the one in this example. You accomplish this by placing groove changes in the groove track of the segment, leaving a couple of measures between changes. The following illustration shows an example of groove changes.


Default Groove Levels

When you create a new, empty pattern in a style, it has a default groove level range from 1 to 100. Because this is the full range of possible groove levels, the pattern responds to all groove levels that you insert in a segment.

If you do not include a Groove track in a segment, or do not insert groove levels in the Groove track, the segment uses a default groove level setting of 62. Any pattern with a groove level that includes 62 can potentially play in the segment. For example, because the default groove range in a pattern is from 1 to 100, the groove level of 62 is included. Thus, a new segment with no groove changes is always able to use a new pattern.


Assigning a Groove Range to a Pattern

You assign a groove range to a pattern by giving it a numeric intensity level. Usually, a pattern has a range of levels over which it responds to the groove commands you place in a section—for example, groove levels 26 to 50, or 80 to 100. You assign a pattern's groove range in its Properties window.

You can assign any groove range to a pattern. The numbers you assign do not change the music in a pattern; they merely indicate the relative intensity or activity of a pattern when you use the style in music projects. If you feel a pattern should be used only in the most intense or active parts of a piece, assign it a high groove level, for example, 90 to 100. A broader range, for example, 60 to 100, means the pattern could play during high intensity parts of the piece as well as during less intense parts. Assigning a low range, for example, 1 to 20, means the pattern would play only when the piece is at its lowest level of intensity.

Most styles provided with DirectMusic Producer have patterns that are organized into four general ranges of intensity. You can use any range of numbers for any level, but in lieu of creating your own system, you can use the following set of groove level ranges to organize the patterns in a style.

If the pattern has this intensity level | Assign the pattern this groove range
Low intensity | 1 to 25
Medium-low intensity | 26 to 50
Medium-high intensity | 51 to 75
High intensity | 76 to 100

To work with a wider variety of groove range choices, you can organize any system you like. Here is an example of range levels organized into six levels instead of four.

If the pattern has this intensity level | Assign the pattern this groove range
Very low intensity | 1 to 16
Low intensity | 17 to 32
Medium-low intensity | 33 to 50
Medium-high intensity | 51 to 66
High intensity | 67 to 83
Very high intensity | 84 to 100

It is not required that the groove range of a pattern conform to the numeric boundaries used for only one level. For example, you could give a pattern a groove range of 34 to 77 and the pattern will play if it encounters a range of groove commands from 37 to 77, spanning three of the six levels you set up.

Conversely, you could give a pattern a groove range of 39 to 43. In this case, the pattern responds only to a narrow range of groove commands from 39 to 43.

Multiple groove levels in a style are not essential, but they add variety. You can create any number of high-intensity, low-intensity, or medium-intensity patterns in a style and assign any groove range to them. With a wide variety of patterns and groove levels in a style, only some of them play when a particular level of intensity is required.


Assigning a Single Groove Level

You can deliberately assign a single groove level to a single pattern in order to exercise control over when the pattern plays in a segment. Calling for that specific groove level in a segment forces DirectMusic to use the corresponding pattern.

For example, if a pattern in a style has a groove range from 47 to 47 and no other patterns in the style include 47 in their groove ranges, then a groove change of 47 in a segment causes that specific pattern to play. If two or more patterns have a groove range of 47 to 47, or if another pattern in the style has a range that includes 47 (for example, 35 to 50), then DirectMusic selects randomly between the patterns.


Legacy Groove Levels

Some style files were created before the release of DirectMusic using the Interactive Music Architecture. See Background. In older style files, the groove levels were divided into four defined categories, A, B, C, and D. A represented low intensity, B represented medium-low, C represented medium-high, and D represented high intensity. When DirectMusic Producer encounters a style of this type, the groove levels are converted to a numeric value, as shown in the following chart.

Old groove level | Converts to this groove range
Groove level A | 1 to 25
Groove level B | 26 to 50
Groove level C | 51 to 75
Groove level D | 76 to 100


Creating Multiple Grooves

There are two recommended methods for creating multiple grooves. Both methods involve starting with one pattern and using it as a basis for other patterns:

  • Begin with a low-intensity pattern and gradually add material to create medium-low, medium-high, and high-intensity patterns.
  • Begin with a high-intensity pattern and gradually delete material to create medium-high, medium-low, and low-intensity patterns.

By modifying the original and saving the changes at various intervals, you can create multiple versions with increasingly higher or lower levels of intensity. The following approach is recommended for starting with a low-intensity pattern and creating grooves of ever-increasing intensity. If no low-intensity pattern exists, you can create a completely new pattern. For more information, see Creating a New Pattern.

To create a medium-low groove based on a low-intensity groove

  1. In the Style Designer window, right-click a low-intensity pattern and choose Rename.
  2. Enter a name for the pattern, such as Pattern1A, identifying it as having a low-intensity level, and click the Style Designer window to accept the name change.
  3. In the Style Designer window, right-click the renamed pattern and choose Properties on the shortcut menu.
  4. In the Groove Range window, enter 1 for the Bottom range and 25 for the Top range, and close the Properties window.
  5. In the Style Designer window, click the renamed pattern to select it.
  6. On the Edit menu, choose Copy and then Paste. A copy of the pattern is inserted in the Style Designer window's Pattern list.
  7. Right-click the copied pattern, select Rename, and enter a new name, such as Pattern1B, to indicate that it has medium-low intensity.
  8. In the Properties window of the copied pattern, enter 26 for Bottom and 50 for Top in the Groove Range window.
  9. Double-click the copied pattern to open it in Pattern Editor. You can now enhance this pattern by adding extra parts and notes.

To create a collection of increasingly active patterns, you can repeat this procedure, beginning with Step 7. You can create as many patterns as you want, each based on the previously enhanced pattern. As the intensity in the patterns increases, set the groove range higher and higher until all four groove levels are covered by at least one pattern.


Chord Rhythm

When you create a pattern, you give it a chord rhythm that controls where a new chord can be applied, or in other words, how often the chord can change to a different chord. For example, if the parts in a pattern use linear statements that need to play though one whole measure without the chord changing beneath them, you should assign a whole-measure chord rhythm to the pattern. The pattern will play only in a section of a segment where the chords change with a frequency of one chord per measure, or less. If the chords in the segment change more frequently than once per measure, the pattern is not played and another pattern is selected.

You can assign a variety of chord rhythms to patterns. If a pattern is only one measure long, you can choose from four chord rhythms:

  • Whole Measure

    The chord can change once every measure.

  • Half Measure

    The chord can change once every half measure. In odd meters, the change occurs on the beat following the middle beat of the measure.

  • Beat

    The chord can change once every beat.

  • Any Combination of Beats (available only for multi-measure patterns)

    The chord can change only on selected beats throughout the pattern. You can choose any beat in any measure of the pattern.

The chord rhythm properties of each pattern in a style are visible in the Style Designer window, shown in the following illustration.


Using Chord Rhythms

Many patterns played by melodic instruments use statements that are best played using one chord for the entire statement. A statement can be a music riff, a rhythmic figure, or some other musical expression. If a melodic statement extends for a full measure and would sound poor if the chord changed in the middle of the statement, you can assign it a whole-measure chord rhythm. The pattern will play only in those places where a chord lasts for at least a full measure. If the melodic statement extends beyond a single measure and changing chords would sound poor, then assign a long enough chord rhythm so the statement plays only where chords are not changing before the statement is completed.

In contrast, many accompaniment parts consist of short statements that are not adversely affected when chord changes occur frequently. A pattern using short statements that are only one beat long might sound fine with the chord changing on every beat. For example, a piano part that plays an arpeggio on each beat can sound fine if a different chord occurs on each beat. You can assign a beat chord rhythm to such a pattern, and the pattern plays where chords change frequently, as well as where chords change infrequently.

Note Choosing the beat chord rhythm setting includes both the whole-measure and half-measure settings. The beat setting allows a pattern to play when chords change frequently and infrequently.

Assigning a chord rhythm does not dictate that a chord change must take place according to that rhythm. Rather, you are setting a pattern so it can receive a change in chords with a given frequency if the need arises. A pattern's chord rhythm is a minimum number of beats that a pattern can play before a chord change is allowed.

Whether a chord change occurs depends on the chords in a chordmap and its chord path window, or the chords that you place in a section, that are used to play the style. If a style is playing and encounters a series of chord changes, it will play patterns with chord rhythms that meet the minimum requirements for the frequency of chord changes.

Generally, when a pattern fits a whole-measure chord rhythm, you assign only that rhythm. However, a pattern that fits a half-measure chord rhythm should fit a whole-measure rhythm as well and, thus, has both whole and half measures in its chord rhythm setting. Likewise, a pattern that fits a beat chord rhythm should fit a whole-measure and half-measure rhythm as well.


Setting a Chord Rhythm

You set the chord rhythm of a pattern in the Pattern Properties window.

To assign a chord rhythm to a pattern

  1. In the Style Designer window, right-click a pattern.
  2. Choose Properties on the shortcut menu. A Properties window similar to the following is displayed.

  3. Click Set Chord Rhythm. A Set Pattern Chord Rhythm window similar to the following is displayed.

  4. Select the appropriate chord rhythm and click the OK button to close the Set Pattern Chord Rhythm window. The chord rhythm you choose is displayed in the chord rhythm section of the Pattern Properties window.
  5. Click the Close button to close the Pattern Properties window. The chord rhythm you choose is displayed in the Style Designer window.


Pattern Editor

Patterns can be created as part of a style or a segment. A single pattern is contained in a Pattern track of a segment, while multiple patterns can be contained in a style. Double-clicking a pattern in a style or segment opens Pattern Editor.

Note A pattern can also contain motifs, which are also edited using Pattern Editor. Most use of Pattern Editor applies equally to creating both patterns and motifs. For additional information about editing a motif, see Motifs.

Pattern Editor consists of the following elements:

  • Timeline

    Includes a time signature for the pattern and displays measures and beats, with an option to show elapsed time in seconds.

  • Part List

    Displays an entry for each part. For convenience, multiple instances for a part can be added to the list and the piano rolls displayed simultaneously.

  • Part Editing Window

    Displays a graphic representation of all MIDI notes and events for each instrument part in the pattern.


Part List

When you open a pattern, Pattern Editor lists all parts in that pattern. Parts are numbered from 1 through 999. The following illustration shows an example of parts listed in an open pattern.

Each part in the list contains three forms of identifying information. Shown in the list from left to right, these are:

  • PChannel number

    The performance channel used to play the part.

  • PChannel name (in parentheses)

    The name you use to describe the PChannel. This name is used for that PChannel in all DirectMusic Producer files within the project.

  • Part name

    The name you use to describe the part. This name appears only within the pattern.

For any part in the list , you can open a Part Properties window to modify the Performance Channel (PChannel) number, the PChannel name, or the part name, and adjust playback behaviors. You can also edit the PChannel name in the Performance Channel Properties window (opened in Band Editor).

If the pattern contains fewer than 999 parts, you can add new parts to the list. For more information, see Adding a New Part to a Pattern.

You can also add a display copy of a part to the list and use the copy to display different variations while you work on their music content. The display copy is not a new, separate part in the pattern, but is simply an additional instance of a part that is already in the pattern.

You can also use a display copy of a part to contain additional voices of the same instrument sound. For example, you might create a part on PChannel 1 with a PChannel name of "trumpet" that contains lead trumpet material, and a display copy of the part on the same PChannel that contains material for trumpets 2 and 3. For more information, see Adding a New Part to a Pattern.


Part Editing Window

Each instrument part in a pattern has an editing window that displays its notes and playback data. Initially, the entire part editing window is displayed in a minimized version in which the notes are represented graphically as thin, colored lines. The following illustration shows three minimized part editing windows.

To expand a part editing window, double-click the part or click the Maximize button on the right of the window.

The following illustration shows an open, or maximized part editing window.

In the maximized view of the window, the notes of an instrument part are represented as rectangles on a grid of measures and beats. The part editing window contains all note information and data for continuous MIDI controllers, such as pitch bend and filters. You can enter new notes in a part by recording from a MIDI input device, or by using the mouse to place notes in the part editing window.

There are two ways to view the contents of a part editing window.

  • Piano roll notation
    This is shown in the preceding illustration. See Piano Roll Notation in Pattern Editor.
  • Hybrid notation
    This is a special combination of graphic display and conventional notation. See Hybrid Notation in Pattern Editor.

The following illustration shows the maximized view of an instrument part using piano roll notation, followed by the same MIDI file displayed in hybrid notation.

This illustration shows how less vertical space is needed to display the note contents of a part in hybrid notation. Because some pitches can be represented using an accidental, hybrid notation uses about half the vertical space that piano roll notation uses to display the same score.

Whenever a part editing window is maximized in Pattern Editor, you can switch between the two types of notation.

To switch between piano roll notation and hybrid notation

  • Click the maximized part editing window and press the H key on the computer keyboard to toggle between the two notation options.

    or

    Right-click the maximized part editing window, click Views on the shortcut menu, and then choose Piano Roll or Hybrid Notation.

The following topics provide additional information about displaying, entering, and editing notes in Pattern Editor:

  • Piano Roll Notation in Pattern Editor
  • Hybrid Notation in Pattern Editor
  • Entering and Editing Notes in Pattern Editor

Variations Strip in the Part Editing Window

When you maximize a part editing window, a Variations strip, shown in the following illustration, is displayed at the top of the editing window.

For information about creating variations and using the Variations strip, see Part Variations.


Piano Roll Notation in Pattern Editor

Pattern Editor provides editing windows for each part in a pattern. You can double-click a part editing window to maximize it and display its contents. A maximized editing window shows the notes of the part and a pitch guide to show relative pitch positions for the notes in the part.

By default, maximizing a part editing window in Pattern Editor displays the contents of the part using piano roll notation. The following illustration shows Pattern Editor displaying a part in piano roll notation.

When viewing the contents of a maximized part editing window, you have a choice of viewing the part using piano roll notation or hybrid notation.

To switch between piano roll notation and hybrid notation

  • Click anywhere in the maximized part editing window and press the H key on the computer keyboard to toggle between the two notation options.

    or

    Right-click anywhere in the maximized part editing window. Click Views and then choose Piano Roll or Hybrid Notation.

In both piano roll notation and hybrid notation, the notes of a part are represented as rectangles placed on a grid of measures and beats. The editing region is aligned horizontally with the timeline, with colored vertical lines that indicate the following:

  • Heavy, black vertical lines represent measure barlines.
  • Thin, blue vertical lines represent beats.
  • Thin, gray vertical lines represent beat subdivisions or grid divisions. The grid for a pattern is set in the Style Designer window using the pattern properties.

Horizontal placement of note rectangles represents the time parameter. The left end of the note rectangle represents the start time of the note, the right end represents the end time, and the length of the rectangle represents the length of the note. The height of the note represents the relative velocity of the note.

The pitch of a note in Pattern Editor is determined by its vertical placement, relative to the pitch guide at the left of the editing window. In piano roll notation, the pitch guide is a keyboard showing the black and white keys of a ten-octave keyboard. Notes in the piano roll window are aligned vertically with the piano keyboard to show which pitch a note has. Each C is marked with the appropriate octave. C 5 represents middle C, equal to MIDI note 60.

  • For information about pitch names and MIDI note designation, see Pitch Names and MIDI Numbers.
  • For information about entering and editing notes using piano roll notation, see Entering and Editing Notes in Pattern Editor.
  • For information about displaying and editing notes using hybrid notation, see Hybrid Notation in Pattern Editor.


Hybrid Notation in Pattern Editor

When viewing the contents of a maximized part editing window, you have a choice of viewing the part using piano roll notation or hybrid notation.

Hybrid notation combines piano roll notation and standard music notation to represent music. The notes of a part are represented as rectangles, just as in piano roll notation, but a grand staff (combined treble and bass clefs) is used to show which pitch a note has. This makes it possible to fit the entire range of ten octaves in a compact vertical area, within a single window, so the information can be viewed without scrolling. The following illustration shows Pattern Editor with a part in hybrid notation.

Rectangular notes are positioned on the lines and spaces of the staff, just as traditional notes are in standard music notation. In addition, accidentals are used as modifiers for the rectangular notes, just as in standard notation.

The pitch of a note in Pattern Editor is determined by its vertical placement relative to the pitch guide at the left of the editing window. In hybrid notation, the pitch guide is a grand staff showing both the treble and bass clefs. Notes in the piano roll are aligned vertically with the grand staff. Each pitch position on the grand staff corresponds to a MIDI pitch, as in piano roll notation. For example, middle C is equal to MIDI note 60. For more information, see Pitch Names and MIDI Numbers.

Rectangular notes are placed on a grid of measures and beats, as in piano roll notation. The editing region is aligned horizontally with the timeline, with colored vertical lines indicating the following:

  • Heavy, black vertical lines represent measure barlines.
  • Thin, blue vertical lines represent beats.
  • Thin, gray vertical lines represent beat subdivisions or grid divisions. The grid for a pattern is set in the Style Designer window using the pattern properties.

Horizontal placement of rectangular notes represents the time parameter, just as in piano roll notation. The left end of the note rectangle represents the start time of the note, the right end represents the end time, and the length of the rectangle represents the length of the note. The overall height of the note represents the relative velocity of the note.

For more information about entering and editing notes using hybrid notation, see Entering and Editing Notes in Pattern Editor.


Custom DLS and Percussion DLS in the Part Editing Window Pitch Guide

When you use a custom downloadable sounds (DLS) instrument or a percussion DLS instrument in a part, the pitch guide displayed in piano roll notation shows the individual wave sounds assigned to each pitch. Wave names are not shown in hybrid notation.

The following illustration shows the editing window for a part that uses a custom DLS instrument. The DLS instrument has separate wave sounds, each assigned to a different range. The range assignment is reflected in the pitch guide so you can know which wave is used for each note in the editing region.

For a percussion DLS, the pitch guide shows the name of each wave sound in the DLS instrument. Typically, a percussion DLS has 128 separate wave regions. The name of each wave appears in the pitch guide so you can confirm which wave is used for each note in the editing region. The following illustration shows a part editing window with percussion DLS wave names.

The region or pitch of a wave sound is assigned in the DLS instrument. To change which wave is used for a selected pitch, you must open the DLS instrument using DLS Designer.


Entering and Editing Notes in Pattern Editor

You can enter new notes in a pattern in four ways:

  • Open a part editing window and right-click, then choose Insert. You can also hold the CTRL key and click.
  • Open a part editing window and enter notes using a MIDI input device in real time or step time.
  • Copy MIDI data from another pattern part and paste it in the part you are editing.
  • Import a MIDI file as a new pattern in the style. If necessary, you can copy and paste imported MIDI data between patterns and between parts in a pattern.

Note Before you can enter any notes into a pattern, you must click at least one Variation button to make the variation active. See Part Variations.

When you enter notes using the mouse or step-time recording, a default note length and velocity is used for each new note. The default length is equal to one grid space, set in the Style Designer window using the Pattern Properties window, and the default velocity is 100. When you enter notes using real-time MIDI recording, the length and velocity are determined by how you play the notes on the input device.

The pitch of a note in Pattern Editor is determined by its vertical position relative to the pitch guide. You can enter notes over a ten-octave range. For each part in the pattern, you can place notes in the range and octave that are appropriate to the instrument sound you use with the part, for example, the typical range of a flute.

After a note is entered, you can select and adjust its length, velocity, pitch, duration, start time, and end time, plus other parameters. You can also copy and paste the note, drag it to a new position, and place it in other variations and parts.

When you enter notes in a pattern, you assign one or more chords for composition that serve as the basis for the notes in all the parts in the pattern. The function of a note in the pattern is measured relative to the chord and the underlying scale of the chord. For more information, see Chords for Composition.

Note entry and editing is handled in much the same way for Pattern Editor and Sequence Editor. For complete information about note entry and editing in both editors, see Note Entry and Editing.


Chords for Composition

When you create a pattern, you assign one or more chords for composition that serve as the basis for the notes in the parts. You can use the default chord for composition, which is 2 C M7 occurring on the first beat of the first measure, and equals a middle range C major 7th chord, or you can insert one or more other chords.

The notes in a pattern are not calculated as specific pitches, such as C, D, or E, but according to their function in the chord, such as step 1, 2, or 3 of the chord's underlying scale. The function of a note in the pattern is measured relative to the chord and the underlying scale of the chord. For example, the note E is the third of the 2 C chord, and therefore functions as the third step of any chord it encounters. The note D is the second step of the 2 C chord's underlying scale. The note A# is the raised sixth step of the scale.

The chord for composition is displayed at all times in the Chords for Comp track of Pattern Editor, shown in the following illustration.

You can edit a chord for composition to choose a different root, chord structure, and underlying scale. For more information, see Editing the Chord for Composition.

Chords for composition are a convenient setting you can use to compose a pattern in a desired key. After you finish creating a pattern and its variations, the chords for composition are no longer used. The notes of the pattern are interpreted as steps 1, 2, 3, and so on for whatever chords the pattern encounters in other DirectMusic Producer components, such as a segment. Regardless of the chords for composition you use to create the pattern, the notes of the pattern are used by other components as if they are written in the key of C. This is true even if you use a chord for composition that is something other than a major chord, such as a minor or augmented chord.

For example, if you use a chord for composition of G minor, with a natural minor underlying scale, the notes G, A, Bb, D, and F are considered steps 1, 2, 3, 5, and 7 of the scale. For whatever chord the pattern encounters in a segment, the pattern plays using steps 1, 2, 3, 5, and 7 of that chord's underlying scale. If the pattern plays over a D major chord, then the pattern plays D, E, F#, A, and C#, which are steps 1, 2, 3, 5, and 7 of the D major chord's underlying D major scale.

Planning for Predictability

For a pattern to play over many types of chords with predictable results, use the following guidelines for choosing a chord for composition:

  1. Use a 4-note chord with a range less than the space of an octave.
  2. Use a 7-note chord scale.
  3. Include all chord notes in the chord scale.
  4. Use the same 4-note chord and 7-note chord scale on all four levels of the chord. For information about chord levels, see Simple and Complex Chord Structures.

If you want to use a pattern with a specific set of chords in a segment, you can design the pattern using those exact chords in the chords for composition track. Thus, you can design each measure in the pattern using a specific chord for composition, and then use that exact chord for corresponding measure in a segment. This provides complete predictability for what notes will play in a segment.

Using Unusual Chords

You can use any chords for composition that you like, including chords that do not follow the guidelines for predictable results. This includes complex chords and chords where the chord tones are not contained in the scale.

Note By default, all variations in a pattern can play on any chord. However, if you do not want a variation played with certain types of chords, you can disable the variation in relation to those chords. To do this, use the Variation Choices window to enable and disable certain chord types for each variation you create in a pattern.

You can enter as many different chords as you like in the Chords for Comp track, with a maximum of one chord per beat. For more information, see Using Multiple Chords for Composition.


Editing the Chord for Composition

You can change the chord for composition by right-clicking the chord and choosing Properties on the shortcut menu. This displays a Chord Scale/Inversion Properties window, shown in the following illustration, in which you can change the root and structure of the chord and its underlying scale. For more information, see Chord Properties Window.

If you change the properties of a chord for composition after you enter notes in a pattern, the notes are affected. For more information, see Effect on Existing Notes When Editing a Chord for Composition.

The chord for composition must use either a three-note or four-note chord in each of the four levels of the chord properties. You are not required to use traditional chords consisting of a root, 3rd, 5th, and 7th from a standard scale, but the underlying scale must contain only seven notes. In addition, the chord must consist of alternating notes of whatever scale you choose as the underlying scale for the chord. The bottom note of the scale is always used as the root, and the 3rd and 5th notes of the scale must be used as chord tones. The 7th step of the scale can be used as an added tone for the chord, or left as a scale tone. Also, there must be only one note in the scale between the root and 3rd, and one note between the 3rd and 5th.

Each level in the chord for composition must use notes that are contained within a major 7th interval—that is, less than one octave. If a level of the chord for composition extends beyond an octave, notes in the lower part of the chord may be ignored. In addition, this results in the pattern notes being incorrectly identified according to their function in the chord scale. If the bottom notes of a chord for composition are ignored, the scale function assigned to the pattern notes is offset by an interval of a third or more. This causes the pattern to play incorrectly with any chord in a segment. For information about the four chord levels in the Chord Properties window, see Chord Properties Window.


Effect on Existing Notes When Editing a Chord for Composition

When you change the chord for composition, notes in the pattern are transposed with the chord. Notes can also remain fixed on the original pitches. Use the Keep Constant command to choose between these options:

  • MIDI Note (M)

    Pattern notes remain constant if you change the chord for composition.

  • Functionality (F)

    Pattern notes are transposed with the chord for composition and its underlying scale. For example, if you change the chord from C major to C minor, all notes on the third of the chord change to Eb. If you change the chord from C major to F major, all notes in the pattern move up a perfect fourth. However, in this example, if the F chord uses a different underlying scale than the C chord, all pattern notes move to similar notes in the new scale.

To choose whether notes remain at fixed pitches or transpose when you change the chord for composition

  1. Right-click the Chord for Comp track.
  2. Click Keep Constant on the shortcut menu and choose MIDI Note (M) or Functionality (F). The letter representing the option you choose appears at the left of the Chord for Comp track.


Using Multiple Chords for Composition

You can enter as many chords as you want in the Chords for Comp track, with a maximum of one chord in each measure. This can become confusing if you mix chords of differing quality, such as major and minor, in a pattern. Nevertheless, you can insert an additional chord for composition in any measure of a pattern, except for measure 1, which always contains the initial chord for composition. You can select each chord for composition and edit its properties.

To insert a chord for composition

  1. Right-click the Chord for Comp track in any measure, except measure 1.
  2. Choose Insert on the shortcut menu. A Chord Properties window is displayed.
  3. Edit the properties of the new chord and click the Close button. The chord is added to the Chord for Comp track.

The chord for composition is applied to individual patterns in a style, so it is possible to have multiple patterns based on different keys within a style. For most purposes, it is recommended that you create styles with all patterns based on the key of C major, or C minor, to compose patterns based on a minor key. This makes it easy to view the notes of a style in terms of their scale positions relative to the note C.


Key Signature for a Pattern

You can right-click the Chord for Comp track of a pattern to enter a key signature for the entire pattern. A Chord Track Properties window similar to the following is displayed.

By combining the name of a key, such as D or F, and an appropriate number of flats or sharps for the key, you can choose any key, including major key signatures and minor key signatures. For example, you can enter the key root G, select the flats option, and enter a key signature of two flats to create the key of G minor. You can also use a combination of settings to create a custom key signature. For example, an F key root with zero flats creates a key based on the F Lydian scale.

To enter a key signature for a part

  1. In the Key Root box, type or select the name of the key root.
  2. Next to the Key Root box, click either #'s (sharps) or b's (flats) to select whether the key signature uses flats or sharps.
  3. In the Key Signature box, type or select a number from zero to 7 to choose the number of sharps or flats in the key signature.

The key signature you enter is added to the Chord for Comp track, as shown in the following illustration.

If you view the part using hybrid notation, as in the preceding illustration, the key signature is shown in the grand staff of the pitch guide just as in standard music notation. Accidentals are also added in the editing region in front of notes that are affected by the key signature.

The key signature in a pattern affects only the notational display of the parts in the pattern. It does not alter the playback of the parts, with the exception of parts set to use Pedal Point play mode. For more information, see Pedal Point Play Mode and Pattern Key Signatures.


Adding a New Part to a Pattern

A pattern can have as many as 999 parts and you can add a new, empty part at any time. By default, each part in a pattern uses its own PChannel. For editing convenience, you can place a duplicate display of an existing part in a pattern. This part does not constitute a new and separate part in the pattern, but is simply an additional display of a part that already exists in the pattern. For more information, see Creating Additional Part Displays.

You can add as many new, empty parts as you want to a PChannel already in use. For example, you could create a flute melody part, a flute harmony part, and a flute solo part, all on PChannel 1. These are separate parts, though they use the same instrument sound. If you create a new, separate part on the same PChannel, it has no notes and has properties separate from those of the part originally on the PChannel.

To insert a new, empty part in a pattern

  1. Right-click the Pattern Editor window.
  2. On the shortcut menu, click Add Pattern Part(s). A window similar to the following is displayed.

  3. In the PChannel box, type or select the number of the PChannel to add a part to. By default, DirectMusic Producer chooses a PChannel number that is unused in the pattern.
  4. Click Create New Part. A part is added to the pattern with the PChannel you selected.


Creating Additional Part Displays

For editing convenience, you can duplicate an existing part and place it in a pattern. This part does not constitute a new part in the pattern, but is simply an additional display of a part in the pattern. You can use the extra display to view different variations while you work on their music content. You can enter as many separate displays of a part as you want in a pattern. This simplifies several editing procedures, such as copying material from one variation to another and displaying multiple variations.

The duplicate display always contains the same note information, the same variations, and the same properties as the original part display using the same PChannel. Changes made to one part display are automatically included in all other displays for that part, regardless of which variations are showing in one display or another.

Creating an additional part display is not the same as creating a separate part on the same PChannel. For example, you could create a flute melody and a flute harmony part on PChannel 1 and consider them separate parts, even though they use the same instrument sound. For more information, see Adding a New Part to a Pattern.

To create a duplicate display of a part in the pattern

  1. Right-click the Pattern Editor window.
  2. On the shortcut menu, click Add Pattern Part(s). The following window appears.

  3. In the PChannel box, type or select the number of the PChannel to add a part to. By default, DirectMusic Producer chooses an unused PChannel number.
  4. If the PChannel is not used for any part, the Display Existing PartRef button is dimmed and unavailable. Click Create New Part to insert a new part in the PChannel.
  5. If the PChannel is in use by a part in the pattern, the Display Existing PartRef button is active and the message PChannel has one Part Reference is displayed. Click Display Existing PartRef to insert a new part display for the part that exists.
  6. If the PChannel is in use by multiple parts in the pattern, the Display Existing PartRef button changes to Choose Existing PartRef and the message PChannel has multiple Part References is displayed. Click Choose Existing PartRef to choose from the list of parts currently using the selected PChannel. A window similar to the following is displayed.

  7. In the list of parts using the PChannel, choose the part for which to create a display.
  8. A new part display is added to the pattern with the selected PChannel.


Linking Parts

You can link multiple parts within a pattern to ensure that all notes and controller information are the same in all parts. This is useful to reduce the overall size of a pattern, because multiple parts can share note and controller information. This also eliminates the need to duplicate material in the pattern.

As you create new patterns, or parts in a pattern, you can link them to any part where you want the same notes and controller information used. Thus, each time the linked part is used in playback, it references the note and controller information in the part it is linked to and plays the referenced information at the same time.

Note Although two parts may be linked, they do not necessarily follow the same variation order during playback. Even when playing simultaneously, linked parts can play different variations at different times.

You can create links between parts that use the same instrument sound and between parts that use different instrument sounds. For example, you can create separate parts for two woodwind instruments, such as oboe and bassoon, as shown in the pattern in the following illustration. By being linked together, the two parts always contain the same notes. Also, because each part uses a different instrument sound, each must be assigned a different PChannel. When parts are linked together, the letter L is displayed in front of their PChannel number in the Part list.

When linking parts, keep in mind that you may not want to link parts intended for different purposes in a pattern. For example, you would not want to link a melody part with a drum part. This would result in the two parts sharing the same notes and, thus, one or the other playing notes not characteristic of their usual music role.

A common use of linking is to create several patterns in a style that have similar material, but have increasing activity or use an increasing number of parts. You can create a series of patterns with increasing activity to form an array of groove levels. For more information, see Groove Levels. To create a pattern with a higher groove level by adding more parts to an existing pattern, you can link any parts in a new pattern to parts in the existing pattern and then create new material as needed in the new pattern.

Linking Parts Between Patterns

You can link a part from one pattern to a part in another pattern within the same style. As with linking parts within a pattern, the linked parts between patterns use the same notes and controller information during playback.

When choosing a part to link to, you can scroll through a list of every part in all the patterns of the style.

Linking Entire Patterns

You can link entire patterns as you create them, so that their parts match one another and are linked to play in matching pairs. Because motifs are a type of pattern, you can also link motifs together, or a pattern and a motif together. For more information, see Creating Linked Patterns and Motifs.

Part Variations and Linking Parts

When you link parts, whether in a pattern or between patterns, all 32 variations in a part are shared and the variations in the linked parts are identical. However, the variations play independently and do not necessarily play in the same order. For example, if part A and B are linked, they do not necessarily select the same variations during playback, even though they share identical variations. To lock the two parts together, so that they always play the same variations together, use the Variations Lock setting. For more information, see Variations Lock.

Creating and Linking a New Part

You can only link a part when you are creating it and the new part can only be linked to a part already in the pattern.

To create a new part that is linked to an existing part

  1. In Pattern Editor, right-click the Part list.
  2. Choose Add Pattern Part(s) on the shortcut menu.
  3. In the PChannel box, type or select the number of the PChannel to add a part to. By default, DirectMusic Producer chooses an unused PChannel number.
  4. Click Link to Existing Part. A window is displayed.
  5. Select the existing part to link the new part to.
  6. Click OK. A new part is added to the pattern with the selected PChannel.

Removing the Link from a Part

A link is removed from a single part, and you can remove a link so that you can edit parts independently. When only two parts are linked, removing the link from one part eliminates the link for both.

After a part is unlinked, it cannot be linked again to existing parts. The only time a part can be linked to an existing part is when you create it as a new part.

To remove the link from a part

  1. In the Parts Display area, right-click a part that is linked to another. The selection button of the part turns yellow and a shortcut menu is displayed.
  2. On the shortcut menu, choose Unlink Part Reference.


Creating Linked Patterns and Motifs

You can use the New Pattern command to link patterns and motifs. When you select a pattern and use this command, you create a duplicate pattern that matches the existing pattern. The duplicate pattern contains the same notes, parts, instrument assignment, and properties, and its parts are linked to the corresponding parts in the original pattern.

You can also create a motif that is linked to a pattern, or create a pattern that is linked to a motif.

To duplicate a pattern or motif with both copies linked

  1. In the project tree, right-click the Pattern folder or the Motif folder of a style.
  2. Choose New Pattern or New Motif from the shortcut menu, as appropriate. A window similar to the following is displayed.

  3. Select Create a pattern with parts linked to an existing pattern or motif.
  4. In the list of patterns and motifs, click the pattern or motif to duplicate.
  5. Click OK. A copy of the pattern or motif is inserted in the style and is linked to the pattern or motif you chose.


Importing a MIDI File as a Pattern

You can import a MIDI file into a new pattern or motif. The entire MIDI file is placed in the style as one long pattern. Because style patterns are traditionally short—two to four measures—you can divide the MIDI file into short sections and import each section as an individual pattern into the style.

After you import MIDI data into a style, you can open the pattern using Pattern Editor and edit notes in any way you choose. This includes dragging notes to different beats or pitches, copying and cutting notes, and pasting notes elsewhere in the same pattern or in other patterns. For more information, see Note Entry and Editing.

If the imported MIDI file is longer than you require, you can shorten the pattern in the Pattern Properties window. However, shortening a pattern removes measures from the end of the pattern, and MIDI data in the removed measures is permanently lost.

You can use the Cut and Paste commands to move MIDI data from one long pattern to other patterns or variations before making the pattern shorter. This saves MIDI data from being erased and transforms the MIDI data into several short patterns that can be looped and played in varied order.

To import a MIDI file as a pattern

  1. In the project tree, right-click the internal icon of a style.
  2. On the shortcut menu, click New and choose Import MIDI As Pattern.
  3. In the Import MIDI File to Pattern window, locate the MIDI (.mid) file to import and double-click it. The MIDI file is placed in the style as a new pattern.

The unaltered MIDI file is imported in its entirety and retains the following characteristics:

  • All note information
  • All continuous controller data
  • Tempo
  • Length
  • Instrument patch and channel assignments

The instrument patch and channel assignments are imported into the style as a separate group of settings called the band, in the same manner as when importing a MIDI file into a segment. The imported band is named Band1. Standard.

When you import a MIDI file as a segment or a style pattern, the unified volume and pan mixing buttons in the band are clustered at the bottom left edge of the band editing window, showing a volume setting of zero and a pan setting of hard left. The actual volume and pan settings imported with the MIDI file are contained in the continuous controller tracks. See Band Conflicts with Continuous Controllers.

When you import a MIDI file as a segment or style pattern, the initial band is inserted using a negative offset or -1 tick so instrument program changes will occur just prior to the beginning of the segment. See Inserting a Band at a Negative Offset.

Note: Regardless of the arrangement of channels in a MIDI file, DirectMusic Producer imports channels in ascending order 1-16. For information, see Imported PChannels.


Part Properties

Each part in the pattern (or in a Sequence track of a segment) has a Part Properties window, similar to the following illustration, that shows information about the part.

In general, changing the properties of a part does not affect the properties of the pattern containing it. For example, each part in a pattern can have a time signature and length that are different from the pattern.

In the Part Properties window, you can set the following properties for a part:

  • Part Name

    In the Name box at the upper left corner of the Part Properties window, you can enter any name for a selected part. The name serves as a reference about the type of music part; it is not used in or transferred to any other component. Part names are useful when you create multiple parts on the same PChannel. For example, you might have a part for lead trumpet and another part for the rest of the trumpet section. If these two parts use the same instrument, you can place them on the same PChannel. You can give the PChannel a name that describes its use, such as high brass, but you can also assign separate part names, such as lead or section, to the two parts in the pattern. If you create a part in a Sequence track using the same PChannel, you can give the part an entirely different name. Another use is in percussion parts. You might dedicate one part to hi-hat and another part to snare drum. These two parts share PChannel 10. You can use the part name to indicate which part in the pattern belongs to which percussion sound.

  • Performance Channel Number

    You can assign a part to any performance channel (PChannel) from 1 through 999. However, PChannel 10 is reserved for percussion parts. In addition, the 10th channel in each 16-channel group is reserved for percussion—for example, PChannels 10, 26, 42, and so on. For more information, see Performance Channels Reserved for Percussion.

  • PChannel Name

    The PChannel name is the name associated with a PChannel throughout the entire project. Thus, when you enter a PChannel name in the Parts Properties window, that name is applied to that PChannel throughout the project. In a segment, band or style pattern within the project, the same PChannel name appears next to the PChannel number.

    PChannel names are useful when you create new styles, bands or segments, because they help you track the PChannels that have been used in a style, particularly in other previously edited patterns. For example, you may have created a flute line on PChannel 23 in one part and named that channel flute melody. If the PChannel is named in the part, that name appears with that PChannel as you open and edit other styles, bands or segments in the project, or as you create other parts and patterns. The PChannel name also appears in the Output Status Toolbar when they are displayed.

  • Inversion Boundaries

    Sets the limits for how high or low a part can transpose when it plays over different chords. Notes beyond the boundaries are shifted one octave so they fall within the limits. The boundaries you choose affect only the part you are editing, and are not transferred to any other components, even if they use the same PChannels. For more information, see Inversion Boundaries.

  • Variations Lock

    Connects the variations of two or more parts in a pattern so that they play their variations in tandem. For more information, see Variations Lock.

  • Play in numerical order

    Sets whether variations play in random order or in numeric order. This setting applies not only to audition and recording in Pattern Editor, but also to run-time files saved from the style.

  • Note Color

    Used to customizes the display color for notes in a part. For more information, see Customizing Part Color.

  • Time Signature and Grid

    Sets a time signature and grid division for the part that disregards the time signature of the overall pattern. See Part Time Signatures.

  • Length

    Sets a length for the part that disregards the length of the overall pattern. See Part Length.

  • Default Play Mode

    Sets the default play mode of all notes in the part. It also defines the behavior of notes when they must conform to different chord types. For more information, see Play Modes.

To display the Part Properties window

  1. In Pattern Editor, right-click a part.

  2. Select Properties from the shortcut menu.


Inversion Boundaries

When a pattern encounters a chord in a segment, the notes in the pattern are transposed to fit the chord. If the pattern encounters a chord that has a very high or low root, the notes in the part may transpose to exceed the typical range of the instrument playing the part. For example, if you create a flute part that is high in the flute range, a segment chord on a very high root can cause the flute part to transpose above the typical range for a flute, causing the flute part to sound shrill.

Use the Inversion Boundaries settings in the Part Properties window to establish high and low range limits for a part. This limits how high or low notes can transpose when the pattern plays over different chords. Notes that exceed the boundaries when conforming to a segment chord are shifted one octave up or down as needed, so that they remain within the limits you set.

In general, you are not required to use the Inversion Boundary setting. The default setting is equal to the full, ten-octave range of a MIDI keyboard, so an instrument part can transpose with any chord encountered by the pattern and not have notes that exceed the boundaries. In most situations, the chords in a segment are no more than one octave above or below the chord for composition you use when originally creating a pattern, and, thus, do not result in excessive transpositions. However, if you notice that a part sounds as though its notes are being transposed too far out of the typical range when playing with a chord, you can adjust the inversion boundaries.

You can set the inversion boundaries based on the existing notes in the part. Selecting this option sets the low and high inversion boundaries at one whole step below the lowest note in the part, and one whole step above the highest note in the part. Select the check box to turn off the option and adjust the boundaries.

The inversion boundaries for a part may be overridden by the Chord Inversion settings in the Chord Properties window of a chord. For more information, see Chord Inversion Tab.


Variations Lock

You can assign a variation lock number to two or more parts in a pattern. The multiple locked parts play in tandem, so each time a different variation plays in one part, all other parts in the locked group play their own variations of the same number. This is a powerful way to ensure that two or more parts play their variations together, even though all other variations of the pattern play at random.

You can right-click a part in Pattern Editor to display its Part Properties window as shown in the following illustration.

In the Variations area, click the Lock ID list and choose 1-create to create a new Variations Lock group, or choose any group in the list that has already been created. You can open the Properties window for any part in the pattern, and assign it to one of the variations lock groups in the list. After you assign two or more parts to a group, all their variations play in tandem.

In the Variations area, click the Play list to choose an order to be used for the variations in the part. The default setting is Random Order. The setting you choose applies to all parts in the variations lock group during playback.

For example, if you want the drums to match its 32 variations to the 32 variations in the bass, you can assign both parts to the same variations lock group. This ensures that special rhythmic ideas, such as matching drum kicks in the bass and drum parts, always occur together. Though the variations of the drum part are played in random order, the bass part variations will play in the same order as the drum part variations. Any other part you add to the locked group will also play its variations in the same order as the drum and bass parts.

Conversely, you can use the Variations Lock setting to provide a more predictable counterpoint to your music. If two or more parts have variations that complement each other with contrapuntal movement, you can lock them together so their variations play in tandem and provide the counterpoint you intend, without mixing variations in unwanted combinations.

You can use the variations lock to create up to 255 groupings from variations in any parts in a pattern.

When you edit a part that is assigned to a variations lock group, you can hear the effect of variations locking. When you activate one variation in a part during playback, the variations with the same number play in all other parts that belong to the same variations lock group. All other parts not in the group continue to play their patterns in random order.


Part Length

You can set a length for a part that is separate from the length of the pattern containing it. A part can be longer or shorter than its pattern.

If a part is shorter than the pattern, then the part repeats until the end of the pattern. For example, a one-measure part will repeat four times in a pattern that is four measures.

If a part is longer than the pattern, only the portion of the part that fits in the pattern is displayed. Other notes remain, but will never play. For example, in a four-measure pattern, notes in the fifth and sixth measures of a six-measure part will not be heard. This allows for a part (perhaps from another pattern) that is longer than a pattern to be linked without losing data in either instance of the part. For information about linking a part to a part in another pattern, see Linking Parts.

Pick-up measures and extension measures can extend the length of a part beyond the length of the pattern that contains it.


Linked Part Lengths

When a part is linked to another part in a different pattern, the length of the part can be used differently in the other pattern. For example, if a part is four measures long, and is linked to another part in a two-measure pattern, then the four-measure part is shortened to two measures. No notes or data are deleted from the part, but the extra two measures are not used. If the part is linked to a part in an eight-measure pattern, then the part plays twice in the pattern.

Mixing time signatures between parts and patterns can affect the number of measures in a part. If the part is linked into a pattern that has a different time signature, the part can be cut off before its final measure is completed. For example, a two-measure part in 3/4 time can play for four measures in a three-measure pattern that uses a 4/4 time signature. See Part Time Signatures.


Part Time Signatures

Sets a time signature and grid division for the part that disregards the time signature of the overall pattern. When you use a time signature in a part that is different from the pattern time signature, barlines in the part do not line up with barlines displayed in the Pattern Editor timeline.

A part's length is limited by the length of the pattern containing it, or a linked pattern using it. See Part Length. When you use a different time signature in a part, the final measure in the part might be left incomplete. For example, a part in 3/4 time that is contained in two-measure pattern in 4/4 time will contain two complete measures of three beats, and a final measure that is only two beats long.


Customizing Part Color

By default, the color for unselected notes is blue, and for selected notes it is red.

To simplify editing, you can assign different colors for selected and unselected notes in each part of a pattern. In the Note Color section of the Part Properties window, click Unselected or Selected. This displays the following window in which you choose the color for notes.


Part Variations

To increase musical interest, you can create as many as 32 variations for each instrument part within a pattern. As a pattern plays, DirectMusic Producer combines variations from each part in changing combinations. When a part has multiple variations, the variations are selected at random when the style is played. You can also choose if the variations of a part are played in numerical order. See Part Properties.

A well-composed style results in each pattern part selecting any of several variations, and playing it in combination with other variations in other parts. Each time playback of the style loops or repeats, a new combination of variations is selected. This creates a blend of all the parts in changing combinations of variations that rarely repeat.

Note Variations can also be created in a Wave track. A Wave track can contain as many as 32 variations, and variable playback can be created with random selection of each variation. You can insert different variations of a wave, or combinations of multiple waves on each variation in the track. For information, see Wave Track.

To view a part's variations, you must click the Maximize button, shown in the following illustration, in the part's piano roll.

Clicking the Maximize button opens the part's editing window, which includes a Variations strip at the top containing 32 variation buttons, as shown in the following illustration.

A variation with its button pressed is active. An active variation has its contents displayed in the editing window, and it can be heard when you play the pattern.

Note Before you can enter any notes into a pattern, you must click at least one variation button to make the variation active.

The previous illustration shows the Variations strip with all variation buttons pressed. This is the default setting. This default setting simplifies the process of inserting notes as you begin creating a part, by ensuring that the notes are initially placed in all 32 variations. In the previous illustration, the notes (represented by blue rectangles) belong to all variations in the part.

You can use the Variations strip to turn variations on or off, and to quickly isolate a variation and edit the notes in it. Notes remain visible for any variation whose button is pressed. The notes in all other variations are not displayed and are left unchanged as you edit visible notes. In this way, you can leave some variations alone while you modify others. For more information, see Variations Strip.

As you design a pattern in Pattern Editor, you can use several options to create and modify as many variations as required:

  • Click a variation button to make the variation active
    This affects only what is displayed and played while you are editing the contents of a pattern.
  • Click a variation button to close the variation.
    This affects only what is displayed and played while you are editing the contents of a pattern.
  • Enter notes into individual or multiple variations
    Notes you insert go into all active variations. For information about entering notes, see Note Entry and Editing.
  • Leave a variation empty
    You can close a variation before entering notes, or delete the contents of a variation, so that it is silent when played. A silent variation can be used to make a part rest while other parts are playing. This affects playback of the pattern by itself, and when a style is played as part of a segment. • Enable or disable a variation
    Regardless of whether a variation is empty or not, you can enable or disable it. A disabled variation is ignored during playback, so it is never used during playback. This affects playback of the pattern by itself, and when a style is played as part of a segment. See Enabling and Disabling a Variation.
  • Control the order in which variations play
    You can use the default setting of playing all enabled variations in a part with random order, or choose options to control the order. This affects playback of the pattern by itself, and when a style is played as part of a segment. See Part Properties.
  • Control which chords in a segment a variation can play over
    You can use the default setting so a variation plays over any chords it encounters in a segment, or choose certain chords over which it will not play. This affects playback of the pattern when a style is played as part of a segment. See Variation Choices.

Note: Making a variation active or closing a variation has no affect on how the pattern plays when it is used as a subcomponent in a segment, or when you view the list of patterns and motifs in the Style Designer window. All enabled variations in a pattern are played in random order, or according to the order you chosen.


Variations Strip

When you maximize a part's editing window, a Variations strip, shown in the following illustration, is displayed at the top of its window.

The Variations strip indicates which of the 32 variations are active -- that is, has its contents displayed in the editing window, and can be heard when you play the pattern.

A variation is active when its button is pressed. In the following illustration, Variation 1 is active.

When you create a new pattern or add a new instrument part to a pattern, all the variation buttons are pressed by default, as shown in the following illustration.

This default setting simplifies the process of inserting notes as you begin creating a part, by ensuring that the notes are initially placed in all 32 variations. You can double-click any individual variation button to isolate the variation and turn off the display of all other variations. You can click the Selection button at the left of the Variations strip to press all variation buttons at once. Click the Selection button again to turn off the display of all variations.

If a variation has no notes, its button has a white number. This is true even if the variation has continuous controllers curve events in it, but no notes.

If the variation has notes in it, its button has a black number, as shown for Variation 1 in the following illustration.

You can click a combination of buttons to open multiple variations, whether or not they contain notes.

As you place notes in a part, they automatically go into all variations that are open. For more information, see Selecting and Editing Multiple Variations.

Whether or not a variation has notes in it, you can make or disable a variation so that it is not heard during playback. See Enabling and Disabling a Variation.

Using Playback While Editing Variations

If you use playback while you create and edit variations, you hear playback only for the variations that are active. If more than one variation is active, all the active variations are played back simultaneously.

To play a single variation by itself, double-click the button for the variation to turn off the display of all other variations. To play all variations in the part back one at a time in random order, close Pattern Editor and view the style in the Style Designer window. To choose options for controlling the order of variation playback, see Part Properties.

If you use playback while you view or edit variations and you close Pattern Editor, the variations that you last edited continue to play until you restart playback or click the Transition button. For more information, see Transport Controls.


Enabling and Disabling a Variation

Even if a variation is filled with notes, you can disable the variation so it is not heard during playback. By disabling a variation, you can leave its contents, including notes and controller curves, as part of the pattern, but ensure that the variation is never played until you choose to enable it. Right-click a variation's button in the Variations strip and choose Enable or Disable on the shortcut menu to toggle the playback of the variation.

When a variation contains notes, its button displays the variation number in black. A variation not containing any notes displays the variation number in white.

When you enable or disable a variation, its button changes to a different shade of gray. A light shade indicates the button is enabled; a dark shade indicates the button is disabled.

The following illustration shows the four possible settings for variations in the Variations strip:

  • Variations 1 and 2 have notes in them and they are enabled. Buttons have black numbers and are light gray.
  • Variations 3 and 4 have notes in them, but they are disabled. Buttons have black numbers and are dark gray.
  • Variations 5 through 16 do not have notes in them, but they are enabled. Buttons have white numbers and are light gray.
  • Variations 17 through 32 do not have notes and they are disabled. Buttons have white numbers and are dark gray.

As long as a variation is disabled, it is not used during playback, including when you use the style as a subcomponent of a segment.

The setting you choose for enabling or disabling a variation is saved when you save changes to the style or the project, and it remains in place until you change it.

If you save a style as a run-time file for use in a software application or Web page, your settings for enabling variations are kept intact. For more information, see Using Files in the Developer Environment.

Note You can control whether a variation is enabled or disabled using the Variation Choices window. Even if you enable a variation in the Variations strip, you can override this setting in the Variation Choices window by not identifying any chord types that can play the variation. If no chord types are enabled for a variation in the Variation Choices window, the Variation button in the Variation strip turns dark gray. For information, see Variation Choices.


Creating a New Variation

You can click a variation's button in the Variations strip to open it and enter notes. You can enter notes using the mouse or using the Copy and Paste commands.

To create a new variation

  1. Click the Maximize button of a part to display its Variations strip.
  2. In the Variations strip, click the button of an empty variation to open it.
  3. If variations are open that you do not want to edit, click their buttons to close them.
  4. Right-click the piano roll to insert new notes, or paste notes from the Clipboard to the variation. The new variation is used for playback until you disable the variation.

For information about entering and editing notes, see Note Entry and Editing.


Copying and Pasting a Variation

You can use the Merge Variations command to copy the contents of one variation to another. Specific copy and paste commands are not provided when editing variations.

You can also create an exact copy of a variation by merging its contents with an empty variation. For more information, see Merging Variations.


Selecting and Editing Multiple Variations

You can open multiple variations in the Variations strip at one time and edit their contents all at once. You can also use the Enable and Disable commands for all the selected variations. The following methods simplify the selection of multiple variations:

  • Double-click a variation button to select it and turn off all other variations.
  • Double-click the same variation button to return to the previous state of button selection in the strip.
  • Click the selection bar at the left edge of the Variations strip to select buttons for all open variations in the part.

When you select multiple variations, all notes in the open variations are displayed, even if notes in different variations overlap or duplicate one another. Notes you enter are added to the open variations. If you select and edit a note's pitch, length, start time, end time, duration, or other properties, only the variation originally containing that note is affected.

If a note belongs to multiple variations and is deleted while only some variations are open, the note is deleted only from the variations that are open and displayed. The note still occurs in its other variations.

You can use the CTRL key and the drag feature to copy notes. If you select several notes before pressing the CTRL key and dragging the notes, all selected notes are copied. If multiple variations are displayed, the notes you edit or copy remain in their original variations until you specifically add them to other variations. For example, if a note belongs to Variations 1 and 3, but Variations 1 and 2 are open, you can press the CTRL key and drag the note so that a copy of it is only added to Variation 1. The copied note is not added to Variation 2.


Merging Variations

You can open multiple variations in a part and use the Merge Variations command so that all visible notes belong to all selected variations. For example, if you select Variations 1 and 2, the pattern grid displays notes belonging to both. Use the Merge Variations command to make all the notes in Variation 2 belong to Variation 1, and vice versa. This makes a copy of all the notes in each of the variations.

To merge the contents of multiple variations

  1. In the Variations strip, click the buttons of the variations to merge. These variations are opened and their combined contents are displayed in the pattern grid.
  2. Right-click the pattern grid.and choose Merge Variations on the shortcut menu. The contents of the open variations are merged so that all open variations are equal.

The Copy and Paste commands are not available when editing variations. Instead, use the Merge Variations command to create a copy of a variation.

To create a copy of a variation

  1. In the Variations strip, click the button of the variation to copy. The variation is opened and its contents are displayed in the pattern grid.
  2. Click the Variation button of an empty variation, with a gray number, to open it.
  3. Right-click the pattern grid.
  4. Choose Merge Variations. The contents of the original variation are copied to the empty variation.
    1. Click the Variation button of the original variation to close it. Only the contents of the copy remain open and available for editing.


Silent Variations

You can enable an empty variation in a part so that it is included in the variations that are selected during playback. This causes a part to occasionally be silent during playback.


Variation Choices

Each part in a pattern can contain up to 32 different variations. You can use the Variation Choices window to control which variations play with which chords, and to enable or disable the use of a variation when a pattern encounters certain chords in a segment. For example, some variations might work well when played with a major chord, but not when played with a minor chord. As the pattern plays, it selects variations from each instrument part, using only those variations that you designate as appropriate for one chord or another. For information about creating multiple variations in a pattern, see Part Variations.

By default, all variations are enabled to play with all types of chords. Use the Variation Choices window to turn off chord types over which the variation should not play. If playback of a segment reaches a chord with no enabled variation in the instrument part, the default setting becomes active for that chord and all variations work for all chords. In this case, a variation is selected at random from the instrument part.

Open the Variation Choices window by clicking the Variation Choices button at the right of the Variations strip, shown in the following illustration.


Variation Choices Window

The Variations strip for each part in a pattern has a button at the right end of its strip.

When you click this button, the Variation Choices window is opened. This window contains the settings for all 32 variations in the part, as shown in the following illustration.

The Variation Choices window lists the variations in the pattern in the leftmost column. Next to each variation number is a rectangular selection button used for selecting all buttons in the row simultaneously. The selection button is followed by a row of chord criteria buttons for the variation. For more information, see Variation Choice Settings.

Note Older styles created with Microsoft® Interactive Music Architecture (IMA) display a different type of variation window. For more information, see IMA Variation Choices Window.


Variation Choice Settings

When you choose a setting for whether a variation plays with a chord, you are not choosing a chord built on a specific chord root, such as C or F. Instead, you are choosing the functional position, such as I or IV, of the chords in the segment. The position of the various root functions in the segment is determined by the key of the segment. You set the key in the Segment Properties window.

The chord criteria buttons in the Variation Choices window are grouped into the following four types:

  • Functions

    Selects a chord root, based on the seven pitches of a major scale, and the chord quality on which the variation can play as it encounters chords in a segment. When you choose the chord root, you are selecting from the seven tones in the major scale of the segment's key. When you choose the chord quality, you are identifying whether the basic triad of the chord is major, minor, diminished, or augmented. To define a chord as diminished or augmented, use the buttons with the Roman numerals in italic.

  • Root

    Indicates whether a chord root must specifically be one of the seven tones in the major scale of the segment's key or if it can be a chromatic alteration (sharp or flat) of a scale tone.

  • Type

    Indicates whether a variation can play using a triad, a chord with an added 6th or 7th tone, or a complex chord. Complex chords contain more than four notes and are usually a 7th chord with an extension of a 9th, 11th, or 13th.

  • Destination

    Indicates whether a variation can be used with a chord that leads to a destination chord built on the 1st or 5th step of the segment's key. For example, if the [image] I button is selected, the variation is used with a chord that leads to another chord built on the 1st of the key. However, the chord being played must also fit all other criteria settings for function, root, and type.

    As soon as the [image] I button is used in a variation, all other variations that do not have the [image] I button turned on are ignored, even if their chord criteria settings match the chord being played.

    You can turn on the [image] I or [image] V button in more than one variation. In this case, a chord that leads to a chord built on the 1st or 5th of the key can use any variation set for [image] I or [image] V, respectively, selecting from them at random.

You can click any button to enable or disable use of a variation with certain types of chords and certain chord roots. If you set a variation so it does not play with a certain type of chord, then other variations in the part are used when that type of chord occurs. If a chord occurs for which none of the variations in a part are enabled, the default setting, allowing all chords to play, becomes active for all variations in the part. A variation is then selected at random from all variations in the part.

For each of the possible variations in a part, you can:

  • Enable the variation to play with four types of chords built on any root of the major scale for the segment's key, or you can disable the variation. For example:
    • For major, click the buttons with uppercase Roman numerals.
    • For minor, click the buttons with lowercase Roman numerals.
    • For diminished and augmented, click the buttons with the Roman numerals in italic.
  • Enable the variation to play with a chord whose root is not in the major scale of the segment's key (the root is a chromatic alteration of a scale tone), or disable the variation.
  • Enable the variation to play with a triad, a chord with a 6th or 7th, or with a complex chord, or disable the variation.
  • Enable the variation to play with a chord that precedes a chord built on either the 1st or 5th step of the major scale of the segment's key, or disable the variation. Enabling a variation to work with a chord leading to I or V results in all other variations not enabled to be ignored.
  • For the individual variation, choose either the DirectMusic Producer style of variation choices or the earlier Interactive Music Architecture (IMA) style of variation choices. For more information, see IMA Variation Choices Window.

Note The Variation Choices window works hand in hand with the key of a segment. All segments use a key setting identified by a root name only. It is assumed that the key is major, regardless of whether you intend the segment to have a minor sounding key. For example, a segment you design to sound as though it is in the key of A minor must have a key setting of C major (A minor is the relative minor of C major. The relative minor of any major key is always a minor third below the root of the major key.) For more information, see Variation Choices and Changing Segment Keys.


IMA Variation Choices Window

Earlier files created with Microsoft Interactive Music Architecture (IMA) display a different Variation Choices window, which provides less flexibility. For information about IMA and the history of DirectMusic, see Background.

You can choose to use the IMA Variation Choices window with the patterns you create, as well as with IMA files. The IMA Variation Choices window is shown in the following illustration.

The IMA Variation Choices window works much the same way as the DirectMusic Variation Choices window. There are 32 variations in the pattern, which are listed in the leftmost column. Next to each variation number is a rectangular selection button used to select all buttons in the row. The selection buttons are followed by a row of chord criteria buttons for the variation. For more information, see IMA Variation Choice Settings.

You can toggle which type of window is displayed by selecting all rows, right-clicking the editing window, and choosing IMA or DirectMusic on the shortcut menu. You can also use a combination of both variation choice windows in a single pattern by assigning your choice for IMA or DirectMusic to each of the 32 variations. Click the variation selection buttons at the left of the Variation Choices window, right-click a selected button, and choose a variation choices type for the selected variations.


IMA Variation Choice Settings

You can click any button in the IMA Variation Choices window to turn it on or off. When you choose a setting for whether a variation plays with a chord, you are not choosing a chord built on a specific chord root, such C or F. Instead, you are choosing the functional position, such as I or IV, of the chords in the segment. The position of the various root functions in the segment is determined by the key of the segment. You set the key in the Segment Properties window.

The chord criteria buttons in the Variation Choices window are grouped into the following four types:

  • Functions

    Selects a chord root, based on the seven pitches of a major scale, on which the variation can play as it encounters chords in a segment. When you choose a chord root, you are selecting from the seven tones in the major scale of the segment's key.

  • Root

    Enables the variation to use chords with roots outside the major scale of the segment's key. The chord root can be one of the seven tones in the major scale or a chromatic alteration (sharp or flat) of a scale tone.

    In using the Maj, min, and oth buttons, you can choose chord qualities over which the variation can play as it encounters chords in a segment. When you choose a chord quality, you are identifying whether the basic triad of the chord is major, minor, diminished, or augmented. When the Maj button is enabled, the variation plays with any chord in which the bottom three notes form a major triad. When the min button is enabled, the variation plays over any chord in which the bottom three notes form a minor triad. For all other triads, diminished or augmented, select the oth button.

  • Type

    Indicates whether a variation can play over a simple or complex chord. Simple chords include triads or chords with an added 6th or 7th tone. Complex chords contain more than four notes and are usually a 7th chord with an extension of a 9th, 11th, or 13th.

  • Destination

    Indicates whether a variation can be used with a chord that leads to a destination chord built on the 1st or 5th step of the segment's key. For example, if the [image] I button is selected, the variation is used with a chord that leads to another chord built on the first of the key. However, the chord being played must also fit all other criteria settings for function, root, and type.

    You can turn on the [image] I or [image] V button in more than one variation. In this case, a chord that leads to a chord built on the 1st or 5th of the key can use any variation set for [image] I or [image] V, respectively, selecting from them at random.

Using the IMA Variation Choices window, you can do the following for each possible variation in a part:

  • Enable the variation to play with a chord built on any root of the major scale for the segment's key, or disable the variation.
  • Enable the variation to play with a chord whose root is not in the major scale of the segment's key (the root is a chromatic alteration of a scale tone), or disable the variation.
  • Enable the variation to play with major, minor, diminished, and augmented chords and triads, or disable the variation.
  • Enable the variation to play with simple and complex chords, or disable the variation.
  • Enable the variation to play with a chord that leads to a chord built on the 1st or 5th step of the major scale of the segment's key, or disable the variation.
  • For the individual variation, choose the DirectMusic style of variation choices or the Interactive Music Architecture (IMA) style of variation choices.

Note The IMA Variation Choices window works hand in hand with the key of a segment. All segments use a key setting identified by a root name only. It is assumed that the key is major, regardless of whether you intend the segment to have a minor sounding key. For example, a segment you design to sound as though it is in the key of A minor must have a key setting of C major. (A minor is the relative minor of C major. The relative minor of any major key is always a minor third below the root of the major key.)

For more information, see Variation Choices and Changing Segment Keys.


Variation Choices and Changing Segment Keys

The Variation Choices window works jointly with the key of a segment. After you create settings in the Variation Choices window, the behavior of the variations in a pattern remains consistent for any segment you use to play the style. If you place a new chord in a segment, the variations in the pattern are selected to play with that chord according to the chord's role in the key of the segment.

All segments use a key setting identified by a root name only. It is assumed that the key is major, regardless of whether you intend the segment to have a minor sounding key. For example, a segment you design to sound as though it is in the key of A minor must have a key setting of C major. A minor is the relative minor of C major. The relative minor of a major key is always a minor third below the root of the major key.

For information about setting the key of a segment, see Chord Track Properties Window.


Variation Choices and the Chord for Composition

The Variation Choices window is not affected by a pattern's chord for composition. Regardless of the chord you use to create a pattern, a pattern's notes are interpreted by all other DirectMusic Producer components as generic steps of the chord scale used in the chord for composition. If you use the Variation Choices window to enable a variation for a chord type, the notes of the pattern adjust to fit that chord and its scale, even if the new chord is radically different from the original chord for composition.

For example, if you create a pattern using a Gmi 7 chord and place the notes Bb, C, D, and F in a variation, these pitches are considered steps 3, 4, 5, and 7 of the Gmi 7 chord and its scale. If you enable the variation to play with an Fmaj 7(#11, #5) chord, the steps 3, 4, 5, and 7 are interpreted as the notes A-natural, B-natural, C-sharp, and E-natural. The nature of the variation changes considerably from what you may have intended when you chose the original chord for composition.


Variation Switch Points

Variation Switch Points provide increased flexibility in the use of variations. When a style is playing as part of a segment, playback of pattern variations typically uses the entire length of the variation before another variation can begin. If the design of the segment provides enough room for a variation to play its full length, then it is chosen. However, the data that you place in various tracks of the segment can affect whether a variation will fit. For example, the chords you place in the Chords track may not comply with a particular Variation Choices Window settings for a variation. Or, groove level changes you place in a segment may also cause a variation to no longer fit. The presence of these changes may limit the variations that can play in a segment. If a segment is too long, and does not fit between changes, it is not selected for playback.

You can design a pattern so its variations can quit at various points to allow playback to move to a new, more appropriate variation without finishing the current variation. This is accomplished by placing Variation Switch Points (VSP) in the pattern. By placing VSPs in a pattern, you give the pattern multiple points at which it can exit or enter during playback. This makes the occurrence of a chord change or a new groove level much less likely to result in an failure to use a wide range of variations, or to have abrupt changes. The settings in the Variation Choices window become far less disruptive to playback of your style files, because variations can be chosen with even greater randomness, since more of them will fit.

Using Variation Switch Points in a pattern greatly improves the behavior of transitions from one component to another. Transitions to other segments are made smoother, and ess disruptive to playback because a transition can begin immediately without there being a choice of only a very few patterns that are short enough to comply. If a pattern has multiple VSPs, almost any variation in the pattern can be playing, and the transition can begin when you want it to with a more seamless change. For more information about using transitions, see Transitions.

Variation switch points allow you to specify a place in the variation where it would be appropriate to quit playing the variation or to switch to a new variation independent of settings in the Variation Choices window. This feature allows a much more varied performance while keeping a style playback under strict composer control.

Note Variation Switch Points in a pattern also improve transitions in another way: they identify places in a segment where a transition can occur. If performance boundary settings in the Transition Options window are selected so the transition is to begin at a marker, then a marker in the pattern being played triggers the transition. In the same way, Variation Switch Points in a pattern improve the use of secondary segments. If settings in the Secondary Segment Audition Options window or the Segment/Motif Trigger Properties Segment Tab of a trigger in a Segment Trigger track are selected so the secondary segment is to begin at a trigger, then a trigger in the pattern being played plays the secondary segment. For information about performance boundary settings, see Boundaries.

Each part in a pattern has a Variations Switch Point strip into which you can place markers for variation switch points.

You can enter a variations switch point from one of six categories:

  • Enter
    Enters a variation at a place that is appropriate to switch to this variation.
  • Exit
    Exits a variation at a place that is appropriate to switch from this variation.
  • Enter and Exit
    Enters and exits a variation at a place that is appropriate.
  • Enter Chord Trigger
    Enters a variation as a result of a chord trigger (any chord in the segment, not tied to Variation Choices settings).
  • Exit Chord Trigger
    Exits a variation as a result of a chord trigger (any chord in the segment, not tied to Variation Choices settings).
  • Enter and Exit Chord Trigger
    Enters and exits as a result of a chord trigger (any chord in the segment, not tied to Variation Choices settings).

Green markers in the Variations Switch Point strip indicate enter, and red markers indicate exit. All markers are displayed on grid boundaries. If either an enter or exit marker is selected with the Chord Trigger option, then the bar is also displayed with a black bar outlining the top/bottom/left sides of the bar. Chord Trigger markers can only be displayed on beat boundaries.

A switch point marker is displayed in a darker shade (dark enough to be distinct from non-selected bars) when selected. Overlapping bars (over multiple variations) are displayed with hash marks.

Switch points can be entered in the following ways:

  • Right-click the Variations Switch Point strip to display a shortcut menu, and then click Insert Switch Point to select the type of switch point marker you want.
  • Click the Variations Switch Point strip and press the Insert key to insert Enter and Exit markers into the track)

or

  • Click the Variations Switch Point strip and press the Ctr+Insert keys to insert Enter and Exit markers, both with chord triggers.

You can remove markers by selecting any markers in the Variations Switch Point strip, then right-clicking the strip and choosing Delete Switch Point(s), or use the Delete key to remove selected switch point markers from the track. Beginning and ending points in a single grid cannot be independently deleted.

Additionally, you can right-click the Variations Switch Point strip and use commands in the shortcut menu to insert or remove beginning and ending switch points in every measure, beat or grid using Mark All or Unmark All. This provides you the ability to insert or remove beginning/ending switch points in every measure, beat or grid within a defined range (mark or unmark range).

You can use the Variation Switch Point Property window to edit switch points. This is particularly useful if you want to alter only one of the aspects of the switch point. The Trigger only with Chord Change is disabled if the Enter or Exit checkbox is unchecked.

Multiple switch point bars can be edited using the Property page. Checkboxes appear gray if there are multiple states simultaneously.

Multiple markers can be selected using Control (toggling markers on a beat basis) or Shift keys (selecting all items in an imaginary bounding box defined by the most recent shift-click targets).


Embellishments

Embellishments are patterns, usually brief, that serve special roles in a style:

  • Intro

    Short introductory phrase to begin the piece.

  • Fill

    Short fill leading from one phrase to another.

  • Break

    Short break where the rhythmic accompaniment halts so a small group of instruments, or a single instrument, can be heard.

  • End

    Short phrase to conclude the piece.

  • Custom

    You can create an embellishment with any name.

These embellishments are used as a supplement to the regular patterns in a style, creating special points of interest and variety in a performance. After you create embellishments in a style, they respond to the intro, fill, break, and end commands that you place in the Grooves and Embellishments track of a segment.

Embellishments often serve as transition patterns when playback transitions from one segment to another. For example, when designing a transition, you can select an Intro embellishment as the transition pattern, and the intro pattern from the destination segment is played before the destination segment begins. For more information, see Transition Pattern.

An embellishment must be at least one measure in length, and usually is no more than two measures. An embellishment is created in the same way as other patterns, but is assigned an extra property that identifies it as an embellishment. For information on creating a pattern, see Creating a New Pattern and Pattern Editor.

You can create a completely new embellishment. However, basing an embellishment on a pre-existing pattern saves time. The following procedure is the recommended approach to create an embellishment pattern.

To create an embellishment pattern

  1. In the Style Designer window, select the pattern to use as a basis for the embellishment.
  2. On the Edit menu, choose Copy and then Paste to duplicate the pattern. A new copy of the pattern is inserted in the Style Designer window's Pattern list.
  3. Right-click the copied pattern, select Rename, and enter a new name, such as intro or guitar break, to indicate how it will be used as an embellishment.
  4. Right-click the copied pattern and choose Properties on the shortcut menu.
  5. In the Embellishment window, select the embellishment type—intro, fill, break, or end.
  6. Double-click the copied pattern to open it in Pattern Editor.
  7. Edit the copied pattern. You can change the length, delete unwanted material, and add extra parts and notes.

Note The names of the embellishments—intro, fill, break, and end—are simply labels you assign to a pattern. They do not give special properties or behavior to a pattern. You can use the labels with any pattern in a style and use the pattern in any way. For example, you can create a long pattern of many measures and use the intro label for it so you can specify exactly when the pattern plays in a segment.


Motifs

A motif is a pattern used for purposes other than a regular style pattern. It is a melodic or rhythmic figure, usually brief, or a sound you design to layer over other music. A motif can be played at any time during a performance and can be thought of as an instrumental solo that plays without interrupting the music already playing. A motif also has properties to control its playback behavior, including looping a specific number of times each time it plays.

You can set a motif to respond to user events, such as pressing a key, moving the mouse, clicking an object, or to respond to programmatic events, such as the appearance of a particular character or a change on the screen. Motifs can be interactively layered over the background of patterns already playing. Also, a single motif can play, or multiple motifs can play simultaneously.

Motifs are usually a full measure or less, in length. You create a motif using Pattern Editor in the same way you create a pattern. In fact, you can create a pattern and convert it to a motif using the drag-and-drop feature. You can likewise create a motif and convert it to a pattern. Motifs are similar to the individual patterns that comprise a style, in three important ways:

  • A motif can be performed by more than one instrument.
  • Each instrument can play multiple variations.
  • A motif can be transposed to fit any chord in any key.

A list of motifs in a style appears in the Style Designer window, separated from the patterns by a resizable splitter bar.

You can drag the splitter bar up or down to hide or display items in the pattern or the motif list. You can also copy and paste patterns and motifs by moving items between the two lists. In addition, you can use the drag-and-drop feature to copy motifs and patterns within their own lists, or from one list to the other.

The following topics provide information about creating and using motifs:

  • Creating a New Motif
  • Copying a Motif
  • Converting a Pattern to a Motif
  • Motif Properties
  • Motifs as Music or Sound Effects
  • Fixed Pitch or Variable Pitch Motifs
  • Using Sound Waves as Sound Effect Motifs
  • Saving a Motif as a Segment


Creating a New Motif

You can insert a new blank motif in a style and edit it, as with a pattern.

To create a new motif

  1. Open a style.
  2. In the Motif list of the Style Designer window, click a motif to select it.
  3. Press the INSERT key, or on the Edit menu, choose Insert. A new blank motif is inserted in the list.
  4. In the Motif list of the Style Designer window, right-click the new motif and choose Properties on the shortcut menu.
  5. Enter a name for the motif, such as Cymbal Crash or Flute Trill, to indicate its use.
  6. Enter a length and close the Properties window.
  7. Double-click the new motif to launch Pattern Editor. Edit the motif as needed.

To build a motif with the flexibility you need, you can use all the pattern-creation rules and tools including the tools for inserting notes, using the Notes Properties window, the Variation Choices window, randomness ranges, and other style creation features. For more information, see Pattern Editor. As with other patterns, a motif can contain up to 32 variations.

When creating a motif, pay attention to the use of the play mode property in the Note Properties window. Use the Fixed play mode to cause a motif to play with a fixed pitch, regardless of the chord or key playing behind it. For more information, see Fixed Pitch or Variable Pitch Motifs.

Just as when building a style pattern, be sure to test the motif against different chords and chordmaps. A motif that sounds satisfactory with one chord may sound unsatisfactory with another. This is particularly true if you design the motif as a variable pitch motif. You can set the motif so that it does not play with any chord you consider incompatible. As with a variation, you can open the Variation Choices window and turn off the playback of the motif for specific chords.

Note One challenge in building an effective motif is that a motif is often set as an interactive element and may be triggered to start at any beat in the measure. Chord changes can be inserted at any point in the motif performance. Because of these factors, a simple rhythmic motif is usually the most effective.


Copying a Motif

A motif can be copied and pasted within a style, or from one style to another. When sharing motifs between styles, observe the following limitations:

  • A motif requires its own playback track to ensure that it does not interfere with the music from the other tracks that are playing at the same time.
  • The time signature of the motif should be compatible with that of the style. For example, 2/4 is compatible with 4/4.
  • The motif's band settings (instrument, volume, and pan) should integrate with the style's band settings.
  • The motif's performance should work naturally with the style performance. For example, an electric guitar riff might seem out of place in a classical performance.

You can use Copy and Paste commands, or the drag-and-drop feature to create a copy of a motif while working in Style Designer or using the project tree.

To copy and paste a motif

  1. In the Style Designer window, select the motif to copy from the Motif list.
  2. On the Edit menu, choose Copy.
  3. If entering the copied motif in a different style, open the style to display its Style Designer window.
  4. On the Edit menu, choose Paste.

To copy a motif using the drag-and-drop feature

  1. In the Style Designer window, select the motif to copy from the Motif list.
  2. Hold the CTRL key and drag the motif to another position in the Motif list. A copy of the motif is inserted in the list and is given a different name.

To copy and paste a motif in the project tree

  1. In the project tree, double-click the Motifs folder of a style to display its contents.
  2. Right-click the motif to copy and choose Copy from the shortcut menu.
  4. Right-click the icon of the Motifs folder and choose Paste from the shortcut menu.

To copy a motif in the project tree using the drag-and-drop feature

  1. In the project tree, double-click the Motifs folder of a style to display its contents.
  2. Hold the CTRL key and drag a motif to another position in the folder. A copy of the motif is inserted in the folder and is given a different name.


Converting a Pattern to a Motif

A motif is a pattern you use for purposes other than a regular style pattern. You can use the drag-and-drop feature to convert a pattern to a motif, or use the Cut, Copy, and Paste commands to move a pattern to the list of motifs. You can also use the same methods to convert an existing motif to a pattern.

To convert a pattern to a motif

  1. In the Style Designer window, select the pattern to convert from the Patterns list.
  2. Hold the CTRL key and drag the pattern from the Pattern list to the Motif list. A copy of the pattern is inserted in the list.

To convert a pattern to a motif in the project tree

  1. In the project tree, double-click the Patterns folder of a style to display its contents.
  2. Hold the CTRL key and drag a pattern from the Patterns folder to the Motifs folder. A copy of the pattern is inserted in the Motifs folder.

The following illustration shows the Properties window of a pattern called Pattern1. Following that is an illustration of the Properties window with the exact same pattern converted to a motif.

For more information, see Motif Properties.


Motif Properties

For each motif in the Style Designer window, you can set its name and length in a Properties window.

The Motif Properties window includes settings for the following:

  • Motif Name

    Any name you choose.

  • Length

    Any length from 1 to 999 measures.

  • Interactive Performance

    The boundary at which a motif segment starts playing after a play command is issued. The boundary is relative to the currently playing segment. The motif can begin immediately, or at the next measure, beat, or grid division.

  • Start Time

    The number of measures, beats, grid divisions, and ticks that a motif plays after the beginning of a performance.

The Loop tab in the Motif Properties window functions in the same way as the Loop tab in the Segment Properties window. For more information, see Loop Tab.


Motifs as Music or Sound Effects

A motif can contain typical music material, with melody and rhythm, played by one or more instruments, or it can be a sound wave that you use as a sound effect, such as the sound of breaking glass.

For a motif containing music material, you can build its content in the same way as for a pattern — by inserting a melody, chords, and rhythms in a piano roll. For a sound effect motif, insert a single note in the piano roll to trigger a sound wave. Inserting multiple notes triggers the sound wave repeatedly. For more information, see Using Sound Waves as Sound Effect Motifs.

Downloadable sounds (DLS) make creating motifs an easy process. You can use the waves in a DLS collection as instrument sounds that play sustained notes and melodic material, or as short sound effects. You can set a sound wave to play once when it is triggered (one-shot playback), or to be sustained and repeat for longer periods (looping playback).

For example, the sound of breaking glass would probably be a short, one-shot playback of the sound wave, while the sound of a car horn might be looped so it is sustained for several seconds. A string sound in a DLS is typically looped so it can sustain notes in a melody or chord. For information about controlling the duration of wave samples, see Wave Properties.


Fixed Pitch or Variable Pitch Motifs

Whether you use DLS sounds or a separate piece of MIDI playback hardware, you will probably want melodic material to adjust according to the key and chords of other music as it plays, such as an improvised instrumental solo that plays over whatever music is currently playing. An important exception to this is percussion instruments, which should not transpose their notes for different chords or keys. Adjusting pitches to fit the harmony of the moment is the default play mode of all notes when you enter them in the piano roll of a pattern or motif. However, you can make melodic material play at a fixed pitch, regardless of the changes to other music.

If you use a sound wave as a sound effect, you will probably want to set the wave to play the same way each time it is triggered, without adjusting to the chords or key of the music already playing. You can always allow a sampled sound to adjust to different keys and chords.

For more information about controlling whether notes in a pattern adjust to the music or play a fixed pitch, see Play Modes and Note Entry and Editing.


Using Sound Waves as Sound Effect Motifs

You can use a sound wave as a motif. This is especially useful when you want a sound effect, such as a car horn, breaking glass, or animal sound, to layer over music currently playing.

To use a sampled wave in a style, you must first use DLS Designer to insert the wave sample in the DLS collection used in the style's current band. If the style's band does not have a DLS collection in it, use Band Editor to add one.

A sampled sound can be triggered by a single note in the piano roll of a motif. Place a note in an unused track and set that track to play a specific sound from the DLS collection. In the case of a sound effect motif, you probably want the sound effect to play a single time when it is triggered (one-shot playback), as opposed to playing a sustained and repeated sound. For example, the sound of breaking glass would probably be a short, one-shot playback of the sound wave.

Use the Wave Properties window to control whether a sound wave has one-shot or looping playback. For one-shot playback, the length of time a sound is heard is controlled using Wave Editor and not the length of the triggering note in a motif.

For some sound effect motifs, such as a car horn or rushing water sound, you may want the sound to sustain and repeat for a few seconds. In this case, choose the looping option in the Wave Properties window. You can control the length of a looping wave by the length of the note that triggers the wave, just as with any note.

To create a motif using a sampled wave

  1. In the Style Designer window, insert a new motif.
  2. In Pattern Editor, right-click the Part list and enter a new part that does not conflict with the other parts in the style.
  3. Right-click the piano roll window of the new part and choose Insert on the shortcut menu. A single note is entered in the piano roll.
  4. If necessary, drag the new note to beat 1 of the first measure. This is recommended to avoid delayed response of the motif.
  5. If the sampled sound is meant to play at a fixed pitch, right-click the note, choose Properties on the shortcut menu, and adjust the note properties.
  6. In Band Editor, set the track to use the desired sound from the band's DLS collection.

For information about setting a track to play a specific sound, see Band Editor.


Saving a Motif as a Segment

A motif is typically created in a style. However, a motif can also be used as a separate sound that plays as a secondary segment in combination with any number of DirectMusic Producer components. For more information, see Primary Segments and Secondary Segments.

While working in DirectMusic Producer, you can select a motif in a Secondary Transport list and play it as a secondary segment. This is because a motif is similar to a segment file and, unlike a typical pattern in a style, a motif can be isolated and played independently of the style that contains it. A motif can also be used by a developer as if it were a segment file. However, to extract a motif from a style and play it as a secondary segment, a developer must know the name of the motif and the name of the style that contains it.

Motifs do not have bands associated with them, so playback of a motif may be affected by the settings and instruments in a band that were most recently used for playback. To ensure a correlation between a motif and a specific band, create a new segment, insert the style that contains the motif in the Style track of the segment, and then insert a specific band in the Band track of the segment. When you provide the segment to a software developer, the correct band is always available to play the motif.

Note Changes that occur in other bands used by a developer, such as conflicting instrument assignments and settings that use the same PChannels, affect playback of a secondary segment. For example, if a secondary segment is playing using one band, and an additional secondary segment begins playing using a different band, the instrument settings of the last band that started playing take precedence. You can avoid such conflicts by assigning a unique PChannel to each instrument sound in every band in a project.


Play Modes

When you base a segment on the music material of a style, you play the style using various chords. As the segment plays, the patterns in the style conform to the chords in the segment. By default, the notes of the parts in a pattern transpose and adjust to fit the chord. The function of a note in a part is calculated as a chord tone (1, 3, 5, or 7), or as an intervening scale tone (2, 4, or 6).

The behavior for how a part adjusts to chords in a segment is called the play mode. For each part in a pattern, you can choose a default play mode. Several options are provided:

  • Chord/Scale (Default)

    As a part plays, it conforms to the tones of the chord or, if a chord tone is not available, it uses a pitch from the underlying scale of the chord. Every note in the part plays using a pitch from the chord or its scale, so no notes in the part are omitted during playback. This behavior is important when a part plays over a variety of chords that sometimes include an added 7th tone.

    For example, if a part contains notes on steps 1, 3, 5, and 7 and it encounters a chord that contains a 7th, then all four chord tones are used to play the part. However, if the chord does not contain a 7th, the part plays using the root, 3rd, and 5th of the chords, and uses the 7th note of the chord's underlying scale to complete the part. This may add a 7th to the sound of a chord as it plays the part, even if the chord is only a triad. If the part also contains notes on steps 2, 4, or 6, the corresponding pitches from the chord's underlying scale are used to complete the part.

  • Chord

    As a part plays, it conforms to as many chord tones as possible. Scale tones are used for steps 2, 4, and 6. However, if the chord does not contain a 7th, then part tones on step 7 are ignored and left out during playback. This option avoids unnecessarily adding a 7th to the sound of the chord when the chord does not contain a 7th. If a part note falls on step 7 of a chord, it plays only if the chord includes a 7th.

  • Scale

    The part adjusts to the root of the chord being used and uses the scale of the chord exclusively, ignoring the chord tones.

  • Pedal Point

    The part uses the scale of the chord exclusively, ignoring the chord tones, and does not adjust to the root of the chord being used. Thus, where possible, the part plays using the same tones for all chords encountered, without moving to the root of the chord being used. Pedal point is a term that originated in organ literature. It is a nonharmonic tone that is sustained in the pedal (bass), while the harmonies change above it. The definition has expanded to include any note that remains constant, regardless of range, and thus ignores the harmonic changes. For more information, see Pedal Point Play Mode.

  • Fixed (Absolute)

    The note always plays at the same pitch in all situations, regardless of the key of the chord changes. Fixed parts are typically used for drum parts and for sound effect parts. This type of part disregards chords in the segment, the underlying scales of the chords, or to the key of the segment. Notes play the same pitches you use in the Pattern Editor window when creating the part.

  • Fixed to Key

    Notes always play at the same pitch, adjusting if a key other than C is chosen.

  • Fixed to Chord Root

    Notes adjust to always be the same interval relative to the chord root.

For any part in a style pattern, you can open a Part Properties window, shown in the following illustration, and choose a default play mode for the entire part.

In the Default Play Mode box, choose a play mode type and a chord level for the part. The chord level determines which level (1, 2, 3, or 4) of a chord the part responds to when it encounters a chord. For more information, see Chord Levels.

When you choose a default play mode for the part, the setting is the default for all notes in the part. You can choose a different play mode for a note or group of notes. You can select any notes in a part and open a Note Properties window to choose a play mode that overrides the default play mode setting of the part.

You can use the default setting for a note or you can use any play mode choice: Chord/Scale, Chord, Scale, Pedal Point, Fixed, Fixed to Key, and Fixed to Chord Root. The default play mode uses the play mode setting of the entire part as the setting for the note.


Pedal Point Play Mode

When a part is set to use the pedal point play mode, DirectMusic Producer plays the part using its original pitches for any chord it encounters. The part holds as closely as possible to the same pitches, regardless of what chords it encounters in a segment, creating the sound of a pedal point for as long as the part plays. This is done by playing the part using only the pitches from the chord scale, as shown in the Chord Properties window for any chord encountered.

A part that is set for pedal point play mode ignores the root and other chord tones of the chord in a segment. The pitches used in the part—which are measured numerically as 1, 2, 3, 4, and so on, of the chord for composition—are applied to the scale of the chord encountered. They are not adjusted to follow the root of the chord, as they normally would be.

Note The chord scales of all chords use only pitches between C1 and B1. For example, the scale of an F major chord begins with the pitch C1. Thus, the scale tones used by a part set for pedal point play mode always fall between C1 and B1.

For all chords, a part set for pedal point play mode changes as little as possible, and for many chords there is no change at all in the pitches used to play the part. If all the original pitches in a part are included in the scale of a chord, the part plays as though there is no change in chord. If a pitch in the part is not included in the scale of a chord, the part notes adjust as necessary by a half or whole step to fit the pitches in the chord scale.

For example, a part using the default 2Cma7 chord for composition, and containing the notes C, E, G, and B normally plays the 1, 3, 5, and 7 of a chord in a segment, based on the root and chord tones shown in the Chord Properties window. However, if the part is set for pedal point play mode, it plays the 1st, 3rd, 5th and 7th steps of the scale for a chord encountered, ignoring the actual root and chord tones of the chord.

If the 1st, 3rd, 5th and 7th steps of the chord scale are C, E, G, and B, the part plays using these notes, creating the effect of no chord change at all. Because many chords can include these four pitches in their chord scales, the part can encounter many chords with no change to how the part plays, thus creating the sound of a pedal point. For example, the chords C major, D minor, G major, or A minor all likely include C, E, G, and B in their chord scales, and the part would play exactly the same for all these chords.

If the chord scale of a chord contains pitches other than C, E, G, or B, then the part uses whatever pitch falls on the same step in the scale, thereby minimizing the changes to how the pattern sounds. For example, if the part encounters a 2C#mi7 chord with a C# natural-minor chord scale, the 1st, 3rd, 5th and 7th scale steps of the scale would be C#, E, G#, and B. If the part encounters a 2Gmi7 chord with a G natural-minor chord scale, the 1st, 3rd, 5th and 7th scale steps of the scale would be C, Eb, G, and Bb.

The following table shows the results of a part set to pedal point play mode as it encounters chords with different chord scales. The part was created using a 2Cma7 chord for composition, and contains the notes C, E, G, B (equal to 1, 3, 5, and 7 of the chord for composition).

Chord Encountered | Chord Scale Tones | Resulting Tones
2CMa7 (or 1Cma7) | C, D, E, F, G, A, B | C E G B
2Gmi7 (or 1Gmi7) | C, D, Eb, F, G, A, Bb | C Eb G Bb
2Fmi7 (or 1Fmi7) | C, D, Eb, F, G, Ab, Bb | C Eb G Bb
2C#mi7 (or 1C#mi7) | C#, D#, E, F#, G#, A, B | C# E G# B
2D#7 (or 1D#7) | C#, D#, E#, F#, G#, A#, B | C# E G# B

Note Because a pedal part ignores the chord root, the behavior of the part as it encounters a chord is the same whether the chord root is in the lower range, such as 1C, or the upper range, such as 2C. For information about pitches available for chord roots, see Chord Properties window.


Pedal Point Play Mode and Segment Key Signatures

When you set a part to pedal point play mode, its behavior is affected by the key signature of any segment in which the part is playing.


Pedal Point Play Mode and Pattern Key Signatures

The key signature of a pattern interacts with the chord for composition to affect the behavior of the parts in a pattern when you play the style by itself—that is, without the use of a segment containing the style. This effect only takes place with parts that are set to pedal point play mode.

If a pedal point part contains variations that are set in the Variation Choices window to play only with specific chord roots, then the chord for composition for a pattern serves as the chord that the Variation Choices window is checking to determine compatibility with the variation. If a part is active and open, then all its variations play randomly during playback of the pattern. However, all other parts play only variations that are compatible with the chord for composition.

If you change the key signature for the pattern, the root function of the chord for composition may change relative to the key. For example, a 2Dma7 chord for composition serves as a II chord in the key of C, but as a III chord in the key of Bb. Thus, a variation set to work only with a II chord no longer plays if you change the key from C to Bb.

Note The Function option must be selected to see this change occur.

This function enables you to test the playback of a part and its variations as you create it, without other parts in the pattern randomly playing variations that are not normally used with the variation you are creating. Thus, only the variations that are compatible with the current chord for composition are heard. This lets you change the chord for composition as needed during the creation process, so that you can hear appropriate variations from other parts that fit with the chord for composition you have chosen. So long as the Function option is selected, all parts in the pattern adjust as you change the chord for composition. They remain constant with the final chord that you choose for the entire pattern. You can leave the pattern set to a fixed key, and conveniently create new variations in the active part while hearing only the variations in other parts that are appropriate for that chord for composition. For example, if you are in the key of C but want to create a variation that responds only to a IImi chord, change the chord for composition to Dmi. With the Function option selected, all parts in the pattern shift up one step.

Now create the new variation, and during playback only those variations in the non-open parts that are set to work with a II chord will play. If you set some variations to avoid playing with any II chord except a IImi chords, then those variations will play, while others will not.

After you create the new variation, you can change the chord for composition to another chord, and all parts, including the one just created, adjust to the new chord.


Chord Levels

In the Default Play Mode box, you can choose a play mode type and chord level for a part. The chord level you choose determines which level (1, 2, 3, or 4) of a chord the part responds to when it encounters a chord.

The properties of all chords in DirectMusic Producer include four levels of chord structure that you can use to combine multiple layers of chord tones to create chords with as much complexity as you need. The properties also include a chord scale for each level, and settings for the inversions of the chord that are acceptable. For more information, see Chord Properties Window.

You can set instrument parts in a pattern to use different chord levels, so that as a part encounters a chord, it uses the chord and scale on the level to which it is assigned.

As a pattern encounters various chords, the parts in the pattern respond to the chord and scale at their assigned levels. If the chord is simple, where all four levels of the chord contain the same chord structure and scale, then the resulting notes are transposed in all parts of the pattern in a regular manner. If the pattern encounters a complex chord, where each level has a different chord and scale, the various parts in the pattern play a complex mixture of chords and scale notes that combine in interesting layers of tonality.

For information about creating chord levels and the effect that chord structure has on the playback of a pattern, see:

  • Chord Properties Window
  • How a Pattern Interacts with a Chord
  • Simple and Complex Chord Structures


Creating Nonvarying Styles

You can create styles that have as much variability as you choose, and then design a segment that plays the style with as much variability or predictability as you need. Even if you create a style that has numerous patterns and variations for each part, you can apply limits to each element to control when a pattern or variation plays. To the extent that you apply such limits, you can make a segment play a style with a level of predictable playback that approaches the consistency of a simple MIDI file.

Each of the following options adds more control to the playback of a DirectMusic Producer piece:

  • For the patterns of a style, set each variation to work with a chord type and root in the Variation Choices window. The variation plays only when it encounters the assigned chords.
  2. In the Style Designer window, give each pattern a single groove level, where the upper and lower numbers are equal.
  3. For the patterns of a style, create only one variation per part in each pattern. This can also be done for embellishments and motifs. This limits the variability of a given measure of a segment.
  4. In conjunction with option C, create a segment with specific chords and insert a groove level change that triggers a desired pattern at the same time as the chord.

For more information, see Style Designer.

To assemble DirectMusic Producer components for minimum variation during playback

  1. In the project tree, open an existing project or add a new project.
  2. Create or choose an existing DirectMusic Producer style.
  3. Implement options A, B, and C, described in the preceding list, to limit the variability of the style.
  4. Build a segment that plays the style using commands for which band to use, what chords the style material follows, when a special embellishment should play, and at what level of intensity the style should play.
  5. Implement option D, described in the preceding list, to limit the variability in the segment.


DLS and DLS Collections

A downloadable sound (DLS) is a self-contained, synthesized instrument sound that you design using the Microsoft DLS Designer. A DLS instrument provides the same timbral quality when played over any hardware sound card or software synthesizer. DLS combines the advantages of digital sampling with the compactness and flexibility of MIDI. It is essentially a MIDI instrument sound you create that functions independent of MIDI instrument sounds already on a hardware sound card. A DLS instrument can be downloaded to any computer to provide consistent sound quality for compositions.

A DLS instrument is always created as part of a DLS collection, even if the collection consists of a single DLS. However, a DLS collection is usually made up of multiple DLS instruments that you combine and distribute as a group for use with a composition. The collection contains all the instrument settings and waves used to define each DLS instrument you want to use.

You can use DLS collections to provide all the instrument sounds for a Microsoft DirectMusic Producer project. DirectMusic Producer also comes with a complete General MIDI collection of DLS instruments called the GM.dls collection. You can use this collection, and also supply it to other users. DLS collections are also available commercially, or you can use DLS Designer to create and design new DLS instruments to include in your own DLS collections. For more information, see DLS Designer.

After you create a DLS collection, you can use the instrument sounds from the collection in a band to play a style. Individual instruments and sounds in the DLS collection can augment the instrumentation in a band, or the band can consist entirely of instruments and sounds in the DLS collection. For more information, see Performance Channel Instrument Assignment.

The GM.dls collection is installed in the Windows/System32/Drivers folder when you install the DirectMusic system components on your computer. The default setting in DirectMusic Producer uses the GM.dls collection for playback on all PChannels. Unless you choose to use instrument sounds from other DLS collections or other sound sources, such as hardware playback devices, your DirectMusic Producer piece plays using only the sounds in the GM.dls collection. The GM.dls collection is available to all projects at all times, and you do not need to add it to the project tree. For more information, see Default GM Sound Set.

You can view and edit the components of a DLS collection in the project tree. For more information, see Viewing the Contents of a DLS Collection.

Important The GM.dls collection supplied with DirectMusic Producer uses the GM/GS® Sound Set, which is trademarked by the Roland Corporation, and is the legal property of the Roland Corporation. The GM.dls collection cannot be modified and must be redistributed in its entirety, without alteration. The component sounds and waveforms in the Roland GM.dls collection must not be used as source material to create other DLS sounds or collections. Be sure to read the Legal Information regarding the use of the GM.dls. For any component you use, also read copyright information in the properties window of the file.


DLS Level 1 and Level 2

Beginning with the DirectX 8.0 release of DirectMusic Producer, you can design DLS collections to take full advantage of Level 2 DLS sounds. Previous releases of DirectMusic Producer included support for Level 1 DLS only.

Level 2 DLS provides several new options for designing DLS instruments (for more information, see DLS Designer):

  • Stereo samples
    In addition to mono wave files, you can insert stereo waves into the Waves folder of a DLS collection, and integrate them into DLS 2 instruments.
  • 128 regions for all DLS instruments
    DLS Level 2 allows all DLS instruments to have a separate region (each referencing a single wave) for each of the 128 MIDI notes. DLS 1 instruments have a maximum of 16 separate regions.
  • Multiple layers of regions
    DLS Level 2 allows each MIDI note to control multiple regions (each referencing a single wave). Regions can be layered (to achieve a richer timbre) or can have unique velocity ranges assigned.
  • Two LFO generators
    The Low Frequency Oscillator capabilities of the articulation are doubled, from one to two LFO controls. The first is designated for volume while the second is for pitch or filter modulation.
  • Six segment envelope generators
    DLS Level 1 required four segment envelopes for Volume and Pitch articulation: Attack, Decay, Sustain and Release. Level 2 adds Delay and Hold to feature six segment envelopes: Delay, Attack, Hold, Decay, Sustain and Release.
  • Editing of conditional chunks
    As you create DLS Collections, you can use a mixture of Level 1 or Level 2 instrument sounds. You can also set flexible assignments, so that your music adjusts to use whichever DLS level is available on a user's computer.


Viewing the Contents of a DLS Collection

You can view and edit the components of a DLS collection in the project tree. The following illustration shows a small DLS collection and its component parts in the project tree. The flute instrument is opened to display its region and articulation components.

The primary components of a DLS collection are:

  • Instruments

    Individual instrument sounds designed to use multiple wave samples, along with parameters that describe how the samples are used.

  • Waves

    Waveform sound files from digitally recorded samples, along with parameters that describe how to perform the sound.

Each instrument in a DLS collection is defined by:

  • Region settings

    Parameters that specify a sound to use for a given pitch range.

  • Articulation settings

    Parameters that define the characteristics of how the volume and pitch of a sound is attacked, sustained, decayed, and released, plus settings for the use of low frequency oscillation with the sound.

For information about creating and editing DLS instruments, adjusting regions and articulations, and controlling wave properties, see DLS Designer.


How DLS Works

The technology used by DLS is called wavetable synthesis, which is the synthesis of instrument sounds from digital samples. These samples are obtained from recordings of real musical instruments or from any sound you want to use for playback, such as a dog's bark or dripping water. The sampled sound is stored as digital information, and then looped and manipulated to produce continuous sounds at various pitches and volumes.

The following illustration shows a typical sampled waveform recorded from an instrument playing a single note.

Synthesizer hardware manufacturers have used wavetable synthesis for several years, with a variety of sampled sounds stored in the permanent memory of a sound card or playback hardware. The synthesized sounds used in place of real musical instruments generally have more realistic timbres when digitally sampled and produced through wavetable synthesis than through algorithmic frequency modulation (FM) synthesis.

However, a particular instrument sound may be significantly different on different pieces of hardware, depending on the manufacturer's implementation of that sound. Moreover, all hardware synthesizers are limited to a fixed set of instrument sounds, regardless of whether they use wavetable synthesis or FM synthesis.

With the DLS standard, you can expand on the technology of wave-table synthesis. You can create a sampled waveform, edit it, and use it as the source of an instrument sound.

DLS sounds must play though a synthesizer that is DLS-compatible. Several commercial hardware manufacturers make DLS-compatible sound cards and other DLS devices for computers. DirectMusic Producer includes a software synthesizer, called the Microsoft Synthesizer, that can be used to play DLS without the need for DLS-compatible hardware. The Microsoft Synthesizer is installed with the DirectMusic system components. This ensures high-quality playback of DLS sounds. For more information, see Consistency and Flexibility Through DLS.

By default, all playback output of DLS sounds, such as the GM.dls collection, is set to play through the Microsoft Synthesizer, so that a DLS instrument sound you design can be played just as any MIDI instrument sound. For information about changing the default playback setup, see Playback Devices.


Consistency and Flexibility Through DLS

Using DLS, you can create, mix, and edit sampled sounds and play them on any computer with a sound card. This ensures that exact instrument sounds are used to play your composition. Because DLS sound data is stored as software, a DLS sound can be used in computer applications and Web pages, and application developers can be sure that their soundtracks are delivered in a uniform way on all systems.

A default set of DLS sounds, called the GM.dls Collection, is installed in the Windows/System32/Drivers folder when the DirectMusic system components are installed. If you use this default collection in your files, and do not assign parts to play using sounds from other DLS sound sets or from hardware playback devices, you can be assured that all DirectMusic users will hear the files you design in a uniform way.

You can choose a different default playback synthesizer for your DirectMusic Producer files, but this may require that you provide the synthesizer to other users so they can hear your files play correctly. For information about changing the default playback setup, see Playback Devices.


GM.dls Collection

A DLS collection called GM.dls is provided with DirectMusic Producer and can be used with any DirectMusic Producer piece. This collection is the default sound set for playback in DirectMusic Producer. For more information, see Default GM Sound Set. The sounds in this DLS collection consist of the GM/GS® Sound Set that are licensed from Roland Corporation and are the same as those used for Roland's Sound Canvas™ family of music synthesizers.

The GM/GS Sound Set consists of 254 instrument sounds and sound effects. This includes the 128 standard instrument sounds of the General MIDI (GM) specification, plus 126 additional GS instrument sounds that are unique to sound sets designed by Roland Corporation. When you use Band Editor to choose instrument sounds, you can select instruments from standard lists containing the 128 General MIDI (GM) sounds, or you can choose GS sounds from GS lists that provide alternate instrument sounds.

Note The GM.dls sounds are copyrighted by the Roland Corporation and licensed for distribution as a complete, intact set of sounds by Microsoft. Because of this, you are not allowed to modify the copyrighted wave files or use them as sources for your own custom DLS collection. However, you can distribute the entire GM.dls collection with your DirectMusic compositions.

All playback output of DLS sounds plays through the Microsoft Synthesizer by default. This eliminates the need for special playback hardware that can play DLS sounds. For information about changing the default playback setup, see Playback Devices.

For a list of the DLS instruments in the GM.dls collection, see Instruments in the GM.dls Collection.

For a list of sampled waves used to create the GM.dls collection, see Wave Samples in the GM.dls Collection.


Instruments in the GM.dls Collection

There are 254 instrument sounds and sound effects in the GM.dls collection. Each instrument has a name, such as Piano 1 or Piano 2, and three identification numbers which distinguish it from other instruments that may have the same name. These numbers are displayed next to the instrument name and correspond to numbers assigned in the DLS Designer window. From left to right, the three numbers represent the following properties for the instrument:

  • Most Significant Byte (MSB)
  • Least Significant Byte (LSB)
  • MIDI Patch Number

There are 128 MIDI patch numbers (0 through 127) that are commonly used to identify a general instrument type, such as trumpet, patch 56, for use in MIDI hardware and software. For convenience, the General MIDI standard establishes standard usage of the 128 patch numbers for specific instrument types.

The instruments in the following GM.dls list are ordered according to their MIDI patch numbers, the third number to the right of the name. The numbers next to each instrument name are the MSB, LSB and Patch number, listed from left to right, for that instrument sound.


Wave Samples in the GM.dls Collection

Following is a list, in alphabetical order, of the 495 sampled waves used to create the instruments in the GM.dls collection. In many cases, multiple waves are used in a single DLS instrument. For example, A_SAX53 (in the second column of the list) is one of several wave samples recorded from an alto saxophone. Each A_SAX wave represents a different range played on the saxophone.


Adding an Existing DLS Collection to the Project Tree

With DirectMusic Producer, you can add a DLS collection to the project tree. You can then edit instruments, create new instruments, and use the collection as a source for instruments and wave samples in new DLS collections.

If you have more than one DLS collection in a project tree, you can drag waves from one collection to another. For more information, see Adding Waves to a DLS Collection.

You can also add a new, empty DLS collection to the project tree. For more information about this, see Creating and Editing Custom DLS Collections.

Note When you add a DLS collection to the project tree, DirectMusic Producer checks whether the DLS contains any instrument with the same least-significant byte (LSB), most-significant byte (MSB), and patch numbers as an instrument in the DLS collection already in the tree. If it does, a message is displayed and options are provided for fixing the conflict. For more information, see DLS Patch Conflicts.

Note If you add the GM.DLS collection to the project tree, you are creating another instance of the collection. In this case, you must edit the GUID number of the new instance of the DLS collection to prevent DirectMusic Producer from confusing the two copies of the same DLS collection. See Changing the GUID Number of a DLS Collection.

To add an existing DLS collection to the project tree

  1. On the File menu, choose Insert File into Project.
  2. In the Files of type list, choose DLS Collection Files (*.dls, *.dlp).
  3. In the Look in box, locate the folder containing the DLS collection file to open. By default, GM.dls is installed in C:\Windows\System32\Drivers for Microsoft® Windows® 98 computers. A similar location is used with later versions of Windows.
  4. Double-click the DLS collection file. The DLS collection you select appears in the project tree.

After you add a DLS collection to the project tree, you can double-click its icon to display its instrument and wave folders.

By combining instruments and waves in a DLS collection, you can design a collection that fits the instrumentation needs of any composition.

  • For information about how to add waves, see Adding Waves to a DLS Collection.
  • For information about how to add instruments, see Creating and Editing Custom DLS Collections.


Creating and Editing Custom DLS Collections

The easiest way to create a new DLS collection is to modify an existing collection to suit your needs. You can also create a new DLS collection, adding instruments and waves, or dragging waves from an existing collection to a new collection.

After you place an instrument or a wave inside a DLS collection, you can edit the files with DLS Designer. You also can use DLS Designer to edit or design new DLS instruments.

To create a custom DLS collection

  1. On the File menu, click New.
  2. In the New box, double-click DLS Collection. A new DLS collection is added to the project tree.
  3. In the project tree, insert or drag wave files into the Waves folder of the new DLS collection. See Adding Waves to a DLS Collection.
  4. In the project tree, insert or drag instrument files into the Instruments folder of the new DLS collection. See Adding Instruments to a DLS Collection.
  5. Double-click the newly added instrument to open DLS Designer.
  6. Using DLS Designer, specify which wave files to use in the instrument and define regions in the instrument for each wave used.
  7. Using DLS Designer, define articulations for each region.
  8. Repeat steps 2 though 7 to create additional instruments in the DLS collection. You can use wave files already in the collection with multiple instruments, or add more wave files to the collection.


Adding Waves to a DLS Collection

Any waveform file stored on your computer can be used as a wave in your DLS collection, so long as you observe the legal restrictions for use of the wave file. If you do not have a collection of waveforms to use as instrument sounds, you can use commercially available sound recording hardware and software to create new waveforms. DirectMusic Producer does not include the ability to record waveforms. Refer to the documentation that comes with your sampling system for information about digitally recording sound. When you save waveforms, save them in the wave (.wav) format.

Note: It is recommended that waves placed in DLS collections have sample rates between 3kHz and 80kHz. If a wave's sample rate is outside of these boundaries, its pitch will be incorrect on playback.

The more waves you add to a collection, the larger the resulting DLS collection file. File size is important to consider if you are developing a DLS collection to download from the Web to play music on a Web page. For example, the DLS collection that comes with DirectMusic Producer includes 495 waves, and the file size is 3.3 megabytes.

You can add waves to a DLS collection using menu commands, or by dragging the wave from another place in the project tree.

Note When you drag a wave file into a Waves folder of a DLS collection, it copies the last saved version; any changes you've made to it are not copied.

To insert waves into a DLS collection using menu commands

  1. In the project tree, right-click the Waves folder and choose Insert Wave on the shortcut menu.
  2. In the Look in box, locate the folder containing the wave file to use.
  3. Double-click the wave file. The wave appears in the project tree.
    or
    Press CTRL and click multiple wave files to select them. Click Open. The waves appear in the project tree.
    or
    Press SHIFT and click two wave files to select both files and all the files between them. Click Open. The waves appear in the project tree.

To drag a wave into a DLS collection

  1. In the project tree, locate the wave(s) you want to drag. If necessary, open the Waves folder of a source DLS collection to display its contents.
  2. Drag a wave file onto the Waves folder of the destination DLS collection to move the original wave file.
    or
    CTRL-drag a wave file onto the Waves folder of the destination DLS collection to create a copy of original wave file.

After you add a wave to a DLS collection, you can double-click its icon to launch Wave Editor and display the contents of the wave file.

Note Wave Editor is contained within the DLS Designer module of DirectMusic Producer. For information about editing the properties of a wave file, see DLS Designer.


Adding Instruments to a DLS Collection

You can add a new instrument to a DLS collection, drag an existing DLS instrument from one DLS collection to another collection, or CTRL-drag an existing instrument to make a copy of it in a DLS collection. After an instrument is in the collection, use DLS Designer to edit it.

After you place a DLS instrument in a DLS collection, you can edit and configure the instrument by defining its regions and settings for its articulation using DLS Designer.

When you drag or CTRL-drag an instrument, DirectMusic Producer displays the following window asking if you want a copy of the wave files associated with the instrument to be inserted in the destination DLS collection.

We recommend choosing Yes. If you choose No, another window is displayed telling you that the instrument you dragged has been reset to use waves already present in the destination DLS collection.

To insert a new instrument in the DLS collection

  1. If necessary, double-click the icon of a DLS collection in the project tree to display its internal icon.
  2. Double-click the internal icon of the DLS collection to display its Instrument and Wave folders.
  3. Right-click the Instruments folder and choose Insert Instrument on the shortcut menu. The Instruments folder opens to display its contents and a new, blank instrument is added.
  4. In the Instruments folder, right-click the new instrument and choose Properties on the shortcut menu.
  5. In the Instrument tab of the Properties window, enter a name, subject, author, and copyright for the new instrument. Also enter any comments.

To move a DLS instrument from one DLS collection to another

  1. In the project tree, open the Instruments folder of the DLS collection containing the instrument to drag.
  2. Drag the icon of the instrument onto the internal icon of the destination DLS collection. A window is displayed asking if you want to create copies of the associated waves.
  4. Click Yes to copy wave files associated with the instrument to the Waves folder of the destination DLS collection.

    or

    Click No to copy only the instrument and not its waves in the destination DLS collection.

To copy a DLS instrument from one DLS collection to another

  1. In the project tree, open the Instruments folder of the DLS collection containing the instrument to copy.
  2. Hold the CTRL key and drag the icon of the instrument to copy onto the internal icon of the destination DLS collection. A window is displayed asking if you want to create copies of the associated waves.
  4. Click Yes to copy wave files associated with the instrument to the Waves folder of the destination DLS collection.

    or

    Click No to copy only the instrument and not its waves in the destination DLS collection.


Default GM Sound Set

DirectMusic Producer comes with a complete General MIDI collection of DLS instruments called the GM.dls collection. You can use this collection with any DirectMusic Producer piece, and you can also supply it to other users.

By default, DirectMusic Producer is set up to use the GM.dls Collection for all playback of DirectMusic Producer files. Since the GM.dls collection is installed onto a computer along with the other DirectMusic system components, you are assured that all users who install DirectMusic will hear the music you design in a uniform way. See Consistency and Flexibility Through DLS.

Using the default playback settings in DirectMusic Producer, the instrument sounds you assign to a PChannel are played though the Microsoft Synthesizer, a software synthesizer provided with DirectMusic Producer. If you assign a PChannel to play using a General MIDI instrument sound from the instrument lists in Band Editor, the default GM DLS sound set is used. However, you can open the Audiopath Designer and set any individual PChannel or group of PChannels to play using another synthesizer, such as a hardware playback device or a software synthesizer other than the Microsoft Synthesizer. For instance, if a hardware device can play DLS sounds, the default GM DLS collection continues to be used. If a hardware device is not DLS-compatible, then its own General MIDI sounds are substituted for the sounds in the default GM DLS collection. For more information, see Playback Devices.

If you use the default DLS collection when designing your files, and do not assign any parts to play using sounds from other sound sets or hardware devices, your DirectMusic Producer piece plays using only the sounds in the GM.dls collection, and you are assured that all other users who install DirectMusic will hear the music files you design play with uniform instrument sounds. As an added layer of security, any instrument part that you assign to use a sound that is not available on another user's machine automatically reverts to the default setting of playing a General MIDI sound provided in the GM.dls.

The default GM DLS collection is normally stored in the Windows/System32/Drivers folder, making it available to all projects at all times. Thus, you do not need to add it to the project tree. If you add a copy of the GM.DLS collection to the project tree, you are creating a new instance of the same collection. In this case, you must change the globally unique identifier (GUID) of the new copy to prevent Producer from confusing the two instances of the GM.DLS collection. For more information, see Changing the GUID Number of a DLS Collection. You can also choose a different DLS collection as the default GM DLS collection. For more information, see Choosing a Different Default General MIDI Sound Set.


Choosing a Different Default General MIDI Sound Set

FEATURE NOT YET IMPLEMENTED

By default, DirectMusic Producer uses the GM.dls Collection for all playback of DirectMusic Producer files. In place of the GM.dls, you can choose a different DLS collection to use as the default sound set. After you choose a new default collection, all DirectMusic Producer files you create are set to play using the new default collection.

If you select a new default GM DLS collection, you must provide the same collection to a user playing your DirectMusic Producer file to be assured that the music is played using the correct instrument sounds.

To work properly with DirectMusic Producer, a DLS must conform to the General MIDI specification for instrument patch assignments. It should contain a complete set of GM instrument sounds, so that each instrument choice shown in the instrument lists of Band Editor corresponds to the appropriate DLS sound. If an instrument part is assigned to use a GM sound that is not included in the default set, the part is silent during playback. It is not necessary for a new DLS collection to include GS sounds. If a default DLS collection does not include GS sounds, the GS lists are empty in the band editor. If a part is assigned to a GS sound in the band editor, the part will be silent unless the GS sound is included in the DLS set.

Note When a Producer file is played using the Microsoft Windows CE operating system, the MSB and LSB numbers of a sound are ignored. A GS instrument sound assignments is played using the GM instrument with an equivalent patch number.

Regardless of the DLS collection you use as the default, you can set a PChannel to play using any sound source, including custom DLS collections, commercially available DLS collections, or sounds in hardware playback devices. However, if you assign a group of 16 PChannels to play using a synthesizer that is not DLS-compatible, the default GM DLS collection cannot be used. For more information, see Playback Devices.

As long as playback uses a DLS-compatible synthesizer, such as the Microsoft Synthesizer, the DLS sounds you use to create your music can play.


Changing the GUID Number of a DLS Collection

Each DLS collection you use in Producer has a globally unique identifier (GUID) to differentiate it from other DLS collections of the same name.

If you add a copy of the GM.dls collection to the project tree, you create a new instance of the same collection. In this case, you must change the GUID of the new copy to prevent Producer from confusing the original version of the GM.DLS collection with any new copies you create in the project tree.

To change the GUID number of a DLS collection

  1. In the project tree, right-click the icon of a DLS collection you want to assign a new GUID number, and choose Properties.
  2. In the DLS Collection Properties window, make certain the Collection tab is selected.
  3. In the Info region of the tab, click Edit GUID.
  4. In the Edit GUID window, click Create New GUID. A new, unique GUID number is created for the DLS collection.


DLS Designer

A DLS instrument is built from one or more digital samples, typically recorded from an acoustic musical instrument playing single pitches. You can use DLS Designer to design and edit a DLS instrument, using references to any number of wave samples, with complete control over how the instrument plays the wave samples.

DirectMusic Producer uses 8-bit and 16-bit PCM mono or stereo wave files, and supports editing of both DLS level 1 and level 2 files. DLS level 2 includes layering of waves, a low pass filter, six segment envelopes and conditional chunks.

Note: DirectMusic Producer reads a stereo wave file as two separate waves that are aligned to play at the same time on the left and right channels. They must be assigned separately to a note in a DLS instrument. For a single note to play both left and right waves, you must create a second layer. See Stereo Waves.

Because the tone quality of most acoustic instruments changes according to the register being played, DLS instruments usually contain multiple wave samples to make the instrument sound realistic over a wide range of pitches. Each sampled sound is assigned to a certain range of pitches in the DLS instrument, called a region.

For example, a violin's timbre, or tone quality, is different when playing in its high, middle, and low registers. When you create a DLS for the violin, you would want to take at least three samplings of the violin, playing a high note, a mid-range note, and a low note, to reproduce this difference in timbre. Using DLS Designer, you insert these three samples in the DLS instrument, assigning a region or range of pitches to each sample.

For information about opening an existing DLS instrument, see Opening a DLS Instrument.

For information about creating and editing new DLS collections, see Creating and Editing Custom DLS Collections.

For information about adding a DLS collection to a project, see Adding an Existing DLS Collection to the Project Tree.


Opening a DLS Instrument

A DLS instrument is always part of a DLS collection. To open a DLS instrument, double-click a DLS collection icon in the project tree to display its Instruments folder, and then double-click the icon of the folder to display its contents. You can double-click the icon of an instrument in the DLS collection, as shown in the following illustration.

You can add a DLS collection to the project tree by creating a new one or adding an existing DLS collection. For more information, see Creating and Editing Custom DLS Collections or Adding an Existing DLS Collection to the Project Tree.

Double-clicking the icon of a DLS instrument in the project tree opens the instrument in the DLS Designer, providing control of all aspects for how a DLS instrument plays, including wave sounds used, filters and envelopes for playing the waves, patch number assignment, and more. See DLS Designer Window.


DLS Designer Window

Double-clicking the icon of a DLS instrument in the project tree displays the instrument in the DLS Designer Window, as shown in the following figure.

The DLS Designer window consists of the following five sections:

  • Regions and layers

    A graphic interface, with a keyboard showing all available MIDI pitches, uses defined ranges of notes as individual regions. You can divide the available notes into any number of regions, up to 128. You can also insert additional layers of regions, so that a note on the keyboard belongs to regions in multiple layers. See Number of Regions to Use.

  • Instrument settings

    Settings for patch and instrument bank numbers, and for designating the instrument as a set of drum and percussion sounds. Settings apply to the entire DLS instrument, regardless of how many individual regions or layers you use to design the instrument.

  • Audition Options

    Settings for each range that control the response when you click a key in the on-screen keyboard. This helps you to determine how the pitches in the region will sound when various MIDI velocities are used during playback. You can also isolate one layer of region assignments to hear only the waves used in that layer when you click the on-screen keyboard.

  • Region settings

    Settings for the pitch range and wave assignment for a region. You can select any region above the on-screen keyboard, and adjust its settings. Region settings also include velocity range, note overlapping, and Conditional Chunks for when an instrument plays in a DLS1 or DLS2 environment.

  • Instrument Articulation settings

    Articulation settings for all the regions in the DLS instrument. This includes a separate set of controls to set volume, pitch, Mod low frequency oscillation for either pitch or volume, Vib low frequency oscillation for pitch only, and filtering. In addition, you can give each sample an articulation, which defines characteristics such as attack (how quickly a note reaches full volume), decay (how quickly it falls away from full volume), and other qualities that make the sound more like that produced by a real instrument.

The preceding figure shows the DLS Designer window containing a violin sound with nine samples used in nine regions. In the figure, the lowest region is selected, indicated by a red bar along the lower region of the graphic keyboard. The keyboard represents the full range of notes available to an instrument, while the region bar along the top of the keyboard indicates the range of notes contained in a specific region.

The lowest range stretches from C0 to G#5. The sampled violin sound wave used in the low range is called VIOLIN68. Although the sample was created by recording a single pitch, indicated as G#4, the root pitch for the sample, the sound wave data is manipulated at run time to produce all possible pitches from C0 to G#5.

Unselected regions appear above the keyboard with only a thin, black outline. For example, the highest range in the instrument, not selected in the illustration, uses a different sample and extends from B8 to the highest pitch, G10. After all pitches have been assigned a sample, the DLS can be used as a playback instrument for any note played in a segment or style.

Instrument regions can be resized and moved around using the mouse. You can also drag one region over another region and drop it in an empty place on the region bar. See Dragging Regions.

For more information about building a DLS instrument, see Creating a New DLS Instrument and Editing a DLS Instrument.


Creating a New DLS Instrument

You can add a new, blank DLS instrument to a DLS collection, name the instrument, and edit its properties using DLS Designer. For information, see Adding Instruments to a DLS Collection.

If there is no DLS collection in the tree, you must either create a new DLS collection, or insert an existing DLS collection to the tree. An existing collection already contains instruments and waves that can serve as a basis for designing new instruments. See Adding an Existing DLS Collection to the Project Tree, and Creating and Editing Custom DLS Collections.

After you add an instrument to a DLS collection, you can double-click its icon in the project tree to open it in DLS Designer. For more information, see Editing a DLS Instrument and


Editing a DLS Instrument

You can double-click the Instruments folder of a DLS collection to show the DLS instruments it contains. You can then double-click an instrument to display it using DLS Designer. A window similar to the following is displayed in which you can edit all settings for the instrument.

An instrument is made up of settings for one or more regions of pitches. Each region contains a range of MIDI pitches, and you can assign separate settings for how each range plays.

The DLS Designer window has a graphic range keyboard showing a representation of each region and its key note. A region bar along the top of the keyboard shows the range of notes over which the region plays. The following figure shows a selected region of notes, indicated by a red line.

The selected region in this figure ranges from C4 to B6. When a region of pitches is selected, settings in the Region and Instrument Articulation areas of the DLS Designer window apply only to the selected region.

Unselected regions in the DLS instrument appear along the top of the keyboard as a thin black outline. The low region, not selected in the illustration, ranges from the lowest note, C0, to B5. The high region, also not selected in the illustration, ranges from C7 to the highest note, G10.

You can resize and move instrument regions using the mouse, and you can drag regions to an empty area on the same region bar, or another layer. For more information, see Drag-and-Drop.

To edit a DLS instrument

  1. In the project tree, double-click a DLS instrument to open the DLS Designer window.
  2. In the Instrument section of the DLS Designer window, assign unique bank and patch numbers in the MSB, LSB, and Patch boxes. If the instrument is a drum kit, click the Drums option. See Patch Numbers, LSB, and MSB in DLS.
  3. At the top of the graphic keyboard, click an existing region, or right-click an empty space and choose Insert to enter a new region.
  4. In the Region section of the Instrument window, select the range, key group, root, and wave for the region. For information about modifying these settings, see Region Settings.
  5. After you assign a wave to the region, test the sound of the instrument by pressing the SPACEBAR.
  6. If the region does not include all 128 notes, you can define more regions for the instrument. To do this, adjust the range of a region to create an empty space. Press the CTRL key and click the region strip at the top of the keyboard. You can also right-click an empty space and choose Insert Region. For more information, see Adding a Region to a DLS Instrument.
  7. Adjust the settings for the new region as required. Repeat steps 6 and 7 for other regions to define for the instrument.
  8. To override the properties of the wave assigned to a region, right-click the region in the project tree and click Properties on the shortcut menu.
  9. Click the options of the wave settings to override in the region. For information about wave settings and overriding them, see Wave Properties.

Note Altering the Root setting in the Region section of the window automatically overrides the Root setting of the wave used for a region.


Using Sampled Waves

An instrument in a DLS collection uses the waves you place in the DLS collection as the basis for its timbre. Because the tone quality of most acoustic instruments changes according to the register being played, you should assign more than one wave to most instruments to make them sound realistic. For example, a wave sampled for the low register of a clarinet does not sound like a clarinet when it is played as an upper-register clarinet note. For more information, see Number of Regions to Use.

Note: Using extremely large waves in a DLS instrument is not recommended. Large waves can cause memory shortages in the computer during playback. To avoid overtaxing system memory, it is better to split a large wave into smaller sections and combine multiple smaller sections in an instrument sound.


Patch Numbers, LSB, and MSB in DLS

The patch number, LSB, and MSB you assign to an instrument sound can be any combination you want. Where possible, it is recommended you use patch numbers that correspond to similar sounding instruments in the GM.dls collection, and use only the LSB and MSB numbers to distinguish your instrument sounds from GM sounds. In the case where a DLS instrument you design cannot be located during playback, DirectMusic Producer substitutes the GM instrument sound that has the same patch number.

Using similar patch numbers for instruments you design provides a suitable fallback. For example, the GM patch number for a clarinet sound is 71. If you create a new instrument sound that is somewhat similar to a clarinet, use the patch number 71 with a unique combination of LSB and MSB numbers. In the event your instrument sound cannot be located on the computer, playback uses the standard GM clarinet sound.

For more information, see Patch Numbers, MSB, and LSB


DLS Patch Conflicts

When you create new DLS instruments, it is recommended that you avoid using identical combinations of most significant byte (MSB), least significant byte (LSB), and patch numbers for two instruments in a project. This includes DLS instruments that you copy and place in a separate DLS collection.

When you edit the LSB, MSB, and patch numbers in the DLS Designer window, DirectMusic Producer prevents you from using a combination of numbers that conflicts with an instrument in the project. Any DLS collection that has been opened and displayed in the project tree is loaded into memory. Also, DirectMusic Producer retains a record of the default MSB, LSB, and patch numbers for instruments in the GM.dls collection.

If you use the arrow keys to select numbers in the fields for LSB, MSB, and patch numbers, the number combinations already in use are skipped to prevent conflicting combinations. You can override this function manually by typing numbers in the edit boxes. If you manually enter a number in a field that creates a conflict, a message warns you of the conflict and also provides you with options to fix or ignore the conflict. This occurs whether the conflict is with an instrument in the same DLS collection or a separate one. The warning is always displayed when you are creating a new instrument that conflicts with one of the instruments of the GM.dls collection. (For more information, see Patch Conflict Warning Messages.

If you deliberately create a DLS instrument that conflicts with an instrument in the GM.dls collection, the DirectMusic playback components use the new instrument in place of the corresponding instrument in the GM.dls collection.

DirectMusic Producer warns you about conflicts between instruments in the project as you are editing the settings of an instrument, or when you first open a DLS collection during a work session. This is true even if you have not saved changes to the DLS collection after editing MSB, LSB, and patch numbers. When the warning is displayed, you can click OK to return to DLS Designer to modify the conflicting setting, or click Ignore to allow the conflicting setting to remain.

DirectMusic Producer does not warn you about conflicts if you copy an instrument and insert it in the project tree. The copy of the instrument can have identical MSB, LSB, and patch numbers, whether you insert it in the same DLS collection or a different one. All numbers are retained in the copy of the instrument, exactly as in the original instrument. However, purposefully creating or allowing a patch conflict causes DirectMusic to display additional warnings about conflicts each time you open the project.


Patch Conflict Warning Messages

When you edit a DLS instrument, or when you open a DLS collection in the project tree, DirectMusic Producer warns you about conflicting combinations of most significant byte (MSB), least significant byte (LSB), and patch numbers that occur between instruments in the same DLS collection, or in other collections in the project tree.

Each time you open a DLS collection, or edit the MSB, LSB or patch numbers of a DLS instrument, DirectMusic Producer examines the numbers in the DLS collections that have been open during the current work session. This includes DLS collections that belong to other projects, as well as collections that have been opened during the work session and then closed, so that a plus (+) remains next to the file icon of the DLS collection in the project tree.

If a DLS collection in the project tree is not open, it is not examined.

DirectMusic Producer also checks for conflicts between an open DLS collection and the General MIDI DLS collection (GM.dls).

Note If you modify the MSB, LSB, or patch numbers of an instrument in the GM.dls collection, DirectMusic Producer does not compare those modified settings with settings in other DLS collections until you add the GM.dls collection to the project tree and open it. However, DirectMusic Producer stores a record of the original default settings of the GM.dls collection. When you open a DLS collection, DirectMusic Producer checks for conflicts with these default settings, regardless of the state of the GM.dls in the project tree.

If you try to enter numbers that would create a conflict, DirectMusic Producer attempts to skip those numbers. When you close the editing window, DirectMusic Producer checks for conflicts and warns you if any are found.

Conflict warning messages are displayed under three circumstances:

  • Conflicts within a DLS Collection

    While you are editing a DLS instrument, DirectMusic Producer warns you of a conflict with an instrument in the same DLS collection.

  • Conflicts with a Different DLS Collection

    While you are editing a DLS instrument, DirectMusic Producer warns you of a conflict with a different DLS collection in the project tree. This includes any DLS collection that has been opened, including DLS collections opened in other projects.

  • Conflicts When First Opening a DLS Collection in a Project

    When you first open a DLS collection, DirectMusic Producer warns you of a conflict with another previously opened DLS collection in the project tree.

Warning for Conflicts within a DLS Collection

If you attempt to set the MSB, LSB, and patch numbers for a DLS instrument to numbers already in use in the same DLS collection, the following warning is displayed.

When this warning is displayed, click Cancel to undo the last changes to the patch settings of the instrument, or click Ignore to allow the conflicting setting to remain.

Warning for Conflicts with a Different DLS Collection

If you attempt to set the MSB, LSB, and patch numbers for a DLS instrument to numbers used in a separate DLS collection currently open in the project tree, the following warning is displayed.

When this warning is displayed, click Cancel to undo the last changes to the patch settings of the instrument, or click Ignore to allow the conflicting setting to remain.

Warning for Conflicts When First Opening a DLS Collection in a Project

If you attempt to open a DLS collection in a project tree that has a DLS collection already open and there are MSB, LSB, and patch number conflicts between instruments in the two DLS collections, the following warning is displayed.

DirectMusic Producer also displays this warning if conflicts occur between the original settings in the GM.dls collection and the DLS collection, regardless of whether the GM.dls is in the project tree or has been opened.

When the warning is displayed, you can choose one of four options:

  • Fix

    DirectMusic Producer fixes the conflict for the open DLS instrument by choosing a new setting for the last edited MSB, LSB, or patch number.

  • Fix All

    DirectMusic Producer fixes all the conflicts for the entire DLS collection you are editing by choosing new MSB settings for instruments that have a conflict.

  • Ignore

    DirectMusic Producer ignores the conflicting combination of MSB, LSB, and patch numbers for the open DLS instrument. You are not warned again until you reopen the DLS collection.

  • Ignore All

    DirectMusic Producer ignores all conflicting combinations of MSB, LSB, and patch numbers for the open DLS collection. You are not warned again until you reopen the DLS collection.

The Fix and Fix All options repair the DLS patch conflict in the DLS collection only. They do not update settings in bands that are referencing the DLS patch numbers that were in conflict. The band will continue to reference the old patch location, possibly causing it to play the wrong instrument sound or play no sound at all. References to a new patch setting must be re-established by selecting the DLS instrument in Band Editor. To avoid this problem, plan out DLS patch number use before linking bands to instruments.


Region Settings

By defining regions for an instrument, you can identify a waveform and parameters that instruct a DLS-compatible synthesizer on how to render the sound. For instruments that have different characteristics in different registers, such as a piano or clarinet, you should define several regions. You can insert additional regions in a DLS instrument using up to 128 regions for both melodic and percussion instruments. For more information about adding regions, see Adding a Region to a DLS Instrument.

Each region can be configured to use a different wave so it more realistically represents the sound of the instrument. For sounds that are less complex, such as the sound of a door slamming or glass breaking, a single region is sufficient.

Note Using a smaller number of regions for a DLS instrument keeps DLS instruments from requiring inordinate amounts of computer storage and memory. In theory, you could take a sample from every one of 128 notes on a acoustic instrument and place them into regions that correspond exactly with the pitch at which the sample was taken. However, this might be impractical because of the amount of file space required.

The following illustration shows a region selected in the Violin instrument. The selected region is displayed as a red line, and uses the VIOLIN68 wave.

In the Region area of the DLS Instrument window, you can set the following:

  • Wave

    Choose a wave for the region. The drop-down list displays all waves in the Waves folder of the DLS collection. Click the Edit button to edit the wave using Wave Editor.

  • Note Range

    Define a range for the region. The region can contain from 1 to 128 notes in the layer. Enter a value in each of the Note Range boxes to show the lowest and highest pitches included for the range of the selected region. These values correspond to the lowest and highest pitches of the red line in the region bar above the keyboard. You can enter a value to adjust the range of the region, and the number you enter corresponds to a piano key. For example, C0 is the lowest pitch (equal to MIDI note 0), C5 is middle C (equal to MIDI note 60), and G10 is the highest pitch (equal to MIDI note 127). You can enter these values using a MIDI keyboard by clicking in either Note Range box and pressing a key on the MIDI keyboard.

    You can drag the left or right ends of a region to adjust its range. If you are increasing the range for the region, you can drag the region's end only if there is empty space next to it in the region bar. You may need to create empty space by decreasing the range of an adjacent region.

    You can also drag an entire region up or down the region bar to change its range, provided there is empty space in the region bar where you can drag the region. For more information, see Dragging Regions.

  • Root

    The root displays the original pitch at which the wave was sampled, or the pitch at which it sounds most natural. This pitch is set in the Properties window of the wave and is selected when the wave is designed. By default, the root note value is imported from the wave's properties when you assign the wave to a region. It is recommended that you leave the default setting of the wave's root note as it appears in the Root box. For information about the root note of a wave, see Wave Properties.

    When you choose a wave to use in a region, it is best to choose one with a root note that fits in the region. This is because the root note represents the pitch at which the wave sounds most natural. Thus, a wave that is sampled from a pitch in the region will sound appropriate for all notes in the region. You can enter these values using a MIDI keyboard by clicking the Range box and pressing a key on the MIDI keyboard.

    Another method for matching wave samples with regions is to assign a sample to a region and adjust the range of the region to include some notes above and some notes below the root note for the wave. This places the sample roughly in the middle of a range where it sounds best.

    You can override the default root note, but doing so transposes the pitch of the sample by the amount that you alter the root note. This results in wave pitches that do not line up with the tones on the keyboard and consequently gives a disjointed pitch transition between one region and the next. It is best to leave the default setting of the root note as it is first imported into the window.

    One exception to leaving the default root note is when you design drum instruments. When designing a drum instrument, you use up to 128 wave samples, with a different sample assigned to each note of the keyboard. In this case, you can adjust the root note of many sampled waves to where they sound best. Because drum sounds do not generally form a continuous scale of notes, you can transpose the samples to a different pitch to design the drum sounds to suit you.

  • Velocity Range

    Set a range of velocity values for which the wave can be used. The region is used to play notes with velocities within the range. Using multiple layers with different velocities, you can create an instrument that responds to various MIDI key velocities with different sounds. This makes the instrument touch-sensitive.

  • Key group

    Organize key groups to prevent two or more waves from sounding at the same time, by assigning a region to key group 1, 2, 3, or 4. At times, you may want specific waves to never sound with one another. You can assign a group of waves to a key group so they do not sound with the waves in the same key group. For example, if an instrument is simulating a conventional drum set, the open and closed hi-hat cymbal sounds should never occur together. Assigning the two waves to different regions and making both regions members of the same key group enforces the restriction wherein the two sounds cannot occur simultaneously. If the software synthesizer is playing a note from a region in a key group and receives a Note On message from another region in the same key group, it turns off the current note and plays the new one. If the wave associated with this region can be heard with any other wave, select No Group as the key group.

  • Use Instrument Articulation

    By default, the Use Instrument Articulation option is selected. This results in all the regions in the instrument using the same articulation. For information about articulation settings, see Articulations.

  • Note overlap

    Some instruments, such as those whose notes sound for a long time, can monopolize system resources if the synthesizer plays repeated notes for the instrument. For such instruments, clear the Note Overlap Allowed option so the synthesizer stops the first note if it receives a second Note On message for this note.

  • Conditional Chunks

    Choose settings for a region to be used with different output ports or playback environments.

In addition to the above settings in the regions area of the DLS Instrument window, you can also right-click a region and select Properties to open a Properties window for the region. See Region Properties.


Conditional Chunks

You can set conditions for a region that control how the region plays when various output ports are used. This allows you to design a DLS instrument so it responds to different types of ports and playback environments. For example, you can assign waves and settings for use with DLS2 synthesizers that are different from those used with DLS1 synthesizers, or restrict a region so it plays using a software synthesizer, but not hardware.

Each region in a DLS instrument can have a set of conditional chunks. You create different conditional chunks for different regions, so there are options for when a DLS instrument plays with different ports. If the region has conditions that do not fit the playback environment, the wave is not downloaded to the synthesizer, and settings for the region are not used. If no other region has conditions that fit the playback environment, the instrument is silent for all notes in the region.

The most convenient use of conditional chunks is to set up at least two similar regions with conditional chunks that complement each other. This assures that all conditions are covered during playback. The following two figures show an instrument with a single region in the DLS1 layer, and a similar region in the layer above it. The region in the lower layer has conditional chunk settings that restrict it for use only with DLS1 synthesizers. The region in the upper layer has conditional chunk settings that restrict it for use only with DLS2 synthesizers.

You can set up conditional chunks that restrict a region in many ways. You can click the Condition drop-down list to select any conditions you have already set, or click the Edit button to design new conditions for a region. See Creating Conditions.

If the conditions you select for a region are not met in the playback environment, then the wave is not downloaded, and the region is silent. You can create multiple layers containing regions with different conditions, so that different waves or settings are applied for different needs. If conditions in more that one region are met, then multiple waves and their settings are used.

DLS1 synthesizers only read the bottom layer in an instrument, so any region that you assign to DLS1 must go in that layer. Regions you place in other layers are used only by DLS2 synthesizers.

Conditional chunks are ignored by DLS1 synthesizers, even if a region with conditional chunks is in the bottom layer. When you use conditional chunks that specify DLS1, this is only so that a DLS2 synthesizer will understand those conditions, and will not use the DLS1 region. This helps eliminate multiple regions playing at the same time.

Because a DLS2 synthesizer is capable of playing any wave that is DLS1-compatible, use conditional chunks with regions in the bottom layer to have DLS2 synthesizers ignore them. The condition must contain an additional query if you want a DLS2 instrument not to use the region. For example, the following condition tells DLS2 synthesizers to ignore a region:

SupportsDLS1 && SamplePlaybackRate <= 22050

Since a DLS2 synthesizer uses a sample playback rate of 44100, this condition specifies both that the region is meant for DLS1, and that a DLS2 synthesizer should ignore it. For more information, see Creating Conditions.

DLS2 Articulations

DLS Level 2 includes the use of two additional articulation types that are not included in DLS Level 1. If you create a region in the bottom layer of a DLS instrument, and use instrument articulations for DLS Level 2, the two additional articulation types are ignored when the instrument is played using a DLS1 synthesizer. This enables you to design an instrument for use with DLS2 that contains regions also used for DLS1, though with less articulation control. See Articulations.


Creating Conditions

If you have already created conditions for one or more regions in a DLS instrument, you can click the Condition drop-down list to select a condition for use with another region. You can also click the Edit button to display the following Condition Script Editor window. Use this window to design new conditions for a region, or change the conditions in the list.

Note Creating a new condition requires that you select a region that has no condition. After this, the condition you create is available for all regions.

Right-click the window and click Queries to display the following submenu of queries that are available for use in a condition.

Click a query in the list to add it to the Condition Script Editor window.

You can also use various operators to mix and combine queries when designing a condition. Right-click the Condition Script Editor window, and click Operators to display the following submenu.

You combine queries in a condition by placing operators between them. For example, you can right-click the window to enter the GMInHardware query, then right-click again to enter the && (Logical AND) operator, then right-click again to enter the SupportDLS2 query. Click OK to close the window. The condition, enclosed in parentheses, is added to the Condition list as follows.

(GMInHardware && SupportDLS2)

This condition makes a region play with a General MIDI Hardware synthesizer that supports DLS2.

Note Use of the following three bitwise operators is not recommended in conditions, unless you are using a specific value that is required by the manufacturer of a synthesizer:

• & (Bitwise AND)

• | (Bitwise OR)

• ^ (Bitwise XOR)

After you create conditions, you can test them by selecting different playback environments in the DLS Conditions Toolbar. When you select a playback environment and play segments or other files, you can hear the use of the regions in the DLS instruments that correspond to the environment.

Sample Conditions

Following are some examples of useful conditions you can create:

  • SupportsDLS1 && SamplePlaybackRate <= 22050

    Enables use by a DLS1 synthesizer, and prevents DLS2 use of the region, because DLS2 synthesizers use a sample playback rate of 44100 or higher.

  • SupportsDLS2 && SamplePlaybackRate >= 44100

    Enables use by a DLS2 synthesizer, and prevents DLS1 use of the region, because DLS2 synthesizers use a sample playback rate of 44100 or higher.

  • GMInHardware && SupportDLS2

    Requires use by a General MIDI hardware synthesizer that supports DLS2.

  • ! GMInHardware && SupportDLS2

    The ! (NOT) operator specifies that the region is used if there is no General MIDI set available in a hardware synthesizer. The synthesizer can be hardware or software, but DLS2 support is required.


Region Properties

When designing and editing a DLS instrument, you choose the wave to associate with each region in the instrument. Each wave has properties for how it plays, how a software synthesizer uses the waveform, and whether the wave can be compressed.

You can open a dedicated Properties window for a region in a DLS instrument and override the settings in the Wave Properties window for the wave being used in the region. This only affects how the wave is used in the region. Right-click a region in the Instrument Designer window and select Properties to open a Region Properties window.

The Region Properties has two tabs:

  • Region Tab

    Contains settings for overriding attenuation, fine tune, and root note settings in the Wave Properties of the wave used in the region. Also contains settings for playing waves in stereo with multichannel output.

  • Sample/Playback Tab

    Contains more settings for overriding settings in the Wave Properties of the wave used in the region, including settings for Allow Sample Truncation, Allow Sample Compression, and Looping.

Note For the DX8.0 release of DirectMusic Producer, multichannel output cannot be used. Selecting anything other than Left (or Mono) or Right causes silence for the region on the Microsoft Synthesizer.


Region Tab

Use the Region tab to override settings in the Wave Properties of the wave used in the region.

You can choose new settings for Attenuation, Fine Tune, and Root Note when they are used by the region.

Use the Multichannel option to create an instrument with multiple regions that are placed spatially. For a stereo instrument, create two overlapped regions in separate layers of the instrument. For each region, turn on the Multichannel option, and then set the region in one layer to Left (or Mono) and the other region to Right.

For more information, see Stereo Waves.

Note For the 8.0 release of DirectX, the Microsoft Synthesizer doesn't support multichannel output. Selecting anything other than Left (or Mono) or Right causes silence for the region on the Microsoft Synthesizer. The multichannel output feature is included in this Property window to comply with the DLS-2 specification, and in case a different DLS-compatible software synthesizer is capable of supporting multichannel output.

The Phase Group ID specifies the group number for waves which should be phase-locked, that is, sample accurate to each other when played. All of the waves within the same group will follow the wave which has the Master checkbox turned on.


Sample/Playback Tab

Click the Sample/Playback tab to display the following window.

For use of the wave in the region, you can choose settings for Allow Sample Truncation, Allow Sample Compression, and Looping to override settings in the Wave Properties window.


Adding a Region to a DLS Instrument

You can divide the range of a DSL instrument into separate regions and associate a different wave with each region. In using regions, you can use a low-pitched sample for the lowest register of an instrument, a mid-range sample for the middle register, and a high-pitched sample for the high range of an instrument. In fact, you can choose a separate sampled sound for each of the 128 possible MIDI notes in an instrument. The DLS Level 1 Specification limits the number of regions per instrument to 16 for melodic instruments. DLS 1 percussion instruments can have up to 128 separate regions, each using a different percussion sound. For more information, see Number of Regions to Use.

The following illustration shows the Region box of the DLS Designer window and the range keyboard above it.

The region bar above the keyboard shows nine separate pitch regions in the DLS instrument. The region bar contains a red line showing the pitch region that is selected. This particular region is the lowest used in the DLS instrument, and ranges from C0 to G#5. Unselected regions in the DLS instrument appear along the top of the keyboard only as a thin black outline. For example, the highest range (not selected in the illustration) ranges from B8 to G10.

Each note in the keyboard should be included in a pitch region. If a note is not part of a region, the note does not have a wave associated with it, and it is silent when used for playback.

Adding a new region to the DLS instrument requires an empty space in the region bar where a new region can be inserted. If the entire region bar is filled with existing regions, then existing regions must be made smaller to provide space for a new region.

To insert a new region in a DLS instrument

  1. In the graphic keyboard of the DLS designer window, click the space along the top of the keyboard to select a region.
  2. In the Region area of the Instrument window, adjust the range of the region to create an empty space. See Region Settings.
  3. Hold the CTRL key and click the region bar at the top of the keyboard, or right-click an empty space, and choose Insert Region on the shortcut menu. A new region is inserted into the empty space of the region bar.
  4. Adjust the settings for the new region using settings in the Region area of the DLS Designer window.


Number of Regions to Use

You can divide the range of an instrument into separate regions and associate a different wave with each region. Using regions, you can use a low-pitched sample for the lowest register of an instrument, a mid-range sample for the middle register, and a high-pitched sample for the high range of an instrument. In fact, you can choose a separate sampled sound for each of the 128 possible MIDI notes in an instrument. The DLS Level 1 Specification limits the number of regions per instrument to 16 for melodic instruments. Because the number of sounds needed in drum kits is usually so much greater than the number of sounds for most other instruments, DLS 1 specification allows 128 regions for drum kits.

For information about inserting new regions in a DLS instrument, see Adding a Region to a DLS Instrument.


Dragging Regions

In place of entering values in the Region area of the DLS Designer window, you can adjust a region by dragging it with the mouse. You can also move an entire region to a new position, or place a copy of a region in another position.

The following actions are available:

  • Drag the ends of a region to adjust its ranges.

    The cursor changes to a double-ended arrow to indicate that you are dragging the end of the region sideways.

  • Click anywhere in the body of a region and drag the entire region.

    The cursor changes to a cross, indicating that the entire region is being dragged to a new range. The region can be moved into any empty space in the same region bar, or in another layer, provided the empty space is large enough. An empty space in an active region is displayed as a gray area. A layer that is inactive is displayed only in white. Click a layer to make it active. Dragging a region to a new position assigns the wave and settings for the region to a different range of notes or a different layer.

  • CTRL drag a region to create a copy of it.

    The cursor changes to a mouse arrow with a plus symbol, indicating that the region is being copied. The new copy can be placed in an empty position in the same region bar, or in another layer, if the empty space is large enough.


Layers

You can add layers to a DLS instrument so that multiple sampled sounds can be assigned to a MIDI pitch. When the MIDI pitch plays in a Producer component, it simultaneously uses all of the sampled sounds assigned to it.

You can use as many layers as you want in a DLS instrument. Since each layer can contain a separate sampled sound for each of the 128 possible MIDI notes, there is an unlimited number of sampled sounds that you can use in a single DLS.

Multiple layers in a DLS instrument are used only by synthesizers that support DLS level 2. Layers are not included in the DLS 1 specification. A DLS 1 synthesizer plays the instrument using only the bottom layer of sampled sounds, and ignores all other layers. This is indicated in the DLS Designer window by the text "DLS1" appearing to the left of the bottom layer of sounds. A DLS2 Synthesizer plays the instrument using all layers except the bottom layer. These are indicated by individual numbers to the left of each layer, such as 1, 2, 3, and so on.

The following illustration shows a DLS instrument containing three layers of sampled sounds for use with DLS2, and one layer for DLS1. The lowest region in the top layer is selected.

You can right-click any layer of a DLS instrument and select Add Layer to insert a new layer above the existing layers in a DLS.

After you add a new layer, you can right-click the layer to insert new regions. See Adding a Region to a DLS Instrument.

You can drag regions between layers, which copies the region and all its settings into the new layer. See Dragging Regions.


Articulations

Musical instruments produce sounds in a distinctive manner having to do with how the tone is started, how the tone is sustained, and how the tone is released. For example, a tone on a xylophone starts suddenly, and quickly fades. A guitar tone starts with less velocity and takes much longer to fade before it is released. The waves associated with the regions of instruments are not likely to sound musical on their own because they are simply sounds.

With Microsoft DirectMusic Producer, you can configure the characteristics of how an instrument produces its tone by defining articulation settings. Generally, you define one articulation for each instrument and the articulation applies to all regions of the instrument. An exception is the drum kit instrument, where each region is a separate instrument and you can define an articulation for each region. With the DLS specification, you can have multiple articulations for drum kits only; all other instruments have a single global articulation.

The following figure shows the Instrument Articulation area of the DLS Designer window.

Most sampled wave files are created to account for the individual characteristics of an instrument's attack, decay, sustain, and so forth. However, the settings in DLS Designer, especially the Velocity to Attack and Key to Decay settings, help you shape the sound realistically as it responds to different velocity and pitch requirements during playback.

You can define articulation settings for an instrument or for regions within an instrument. Articulation settings defined for an instrument are global. That is, they apply to all the regions in an instrument. Articulation settings defined for a particular region override the instrument's articulation for that region only. With the DLS Level 1 Specification, you can have multiple articulations for drum kits, while all other instruments have a single articulation.

Note With DirectMusic Producer, you can create multiple articulations for non-drum-kit instruments. Microsoft Synthesizer supports DLS collections that include such instruments, but other software synthesizers and hardware that are compatible with DLS Level 1 may not. If you want your DLS collection to be DLS Level 1–compliant, do not create separate articulations for individual regions of non-drum-kit instruments.

In the Instrument Articulation area of the Instrument window, you can modify the settings for the following tone characteristics.

  • Volume
  • Pitch
  • Mod Low Frequency Oscillator
  • Vib Low Frequency Oscillator
  • Filter

Reverting to Default Articulations

Manipulating the articulations of a waveform can produce a more musical effect in software synthesis. However, there may be waves you want to use in their original form, with no changes to the articulation settings in DLS Designer. When you initially assign a wave file to a region, the articulations use the wave in its original form. If you alter the articulations, you can restore the settings by reassigning the wave to the region, or by using the following procedure to reset the articulations.

To reset articulations to their default settings and preserve a wave's original form

  1. In the Instrument Articulation area of the Instrument window, click the Volume tab.
  2. In the Seconds boxes, set the Attack, Decay, and Release values to their lowest settings (.001).
  3. In the Sustain box, set the value to its highest setting (100 percent).

    or

    On the Volume tab, move the leftmost handle in the graphical interface to the left and move the rightmost handle to the right to set the Attack and Release values to their minimum. Move the middle handle up to set the Decay and Sustain levels to their maximum.

  4. On the Pitch tab, repeat the configuration of the Volume tab.
  5. On the LFO tab, set Volume Range and MW to Vol to zero, and set Pitch Range and MW to Pitch to zero.

For more information about the various settings of a sound, see Volume, Pitch, Mod Low Frequency Oscillator , Vib Low Frequency Oscillator , and Filter.


Volume

The articulation for volume is critical to the character of the instrument. A xylophone's waveform, for example, must have a rapid attack, no sustain, and a short release to simulate the sound of a hard mallet striking a wooden bar with the subsequent fading of the tone. A bowed string instrument, on the other hand, can achieve a variety of attacks and releases.

On the Volume tab of the Instrument Articulation area in the Instrument window, you can modify the following settings:

  • Attack
  • Decay
  • Sustain
  • Release
  • Velocity to attack
  • Key to decay
  • Pan

The following sections describe how to modify each setting and how the setting affects the volume.

Attack

Select the leftmost handle in the graphical interface and drag it horizontally to specify the amount of time, in seconds, over which the wave's amplitude increases from zero to the maximum at the beginning of a note. Values can range from .001 seconds to 40 seconds. A short attack time gives a note a percussive beginning, and a long attack provides a fade-in effect. The attack portion of the waveform ends when the amplitude reaches its maximum.

Decay

Select the middle handle in the graphical interface and drag it horizontally to specify the amount of time, in seconds, over which the wave's amplitude decreases from its maximum at the end of the attack to the level of the sustain value. Decay values can range from .001 seconds to 40 seconds. However, the value shown in the Seconds box represents the time that is needed to reach a sustain level of zero percent. The current sustain level may be higher than zero percent. The time needed to reach the current sustain level is always less than or equal to the value in the Seconds box. The actual value appears at the right in a dimmed Decay box.

Sustain

Select the middle handle or the rightmost handle in the graphical interface and drag it vertically to specify the level of amplitude, as a percentage of the maximum amplitude reached by the attack, at which the note is sustained. Values can range from zero to 100 percent. To distinguish the beginning of the note from its sustain level, set the sustain level well below 100 percent.

Release

Select the rightmost handle in the graphical interface and drag it horizontally to specify the amount of time, in seconds, over which the wave's amplitude decreases from its sustain level to silence. A short release time causes the note to sound chopped-off, while a long release time produces a fading effect. Release values can range from .001 seconds to 40 seconds. The value shown in the Seconds box represents the time required to go from the maximum amplitude reached by the attack to silence if the sustain level were 100 percent. The current sustain level may be higher than zero percent. The time needed to go from the current sustain level is always less than or equal to the value in the Seconds box. The actual value appears at the right in a dimmed Release box.

Velocity to Attack

Move the Vel to Attack slider to the right or left to increase or decrease the effect of a note being struck hard. This value is a multiplier that DirectMusic Producer uses to enhance the attack speed and volume of the tone.

Key to Decay

To affect the rate at which a tone decays, move the Key to Decay slider to the right to simulate a higher-pitched note, and to the left to simulate a lower-pitched note. Lower-pitched notes generally decay slower than higher-pitched notes. This value is a multiplier that DirectMusic Producer uses to enhance the decay speed and volume of the tone.

Pan

Move the Pan slider to specify left and right balance for stereo output. Values are expressed as a percentage ranging from L50% (moved completely to the left) to R50% (moved completely to the right), with Mid being the center setting.


Pitch

Pitch articulation further defines the character of an instrument. For example, a classical violin quickly ascends to the target pitch as the bow is drawn across a string, but a jazz violin might take longer on the attack, creating a scooping effect.

At the bottom of the Pitch tab, you use a Range slider to choose a value for how much change occurs in pitch as a note is bending up to a target pitch. The root note of the wave always serves as the starting pitch. After a note starts, it can be bent at its beginning, rising to a target pitch, or its ending, falling or rising off the pitch. The articulation settings control how quickly the bending occurs and how the note is held at its target pitch.

Note To hear the adjustments you make to pitch articulation, you can temporarily shorten the setting for the volume's attack segments, to less than one second, and lengthen the setting for its release segment, to more than 5 seconds.

On the Pitch tab of the Instrument Articulation area in the Instrument window, you can modify the following settings for pitch:

  • Attack
  • Decay
  • Sustain
  • Release
  • Velocity to attack
  • Key to decay
  • Range

The following sections describe how to modify each setting and how the setting affects the pitch.

Range

Move the Range slider to increase or decrease the number of semitones away from the root note that the pitch can vary during attack, sustain, and release. For example, a range setting of 5 causes the note to begin at its root note and ascend five semitones during the attack segment of the note. Typically, the note decays to some percentage above the root note where it is sustained before being released. At that point, it drops to the root note. Conversely, a range setting of -5 causes the note to begin at its root note and descend five semitones during the attack segment of the note. It then decays to some percentage below the root note where it is sustained before being released. At that point, it rises to the root note.

Attack

Select the leftmost handle in the graphical interface and drag it horizontally to specify the amount of time it takes for the pitch to rise or fall from its starting pitch, the root note, by the interval specified with the Range slider. Values can range from .001 seconds to 40 seconds. A short attack time gives a note a percussive beginning, and a long attack provides a fade-in effect. The attack portion of the waveform ends when the pitch reaches its maximum distance from the starting tone.

Decay

Select the middle handle in the graphical interface and drag it horizontally to specify the amount of time it takes, in seconds, for the pitch to rise or fall from the end of the attack to the pitch level of the sustain value. Decay values can range from .001 seconds to 40 seconds. However, the value shown in the Seconds box represents the time that is needed to reach a sustain level of zero percent. The current sustain level may be higher than zero percent of the pitch change that occurs during the attack segment of the wave. The actual time to reach the current sustain level is always less than or equal to the value in the Seconds box. The actual value appears at the right in a dimmed Decay box.

Sustain

Select the middle handle or the rightmost handle in the graphical interface and drag it vertically to specify the level of the pitch, as a percentage of the maximum pitch change reached during the attack, at which the note is sustained. The sustain pitch level is expressed as a percentage of the interval specified using the Range slider. If the sustain setting is 100 percent, the decay setting has no effect, because there is no difference in pitch between the end of the attack and the beginning of the sustain portions of the tone. Conversely, if the sustain value is set to zero percent, the sustain pitch is the same as a root note's beginning pitch. In this case, the release setting has no effect because the pitch is at the root note at the end of the decay segment.

To distinguish the beginning of the note from its sustain level, set the sustain level well below 100 percent. For general use, it is better to set the sustain pitch level at zero percent so the note is sustained on its root note pitch. When the instrument is incorporated into a band and DirectMusic Producer has the instrument play a pitch, the pitch becomes the root note for playback. If the tone sustains a pitch other than the root note, it may sound wrong.

Release

Select the rightmost handle in the graphical interface and drag it horizontally to specify the amount of time, in seconds, for the pitch to rise or fall from the sustain level to the root note. A short release time causes the note to sound chopped off, while a long release time produces a bending effect. Release values can range from .001 seconds to 40 seconds. However, the value shown in the Seconds box represents the time needed to go from a sustain level of 100 percent back to the pitch of the root note. The current sustain level may be lower than 100 percent. The time needed to go from the current sustain level is always less than or equal to the value in the Seconds box. The actual value appears at the right in a dimmed Release box.

Velocity to Attack

Move the Vel to Attack slider to the right or left to increase or decrease the effect of a note being struck hard. This value is a multiplier that DirectMusic Producer uses to enhance the attack speed and pitch of the tone.

Key to Decay

To affect the rate at which the tone decays, move the Key to Decay slider to the right to simulate a higher-pitched note and to the left to simulate a lower-pitched key. Lower-pitched notes generally decay slower than higher-pitched notes. This value is a multiplier that DirectMusic Producer uses to enhance the decay speed and pitch of the tone.


Mod Low Frequency Oscillator

The Mod low frequency oscillator (LFO) is used to periodically vary the pitch and amplitude of the waveform to produce vibrato and tremolo. Effective use of the LFO provides an extra dimension of interest to what is otherwise a constant tone.

On the LFO tab of the Instrument Articulation area in the Instrument window, you can modify the following settings:

  • Frequency
  • Delay
  • Volume range
  • Pitch range
  • Mod wheel to volume
  • Mod wheel to pitch

The following sections describe how to modify each setting and how the setting affects the LFO.

Frequency

Move the Frequency slider to set the cycles per second at which you want the pitch and/or amplitude to modulate.

Delay

Move the Delay slider to set the length of time to pass before modulation begins.

Volume Range

Move the Vol Range slider to set the degree to which the amplitude of the wave is modulated.

Pitch Range

Move the Pitch Range slider to set the degree to which the frequency of the wave is modulated.

Mod Wheel to Volume

The value set by the MW to Vol slider indicates the MIDI mod wheel message to translate to tremolo, using the values for Frequency and Delay. If you set this value to zero, MIDI mod wheel messages do not generate tremolo.

Mod Wheel to Pitch

The value set by the MW to Pitch slider indicates the MIDI mod wheel message to translate to vibrato, using the values for Frequency and Delay. If you set this value to zero, MIDI mod wheel messages do not generate vibrato.


Vib Low Frequency Oscillator

The Mod low frequency oscillator (LFO) is used to periodically vary only the pitch of the waveform to produce vibrato and tremolo. Effective use of the LFO provides an extra dimension of interest to what is otherwise a constant tone.

On the LFO tab of the Instrument Articulation area in the Instrument window, you can modify the following settings:

  • Frequency
  • Delay
  • Volume range
  • Pitch range
  • Mod wheel to volume
  • Mod wheel to pitch

The following describe how to modify each setting and how the setting affects the LFO.

Frequency

Move the Frequency slider to set the cycles per second at which you want the pitch and/or amplitude to modulate.

Delay

Move the Delay slider to set the length of time to pass before modulation begins.

Volume Range

Move the Vol Range slider to set the degree to which the amplitude of the wave is modulated.

Pitch Range

Move the Pitch Range slider to set the degree to which the frequency of the wave is modulated.

Mod Wheel to Volume

The value set by the MW to Vol slider indicates the MIDI mod wheel message to translate to tremolo, using the values for Frequency and Delay. If you set this value to zero, MIDI mod wheel messages do not generate tremolo.

Mod Wheel to Pitch

The value set by the MW to Pitch slider indicates the MIDI mod wheel message to translate to vibrato, using the values for Frequency and Delay. If you set this value to zero, MIDI mod wheel messages do not generate vibrato


Filter

To enable filtering, uncheck the DLS1 checkbox on the top right of the Articulation editor and check the Enable Filter in the Filter tab. Here you can define the

  • Initial Filter Cutoff, and Resonance (initial Q). You can map these to Envelope 2 (the Pitch Envelope).
  • MIDI control of filtering is also enabled via CC 74.
  • Mapping DLS Filter Cutoff to Mod LFO.


Wave Editor

After you place a wave in the project tree, you can use Wave Editor to set parameters for how the wave is used by DLS Designer to create DLS instruments. DirectMusic Producer supports both 8-bit and 16-bit PCM mono wave files, which you can open and edit using Wave Editor. Wave Editor is not a fully enabled tool for editing all aspects of a wave sample, but it has many features you can use to manipulate and reuse wave samples.

In the project tree, double-click a wave's icon to launch Wave Editor and display contents of the wave file, similar to the following illustration.

Wave Editor is an editing module that is contained in DLS Designer. From Wave Editor you can:

  • Define or edit the portion of the wave that plays when it is used as a repeating or looped sound by a DLS instrument. For more information, see Wave Loops.
  • Zoom in to view the wave in fine detail.
  • Cut, copy, and paste portions of the wave, including copying and pasting a portion to and from other waves.
  • Open the wave's Properties window to edit attenuation, adjust tuning, enter a record of the pitch originally sampled, and choose whether the wave loops.

Note Other than using the Cut, Copy, and Paste commands to edit portions of the wave, you cannot use Wave Editor to edit the contents of the wave file, such as changing a wave's frequency or shape. To edit details of the contents of a wave file, you must use sound sampling software such as the program used to initially create the wave file.


Cutting, Copying, and Pasting Portions of a Wave

You can select a region of a wave and cut, copy, and paste the region, including copying and pasting to and from other waves. Selecting a region of a wave and cutting or copying it adds the portion to the Clipboard. If you use the Cut command, the selected portion of the wave is removed and the wave to the right of the cut portion moves left to close any gap.

Pasting the contents of the Clipboard inserts new material in a wave at an insertion point you select by clicking the wave. Pasted material is added to the wave and existing material is moved to the right. No existing material is replaced or deleted when you use the Paste command.

You can select a region of a wave and place the insertion point in a wave by using the Snap to Zero option, turned on by default.

To copy or cut a portion of a wave to the Clipboard

  1. In Wave Editor, drag the mouse over the wave to highlight a portion of the wave.

  2. Right-click the selected region. The following shortcut menu is displayed.

  3. Choose Cut or Copy on the shortcut menu. The selected region is cut or copied to the Clipboard and the wave portion at the right moves to close any gap.

To paste the contents of the Clipboard to a wave

  1. In the project tree, double-click the wave in which to paste the Clipboard contents.
  2. In Wave Editor, click the point in the wave to place an insertion point.
  3. Right-click Wave Editor and choose Paste on the shortcut menu. The Clipboard contents are added to the wave. Existing wave material to the right of the insertion point is moved to the right.


Snap to Zero

You can use the Snap to Zero option to more accurately select a portion of a wave for copying and cutting, and when defining the loop start point and length. This option also helps you place the insertion point at specific locations in a wave.

By default, the Snap to Zero option is selected. You can also toggle the Snap to Zero option on or off by selecting it on the shortcut menu displayed when you right-click Wave Editor.

When you select a region of a wave with the Snap to Zero option turned on, the selection adjusts to begin and end at a point in the wave where it corresponds to the nearest zero crossing point in the sample. A selection that begins and ends at zero points in a wave will provide a much cleaner start and end, thus reducing the chance of unwanted distortion in the selected region.

This enables a clean connection between wave portions being connected or when a wave portion is pasted into another wave. Likewise, when you place an insertion point, the insertion point snaps to a place in the wave where it can best accept new material without distorting the sound of the wave.

The Snap to Zero option applies globally to all waves in all DLS collections. If you have several waves open, the setting you choose in any wave applies to all the open waves.


Wave Properties

Each wave in the project tree has a Properties window, similar to the one shown in the following illustration.

The Wave Properties window has three tabs:

  • Wave tab

    Contains settings for how a software synthesizer, for example, the Microsoft Synthesizer, uses the waveform when producing sound.

  • Info tab

    Contains information about the waveform, such as its sample rate, sample size, author, and creation date.

  • CompressionStreaming tab

    Contains settings for reducing the size of the waveform file using compression options.

The Wave tab is displayed by default when you open the Properties window.

To open a wave's properties window

  1. In the project tree, right-click the icon of a wave and choose Properties on the shortcut menu. The Wave tab is displayed by default.
  3. Click the desired tab.

Note When editing and designing a DLS instrument, you can override the settings in the Wave Properties window for the wave used in the DLS instrument. This affects the use of the wave only in a selected region of the DLS instrument. For more information, see Region Properties.

  • For information about editing wave properties, see Wave Tab.
  • For information about viewing and editing wave files, see Wave Properties Info Tab.


Wave Tab

The Wave tab of the Wave Properties window includes the following settings and information:

  • Volume attenuation
  • Fine tuning pitch
  • Root note
  • Sample length
  • Looping options
  • Selection options
  • Compression and truncation options

The following sections describe how to set each property and the effect of each property setting.

Attenuation Property

Move the Attenuation slider to decrease the volume at which the waveform is played back. You can only attenuate, or reduce, the waveform's volume; you cannot boost it.

Fine Tune Property

Move the Fine Tune slider to adjust the pitch of the waveform relative to the note in the Root Note box.

Root Note Property

In the Root Note box, type or select the originally recorded pitch of the waveform. This value is information about which pitch was played on the original sound source when the wave was created. The value does not affect how the wave sounds or is played. The number you enter corresponds to one of the 128 MIDI pitches. For example, if a waveform was originally sampled from a flute playing middle C, enter C5 as the root note for the waveform. For information about pitch names and their corresponding MIDI values, see Pitch Names and MIDI Numbers.

The root note is usually the pitch at which the waveform was recorded and where it sounds most natural. You can alter the root note in the Wave Properties window if you feel the sound of the wave represents the timbre of an instrument at that different pitch.

The root note setting is automatically inserted in the Root Note box of the Instrument Properties window of a DLS instrument that uses the wave for a region. It is recommended that the root note setting in the Instrument Properties window always be left as it appears in the Wave Properties window of the original wave file.

Sample Length

A read-only value in the Wave tab. The sample length is the overall length of the waveform. You can change the length of a wave using the Cut, Paste, and Delete commands in Wave Editor. Changes to the length of a wave are reflected in the Sample Length shown in the Wave tab.

Looping Options

Select the Loop option to repeat or loop the waveform at playback. Looping may be preferable, for example, with a wave that you want sustained for long periods as a user presses a key. Conversely, you may want to turn off the Loop option for a wave that should not repeat, such as a short sound effect or a cymbal crash.

To loop the waveform, click the Loop option and set the values for Start, End, and Length. After you set the desired values, click the Lock option to keep the length of the loop constant. This causes the start and end values to adjust when you change one or the other, so that the length value is retained. For example, if you increase the start value for the loop by five steps, the end value increases by five steps.

For more information about setting up the loop, see Wave Loops.

Selection Options

Use the mouse to select a region of a wave in Wave Editor and view numeric values in the Wave tab for the start point, end point, and length of the region. You can enter new values for Start, End, and Length in the Wave tab to adjust the selection in Wave Editor. If no portion of a wave is selected, the selection start and end values are the same, and the Length is 1. You can adjust any value to increase the selected section as desired.

The start, end, and length values for the selection are linked, so adjusting one value can affect another. For example, increasing the end value causes the length to increase as well, while increasing the start value causes the length to decrease. Decreasing the length value causes the end value to decrease. However, adjusting the length value does not affect the start value.

After you have set the desired values, you can click the Lock option to keep the length of the selection constant. This causes the start and end values to automatically adjust when you change one or the other, so the length value is retained. For example, if you increase the start value for the selection by five steps, the end value increases by five steps as well.

Allow Sample Truncation

Use this option to reduce the amount of data that a wave file uses. This type of data reduction is rarely used, though it is included in the industry specification for DLS files and must be included in the Wave Properties window. This setting sends information with a wave file, telling a synthesizer that it may truncate the wave data to its own format after loading the wave into memory. For example, if a synthesizer is low on system resources, it can use this option to save memory by playing the waveform at an 8-bit resolution. Truncating the sample may result in loss of sound quality.

The Microsoft Synthesizer does not use truncation, so it disregards this setting when using a wave file.

To enable a synthesizer to play back the waveform at an 8-bit resolution, click Allow Sample Truncation. For additional information, see Compression/Streaming Tab.

Allow Sample Compression

Use this option to reduce the size of a wave file by compressing wave data. Compression can be done before a wave file is loaded into the computer memory or after a wave is loaded. Compressing a file before it is loaded is the preferred method. This method is available and is fully supported by DirectMusic Producer.

The Allow Sample Compression option, turned on by default, enables a wave file to be compressed after it is loaded into memory. This type of data compression is rarely used. It is included in the industry specification for DLS files and must be included in the Wave Properties window. If a software synthesizer is low on system resources, it can use this option to save memory usage by compressing the waveform according to the μLaw algorithm. Compressing the wave sample after loading it may result in the loss of sound quality.

To enable compression of a waveform after loading it, click Allow Sample Compression. This attaches a command to the wave file that sends information telling a synthesizer that it can compress wave data into its own format after the wave is loaded into memory.

The Microsoft Synthesizer does not use compression after loading, so it disregards this setting when using a wave file. For additional information, see Compression/Streaming Tab.


Wave Properties Info Tab

If you click the Info tab in the Wave Properties window, information about the wave is displayed, as shown in the following illustration.

You can enter a subject, such as which musical instrument was used to create the sound sample, the author of the wave file, the copyright holder of the wave file, and additional comments to store with the file.

Additional information about the file includes:

  • Sample rate

    The rate used to create the wave file.

  • Sample size

    The size of each sample—8 bit or 16 bit.

  • Sample length

    The overall length of the waveform as it is originally created. This is a read-only value.

The sample rate and sample size information cannot be edited unless the wave file is opened using a sound recording and sampling software program. The sample length changes when you edit the length of a wave in the Wave Editor window. You may need to close and reopen the Info tab to see changes appear in the tab.

For details about the information in the Info tabs of all DirectMusic Producer components, see Info Tab.


Compression/Streaming Tab

Sample compression reduces the size of a wave file by compressing wave data to take up less space. Using compression enables computers to load wave files and DLS collections more quickly, and reduces the time needed to begin playback of a musical piece that uses DLS.

When the DirectMusic components, in the Microsoft® Windows® operating system, encounter a compressed wave file, DirectMusic decompresses the file before playing it. Playing a compressed wave file requires that you use a DirectMusic-compatible software or hardware synthesizer that supports using DLS files.

A wave file can be compressed before the wave file is loaded into computer memory or after the wave file is loaded. Compressing a file before it is loaded is preferred, and this is provided through options in the Compression tab.

The Compression tab provides several types of wave compression. When you save a wave file, it is compressed using the compression type you choose. When a software synthesizer loads a wave file in memory, it recognizes which type of compression has been applied to the wave file and decompresses it before playing the wave.

Note Depending on the type of compression you choose, there may be removal of small amounts of data from your wave files when you compress them. Repeatedly compressing and decompressing a wave file may result in degradation of the file, removing far more data from the file than you want, thereby lowering the audio quality of the wave file. For this reason, it is strongly recommended that you always create and retain a secure, original copy of a wave file before you compress it.

You can click the Type list to display a compression choices. These compression types may change according to which compression codecs are installed on your computer. A codec is a compression/decompression algorithm—a method used to compress files. DirectMusic Producer does not specifically install the codecs that you see in the list, and there are no compression types included with DirectMusic Producer. You see a list based on the codecs that are installed on your computer. Many different codecs are available commercially and can be installed on your computer. If there are no codecs installed, this list is empty.

The Attributes list displays sample rates for each compression type. Some types have multiple rates that you can choose. The window displays the different formats that the codec listed in the type dropdown list supports. This is the format to which the wave will be encoded to when compressed. Not all conversions may be possible or sound good. Depending on the source format of the original wave, you may need to use different formats for different waves. Also, DLD collections support only mono formats. If you are using stereo waves in a DLS collection, the mono conversion formats shown apply to each channel individually. If the stereo wave is outside of the DLS collection, then only stereo formats are available.

The following compression types may be included in the list:

  • IMA ADPCM
  • Microsoft ADPCM
  • CCITT A-Law
  • CCITT u-Law
  • GSM 6.10
  • DSP Group TrueSpeech™
  • Lernout and Hauspie CELP 4.8kb/s
  • Lernout and Hauspie CELP 8kb/s
  • Lernout and Hauspie CELP 12kb/s
  • Lernout and Hauspie CELP 16kb/s
  • Microsoft G.723.1
  • IMA ADPCM
  • IAC2
  • Windows Media Audio V1
  • Windows Media Audio V2
  • ACELP.net
  • MPEG Layer-3
  • Voxware MetaSound
  • Voxware MetaVoice
  • Voxware v1.1.6/1.1.8 File-Mode Codec
  • Voxware v1.1.8 Bitstream-Mode Codec
  • VivoActive G.723.1
  • VivoActive Siren

  • Note If you use Windows Media Audio compression, append the sample with blank space at the end. Otherwise the sample can be truncated.

The compressed data of a wave file and the data of other wave files, whether they are compressed or not, is stored in a DLS collection. When the DLS collection is used for playback, the DirectMusic components in a computer's system decompress wave data as needed. This converts the wave file to its original 8-bit or 16-bit PCM form. DirectMusic does this before loading it.

To compress a wave file

  1. In the Wave Properties window, click the Compression tab.
  2. In the Compression tab, click Compressed.
  3. In the Type list, choose the compression type to use.
  4. In the Attributes list, choose an attribute for the compression type. Only 22,050 Hz, 8-bit mono attributes are available at this time.

Streaming a Wave

Streaming is an option you can use so that an entire wave is not downloaded at one time. When you enable the streaming option, small portions of the wave file are downloaded as they are needed.

The Read Ahead value defines the size for the portions of wave that are downloaded, measured as an expression of time in milliseconds (ms). Use a Read Ahead value of at least 500 ms. Setting the time to something less than 500 ms will result in a beat of silence when either the end of a segment loop falls within the streaming wave portion, or the segment transitions to itself within the streaming wave.


Wave Loops

A wave sample can be used as a source for instrument sounds in two ways:

  • As a sound that occurs once when you play it, such as a brief animal call or a cymbal crash.
  • As a repeating sound that plays for as long as you need it, such as a sustained note on a violin.

If you want to loop the wave, define the usable portion of the wave by choosing the start and end points for the loop. These points are combined to define a length for the loop. You can use two methods to define which portion of the wave is looped:

  • Choose a numeric value in the Wave tab of the Wave Properties window for the start and end of the portion of the wave to loop.
  • Select a region of the wave in the Wave Editor window and set it to loop.

Whichever method you use, the properties of the looped wave portion are displayed in the Wave Properties window. You can use this window to edit the behavior of the loop.

The Wave Properties window includes the following settings and information:

  • Loop setting

    Turns looping on or off.

  • Sample Length

    Overall length of the waveform as is was originally created. This is a read-only value.

  • Start value

    Point in the wave at which looping begins.

  • End value

    Point in the wave at which looping ends.

  • Length value

    Length of the looping potion of the wave.

To loop a portion of a waveform, click the Loop option. If necessary, enter new values for Start, End, and Length. The start, end, and length values for the loop are linked, so adjusting one value can affect another. For example, increasing the end value causes the length to increase as well, while increasing the start value causes the length to decrease. Decreasing the length value causes the end value to decrease. However, adjusting the length value does not affect the start value.

After you set the desired values, click the Lock option to keep the length of the loop constant. This causes the start and end values to adjust when you change one or the other, so the length value is retained. For example, if you increase the start value for the loop by five steps, the end value increases by five steps as well.

Note The start, end, and length values correspond to the portion of the wave that is selected in the Wave Editor window and do not necessarily affect the loop of a wave. For more information, see Wave Tab.

To define a loop's start point and length in Wave Editor

  1. In the project tree, double-click a wave. Wave Editor opens, displaying a window similar to the following, with a green start line and a blue end line.

  2. Press ALT+> (greater than) to play the wave, or click the Play or Play from Start button at the top of the editing pane.

    Note If the Loop option has been set for this wave, the wave plays from its beginning and continues to play the portion between the green and blue lines in a loop until you stop playback.

  3. In Wave Editor, drag the mouse over the wave to highlight a portion of the wave.

Note The Snap to Zero option is turned on by default to make the start point and length of the wave easier to define. For more information, see Snap to Zero.

  4. Right-click the selected region and choose Set Loop From Selection on the shortcut menu. The green start line and blue end line move to the outside edges of the region, defining a new section of the wave to loop.
  5. Hold the SPACEBAR to play the wave from its beginning, followed by the new loop. Alternatively, press ALT+> to start play. Press ALT+> again to stop play.
  6. Right-click the Wave Editor window and choose Properties on the shortcut menu to display the values for the loop. The Loop option is automatically selected.
  7. Edit settings for the loop as desired.

To define a loop's start point and length in Wave Properties window

  1. In the project tree, right-click a wave file, or if a wave is displayed in the Wave Editor window, right-click the window.
  2. In the shortcut menu, choose Properties.
  3. In the Wave Properties window, click Loop to turn on looping for the wave.
  4. In the loop Start box, enter a value for the beginning of the looped portion. Enter zero to start the loop at the beginning of the waveform.
  5. In the loop End box, enter a value for the end of the looped wave portion. The value must be greater than the start value by at least five units.

    or

    In the loop Length box, increase or decrease the value to automatically adjust the end value. The length is always one unit greater than the end value minus the start value.


Stereo Waves

Producer supports the use of both mono and stereo wave files. You can insert both types of waves into the project tree, and open them with Wave Editor, or drag them into the Waves folder of a DLS collection for use when designing DLS instruments. You can also insert both types of waves into the Wave track of a segment.

When you insert a wave into the project tree, the icon of the wave shows whether it is mono or stereo. The following figure shows a DLS collection containing the icons of the Bright Trumpet1 wave, which is mono, and the Bright Trumpet2 wave, which is stereo.

When you open a stereo wave in Wave Editor, both the left and right channels of the wave are displayed in the editing window. The following figure shows the Bright Trumpet2 stereo wave, displayed in Wave Editor.

›

You can use Wave Editor to select and edit portions of a stereo wave in the same ways you do a mono wave. See Cutting, Copying, and Pasting Portions of a Wave.

DLS Designer uses stereo waves by dividing them into two separate waves for the left and right channels. For a stereo wave to play in a DLS instrument, you must place the left and right versions of the wave into separate layers. When a note in the instrument is assigned to a region in each of the two layers, the waves of both regions are heard when the note plays. For information about creating layers in an instrument, see Layers.

Only synthesizers that are compatible with DLS2 support multiple layers in an instrument, The two channels of a stereo wave are used only when the instrument is played using a DLS2 synthesizer.

The following figure shows an instrument with three layers. The bottom layer is used with DLS1 synthesizers. The two layers above it, marked 1 and 2, are used with DLS2. In the figure, the lowest region in layer 2 is selected, and uses the right channel of the Bright Trumpet2 wave.

To create a stereo effect, you would assign the lowest region in layer 2 to use the left channel of the Bright Trumpet2 wave,. When any pitch from C0 to G5 is played in a DLS2 synthesizer, it will use a combination of the left and right channels for a stereo effect.

You can assign any mono wave to the DLS1 layer of an instrument. If no appropriate mono wave is available, the left channel of a stereo wave is typically used.

Note For simplicity in assigning waves to regions, all three layers of the instrument shown in the preceding figure contain regions that play the same range of notes. This is not required.


Chordmap Designer

A chordmap is a collection of chords that provides multiple potential chord progressions to a Microsoft® DirectMusic® Producer piece. It serves as a quick source of chord progressions for a segment. Chord progressions are drawn from a chordmap and inserted into a segment. See Variable Chord Progressions.

A chordmap contains various short strings of chords, called chord paths, and the chord paths can be combined in a segment to fill the Chord track with a progression of chords that extends the full length of the segment. The following illustration shows a chordmap file containing numerous chord paths.

A chordmap can also be used as a source of chord progressions for a variable piece of music that is generated at run time in a software application or game. A chordmap is used with the signposts in a segment. See Using Files in the Developer Environment.

Note: For the Microsoft® DirectX® 8.0 release of Producer, templates are replaced by segments containing a signpost track and a chordmap track. For all discussion of chordmaps, any reference to a template can be substituted by a segment containing a signpost track and a chordmap track.

The chords in a chordmap and the underlying scales for those chords are designed to evoke a particular tonality, an emotional mood, or a set of related keys. You can design chordmaps with as much or as little detail and complexity as you choose. Because chordmaps are extensible, you can create a simple chordmap, begin using it, and later add more chords and chord paths without losing the music content you have already created.

The chords in a chordmap are organized sequentially to provide a sensible progression from one chord to the next. A string of chords forms a pathway along which a piece progresses, and a chordmap usually contains numerous pathways with many interconnected chords. This provides several chord combinations that can form the chord progression in a piece.

This documentation includes a step-by-step guide for creating a chordmap and segment that work together. For more information, see Step-by-Step Procedure for Building a Chordmap.


Chordmap Designer Window

The following figure shows the components of the Chordmap Designer window.

A chordmap consists of four main components:

  • Timeline

    Three design modules contain a timeline in their editing pane: Chordmap Designer, Pattern Editor, and Segment Designer. The timeline displays the measures and beats of the chords in the Chord Path window, as well as the time signature, measure numbers, and the elapsed time in seconds (optional).

  • Signpost List

    Certain chords in a chordmap are designated as signposts. These are the primary chords that define the structure of a chordmap. See Signpost Chords. A chord must be in the Signpost list in order for DirectMusic Producer to recognize and use it as a signpost chord when generating new chord progressions in a segment. For more information, see How a Chordmap Interacts with Signposts.

  • Chord Path Window

    The main body of the chordmap is the set of pathways you design in the Chord Path window. In the Chord Path window, you can edit the properties of a chord, drag a chord to a new location, and draw connections between chords. Chords are positioned from left to right, and the beginning of a chord—the beat and measure on which it occurs—is determined by its position relative to the timeline.

  • Chord Palette

    The chord palette is a collection of easily accessed chords that you set when creating the chordmap. The chord palette consists of twelve major triads that are doubled an octave higher. The roots of these triads are the same as the pitches of the chromatic scale. You can change the palette by altering the properties of a chord and dragging that chord to the Chord Path window. You can also base the chord palette on a single underlying scale consisting of seven tones.

    In this case, each of the seven main chords in the chord palette is set to use an underlying scale tone for its root, 3rd, 5th, and 7th tone. Thus, you can set a chord palette to reflect a specific tonality, for example, major, harmonic minor, or natural minor. However, you can change individual chords to use any quality or structure.

    After you create a palette for a chordmap, you can use any of these chords to build a graphic set of pathways that represent the chord progressions you create. In addition to the chords you choose from the palette, you can insert individual chords in the chord progressions and also assign properties to the chords.


Chordmap Structure

A well-designed chordmap can be compared to a roadmap in that it offers several paths to choose from when traveling to a destination. Depending on the path chosen, a traveler is lead through different cities en route to a final destination. In a chordmap, different chord paths can lead to the same final destination chord. Each time a chordmap is used, a different pathway and different chords can be used, resulting in variable chord progressions.

Chord paths form the body of a chordmap and are a graphic representation of the progressions provided by the chordmap. Chord paths begin at the left edge of the chord path window, and end at the right edge. The following figure shows a simple chordmap.

Signpost chords are placed at the beginnings and ends of all paths. A chordmap usually includes several strings of chords that extend from each signpost, called chord paths. A chord path typically contains between four and eight chords.

When a chordmap is used to generate a new chord progression in a segment, a signpost chord is inserted along with one of the chord paths following it, provided there is room in the segment for the chord path to fit. For more information, see Chord Paths.

For convenience, you can store the most frequently used chordmap chords in a chord palette at the left of the editing window. The chord palette is comparable to a painter's palette. Just as the paint colors included in a palette affect the mood or emotional impact of a painting, the chords in the chord palette usually define the mood of the chordmap. You can use a custom palette containing chords you design, a palette containing chords based on a scale, or the default palette containing all major triads.


Variable Chord Progressions

A segment can contain chords that you insert in the Chord track. You can delete and edit the chords, or insert new ones at any time. However, a segment can also use a chordmap file as a source of chords, so that pre-designed chord progressions are drawn from the chordmap and inserted automatically into the Chord track.

To use a chordmap, a segment must have a Signpost track containing signposts, and a Chordmap track. Instead of placing individual chords in the Chord track, you insert commands in the Signpost track for how often the chords should change. You then insert a chordmap file in the Chordmap track.

Note Beginning with the Microsoft® DirectX® 8.0 release of Producer, a segment that contains a signpost track and a chordmap track is the functional equivalent of a template file. You no longer have the option of creating a new template file in the project tree. Instead, you create a segment containing signpost and chordmap tracks, and use it in the same way as a template. You can open and use any template files created with earlier versions of Producer, but the Properties window of a template no longer contains a Template tab. In this documentation, any use of the term template can be understood to mean a segment that uses chordmaps.

Using chordmaps increases the variability of the segment by providing a variety of chord progressions that can be automatically inserted any time you like. A chordmap contains various short strings of chords, called chord paths, and the chord paths can be combined in a segment to fill the Chord track with a progression of chords that extends the full length of the segment. Each time the segment is used, DirectMusic Producer can compose a new set of chords for you, based on the chord paths, in any chordmap you want to use. The segment can be used repeatedly with different sets of chords, so that styles or patterns in the segment play over different chords. For more information about using variable chord progressions in a segment, See Using Chordmaps.

After you insert signposts and a chordmap, a segment responds to a command triggered when you click the Compose Chords button. New chords are drawn from the chordmap each time you click. You can also set up the segment properties so that the command is triggered each time the segment plays, or when the segment loops. See Signpost Track Properties. The command can also be included in a script. See Script Designer.

When a segment using chordmaps is used by a software developer in a computer game, Web page, or other application, the Compose Chords command can be triggered in the application. This provide a run-time performance where variable chord progressions are drawn from the chordmap just before the music plays. For more information, see Using Files in the Developer Environment.


Using Chordmaps

Chordmaps are used as the source for pre-designed chord progressions in a music piece. You can use them in three ways:

  • You can place a chordmap file in a segment so each time the segment is used, it draws on the chordmap to generate a new chord progression. See Using a Chordmap in a Segment.
  • You can supply a chordmap file to software or Web site developers so they can use the chordmap at run time to generate a new chord progression for a DirectMusic performance. For more information, see Using Files in the Developer Environment and Delivering Run-time Files.
  • You can temporarily draw on chordmap material as you design a segment. This helps you quickly arrive at suitable chord progressions for the segment. After you generate a chord progression in a segment that is particularly effective, you can remove the chordmap file to prevent generating new chord progressions.

Chordmaps add a high level of variability to your music because there are multiple paths to choose from as a piece moves toward a destination chord. Each time a new chord progression is generated, parameters for phrase lengths, and start and end chords are taken into account, and suitable paths from one chord to another are selected. If more than one path is possible, a suitable path is selected at random.

When using a chordmap in a segment or supplying a chordmap to a software developer, you are combining its data with that of a style component to generate the greatest variability in a DirectMusic Producer piece. As a style plays over the chords in a chordmap, the music patterns of the style are altered to fit the chords.


Using a Chordmap in a Segment

A chordmap is used in a segment to generate variable chord progressions. To use a chordmap, a segment must have at least two tracks:

  • Chordmap Track

    Contains the specific chordmap file used to provide variable chord progressions for a segment.

  • Signpost Track

    Contains signposts you place for where signpost chords can be inserted. Each signpost names a signpost group in the chordmap file. To function, a Signpost track must contain at least one signpost. Also contains a Compose Chords button used to draw signpost chords from the chordmap. For information, see Compose Chords Button.

Before you can use the Compose Chords command, a segment must also have one of the following:

  • Style Track

    The Style track must contains a style file to be played by the segment.

  • Pattern Track

    The Pattern track can be empty or contain notes.

Tracks Automatically Added

When you use a chordmap, the following tracks are added automatically to a segment if they do not already exist, depending on whether you use a style or a pattern in the segment:

  • Chord Track

    Contains the chords drawn from the chordmap file. If a Chord track is not in a segment, one is added when you click the Compose Chords button in the Signpost track.

  • Tempo Track

    Contains the tempo drawn from the style file. If a Tempo track is not in a segment, one is added when you insert a style into the Style track of the segment.

  • Band Track

    Contains the band drawn from the style file. If a Band track is not in a segment, one is added when you insert a style into the Style track of the segment.


How a Chordmap Interacts with Signposts

Chordmaps work in conjunction with signposts in a segment. You can insert a chordmap in a segment so each time the segment generates a new chord progression, it draws chords from the chordmap and arranges them to create a single series of chords.

A segment uses a chordmap in two ways:

  • It evaluates chords in the chordmap Signpost list and selects which signpost chords can be used in a chord progression.
  • It looks at chord paths that have been built from the selected signpost chords and evaluates whether any chord paths can be included in the progression.

Each time you click the Compose Chords button in the Signpost track, Microsoft® DirectMusic® Producer evaluates the chords in a chordmap and selects a new set of suitable chords for the segment. Thus, a chordmap serves as a source for variable chord progressions you can instantly change in the segment.

DirectMusic Producer bases the selection of chords on the signpost chords of the chordmap. These are the primary chords that are contained in the Signpost list. After suitable signpost chords are selected, they are inserted in the Chord track. If the signposts are accompanied by chord paths, the chord paths are also inserted in the segment, so that a series of signposts and their chord paths are strung together in a long chord progression. If no chord paths can fit into a part of the segment—for example, if all chord paths are too long—then only a signpost chord is selected and inserted.

When creating a chordmap, you use the Signpost list to organize chords into signpost groups (SPGs). The following figure shows chords assigned to signpost groups 1, 2, A, and B.

For more information about using the Signpost list, see Organizing the Signpost List.

To work with signposts, a signpost chord must be assigned to at least one signpost group (SPG) in the Signpost list. You can then place a signpost in the Signpost track to indicate which signpost group is used at a given point in the segment. The following figure shows a segment with signposts in measures 1 and 4. Signpost groups A and B are used.

An signpost in a segment tells DirectMusic Producer to search the Signpost list of a chordmap and select a signpost chord from the signpost group. If there is a chord path in the Chord Path window that extends from the signpost, the chord path may also be used.

The segment then plays the selected signpost chord and, if possible, the chord path that extends from it, until the next signpost is reached. The performance progresses from a chord in the first signpost group to a chord in the next signpost group. The following figure shows the relationship between where chords are positioned in a Chord Path window and the measures of a segment in which the chords are inserted. In the figure, the segment is positioned below the Chord Path window so the measures in both components are aligned.

In this figure, the Signpost list uses chords from signpost groups 1 and 2. The Chord Path window has signpost chords in measures 1 and 5. The window also contains a pair of chord paths that begin at a 2 C M signpost chord, pass through 2 G M or 2 E 7, and end with 2 A m or 2 F M. The chords drawn from the chordmap have been inserted in measures 1 through 5 of the segment Chord strip.

The Signpost track in the segment contains Signpost 1 in the first measure and Signpost 2 in the fifth measure. Because 2 C M is in signpost group 1 of the Signpost list, it is inserted in measure 1 of the segment Chord track. Also, because 2 A m and 2 F M are in signpost group 2 of the Signpost list, one of them is selected and inserted in measure 5 of the segment Chord track. Either chord in the middle of the chordmap (2 G M or 2 E 7) can fill the chord progression between signpost chords. Because there is a four-measure space between the signposts in the segment, the four-measure phrases in the chordmap fit well in the segment.

The measures in the chordmap timeline are relative. For example, a connection between a signpost on the first beat of measure 1 and the first beat of measure 5 represents a connection between two signposts four measures apart. You are not required to position signpost chords in measures 1 and 4 of a segment. You can place them in the segment at any location four measures apart so the chord paths, which are four measures long, will fit. If the signposts are too close together for a chord path to fit, another path may be chosen, or a signpost chord is used without a chord path extending from it.

By default, a chord path in a chordmap must have the exact number of beats that fit in a segment. Otherwise, the chord path is not used, and the connection chords are omitted from the segment and only the signpost is used, as if no chord path extends from it. This is true even if there are more beats in the segment than are required to fit the chord path.

When you use a chordmap with a segment containing a different time signature, chord path use is limited. Even though a chord path may extend over the same number of measures as in a segment, the number of beats in the segment may be different if the segment has a different time signature. For example, a four-measure chord path using a 3/4 time signature requires 12 beats. A four-measure section in a segment using a 4/4 time signature has 16 beats. The chord path does not fit this section in the segment, and the chord path will not be used.

A partial solution to this limitation is to use variable chord durations. By doing so, you can assign a range of potential beats that each chord can play. You also ensure greater flexibility in situations where a chord path is used. For more information, see Fixed Durations and Variable Durations.

For additional information about signpost chords in segments, see Placing Signposts.


Signpost List

Certain chords in a chordmap are designated as signposts. These are the primary chords that define the structure of a chordmap. When you create chord paths in a chordmap, you place signpost chords in the Chord Path window and fill in with other chords.

Signpost chords are also the primary chordmap elements used by a segment. When a segment draws chords from a chordmap, signposts are placed in the segment and other chords from the Chord Path window are filled in around them where possible.

A chord must be in the Signpost list for Microsoft® DirectMusic® Producer to recognize and use it as a signpost chord.

You can use the Signpost list to organize a chordmap's signpost chords into signpost groups (SPGs). After a signpost is assigned to a group, it can be used as part of a chord progression. For more information, see Signpost Chords and How a Chordmap Interacts with Signposts.

You can use the signpost chords to build chord paths in the Chord Path window. Insert a copy of a signpost chord in the Chord Path window and add a string of chords after it. For more information, see Chord Paths and Step-by-Step Procedure for Building a Chordmap.


Chord Path Window

The Chord Path window contains the main body of the chordmap. It is a graphic editing region in which you can place chords. You string chords together by drawing connections between them to create chord paths. You can edit the properties of a chord and drag chords to any position. In the Chord Path window, you arrange chords to form sensible paths that play from left to right, producing various chord progressions. When a path is played, the chords play in series, one after another. Most chords in the map have multiple paths leading to and from them, thus providing numerous chord progressions for Microsoft® DirectMusic® Producer to select when playing a music composition.

The Chord Path window consists of the following:

  • Timeline

    Shows the measures and beats of music in the chordmap.

  • Chord paths

    Multiple series of chords that provide numerous chord progressions.

  • Signpost chords

    Special chords that serve as end points for chord paths, marked with a green start symbol and a red stop symbol.

  • Connecting chords

    Chords placed between signposts to fill out the chord paths.


Chord Palette

The chord palette is a collection of chords you set for easy access when creating the chordmap. You can drag chords from the chord palette to the Chord Path window or to the Signpost list. Initially, the chord palette contains just major triads. You can alter the properties of chords in the palette and thus create a custom chord palette. For more information, see Using the Chord Palette.


Opening a Chordmap

You open a chordmap by double-clicking its icon in the project tree, shown in the following figure.

You can add a chordmap to the project tree by loading a saved chordmap or by creating a new chordmap. For more information, see Adding an Existing Chordmap to the Project Tree and Step-by-Step Procedure for Building a Chordmap.


Adding an Existing Chordmap to the Project Tree

If you have saved a chordmap, you can load it into the project tree and open it. A few pre-designed chordmap files are included with DirectMusic Producer. For information about adding an existing component to the project tree, see Adding Existing Components to the Project Tree.

After a chordmap has been added to the project tree, you can double-click its icon to launch Chordmap Designer and display the chordmap's contents.


Step-by-Step Procedure for Building a Chordmap

You can create a chordmap containing any number of chords and pathways between the chords. The following figure shows a simple chordmap.

The chordmap in the preceding figure contains the following signpost chords in the Signpost list: 2 C M, 2 Ab M, 2 F# M, and 2 D M. These signpost chords are also placed at the left and right of the Chord Path window. Chord paths extend between the signpost chords at the left and right edges.

In most chordmaps, there are numerous chord paths leading from the left of the Chord Path window to the right. When a segment is set to use a chordmap, Microsoft® DirectMusic® Producer selects a path, and plays music based on the chords in the path.

You can create a chordmap using the following steps:

To create a chordmap

  1. Add a new chordmap to the project. See Adding a New Chordmap to the Project.
  2. Enter chords in the Signpost list. See Entering Chords in the Signpost List.
  3. Assign signpost chords to signpost groups. See Assigning Chords to Signpost Groups.
  4. Enter signposts in the Chord Path window. See Entering Signposts in the Chord Path Window.
  5. Enter connection chords. See Entering Connection Chords.
  6. Edit individual chords in the Chord Path Window. See Editing Individual Chords in the Chord Path Window.
  7. Draw paths between the chords. See Drawing Paths Between Chords.

Note After you complete step 3, you can begin using a chordmap with a segment to provide variable chord progressions. Steps 4 through 7 are used to create more sophisticated chordmaps that include connection chords in the Chord Path window. Because a chordmap works in conjunction with the signposts in a segment, read the information in How a Chordmap Interacts with Signposts before building a chordmap.


Adding a New Chordmap to the Project

You can create a new chordmap in which you set up a chord palette, chord paths, signposts, and connection chords. After you save it, it is stored in the project tree for use with segments.

You can add a new default chordmap to a project at any time.

To create a new chordmap

  1. On the File menu, click New. The following window appears.

  2. Double-click Chordmap. A new chordmap icon is added to the project tree. For more information, see Default Chordmap.


Entering Chords in the Signpost List

Signposts are the primary chords used when creating variable chord progressions. For more information, see How a Chordmap Interacts with Signposts. Signposts also serve as the end points for chord progressions that fill out the chordmap.

You set a chord as a signpost chord by placing it in the SP column of the Signpost list, shown in the following figure.

There are three ways to place chords in the Signpost list:

  • Drag a chord, or copy and paste it, from the chord palette.
  • Enter a new generic chord and edit its properties.
  • Drag a chord, or copy and paste it, from the Chord Path window.

The easiest way to place a chord in the Signpost list is to drag, or copy and paste, it from the chord palette, because palette chords already have their properties defined (name, chord quality, and scale configuration). You can first adjust the properties of a chord in the palette, so they are the properties you want. Chords in the palette are available for repeated use throughout the chordmap without resetting their properties. For more information, see Chord Palette and Using the Chord Palette.

Any chord in the Signpost list can be edited to have any name, quality, or scale configuration without affecting the original source chord.

To insert a chord from the chord palette in the Signpost list

  1. Drag a chord from the chord palette to a box in the SP column that contains <new>, as shown in the following figure.

  2. Click an empty box to the right of the new chord to add it to a signpost group.

To enter a new chord in the Signpost list

  1. In the Signpost list, click the box in the SP column that contains <new>, as shown in the following figure. A new 2 C M chord is entered in the list. If you have changed the chord palette or the key signature, the chord in the tonic position may be a chord other than 2 C M.

  2. Right-click the new 2 C M chord and then on the shortcut menu, click Properties.
  4. Edit the properties of the chord as desired.

Note When you enter a chord in the SP column of the Signpost list, the name of the chord may be shown using bold or italic text. Each type of text indicates a different status for the signpost chord. For more information, see Matching Pairs of Signposts in the Chord Path Window.

To delete a chord from the Signpost list

  1. In the SP column of the Signpost list, click a chord.
  2. Press DELETE.

After you enter signpost chords in the SP column, you can click any of the empty boxes to the right of the chord to assign the chord to signpost groups. For more information, see Assigning Chords to Signpost Groups.


Assigning Chords to Signpost Groups

After you have enter signpost chords in the SP column of the Signpost list, you can click an empty box to the right of the chord—columns 1 through 7 and A through F, shown in the following figure—to assign the chord to one or more signpost groups.

You do not need to complete additional steps to begin using the chordmap with segments. A chordmap that has only signposts can function as a source for variable chord progressions. For more information, see Signpost List. However, steps 4 though 7 of this Step-by-Step Procedure for Building a Chordmap provide instructions for creating more sophisticated sets of chord progressions in the Chord Path window of a chordmap. For more information, see Entering Signposts in the Chord Path Window.


Entering Signposts in the Chord Path Window

After you enter a chord in the Signpost list, you can place it in the Chord Path window. This ensures that each signpost chord in the chord path matches the corresponding chord in the Signpost list. Signpost chords should be positioned at the left or right edge of a chord path.

You can right-click a signpost chord in the Signpost list and click the Insert into Chordmap command on the shortcut menu to place a pair of signposts in the chordmap. Using the Insert into Chordmap command places a pair of beginning and ending signposts on the left and right of the chordmap, shown in the following figure.

For more information about entering signposts in matching pairs, see Beginning and Ending Signpost Pairs.

In DirectMusic Producer, chords must have at least two characteristics in common to match one another:

  • They must have the same root note, such as 2 C, 2 D, or 1 F#.
  • They must have the same chord structure.

Chords are not required to have the same chord scale, inversion settings, or chord quality description, such as major and minor. For more information, see Matching Chords throughout the Chordmap.

Note Signpost chords must occur in a segment on measure boundaries. Therefore, you must position signpost chords in the chord path window so they occur on the first beat of a measure. The exception to this is when you create a chordmap with variable chord durations. See Fixed Durations and Variable Durations.

Beginning signposts are placed at the left of the chordmap, and ending signposts at the right. It is not necessary that every ending signpost be at the extreme right of the chordmap, as long as it is to the right of all connection chords leading to it. For more information, see Chord Paths.

To insert a matched pair of beginning and ending signpost chords in the Chord Path window

  • In the Signpost list, right-click a signpost chord and then on the shortcut menu, click Insert into Chordmap. A beginning signpost chord is inserted in the first measure of the chord map and an ending signpost is placed in the final measure.

To enter an individual signpost chord in the chordmap—if, for example, you inadvertently delete a beginning signpost and the corresponding ending signpost has several chord paths connected to it—you can manually designate the chord as a signpost.

To insert an individual signpost chord in the Chord Path window

  1. In the Signpost list, drag a chord to the Chord Path window.
  2. Right-click the new chord in the Chord Path window and then on the shortcut menu click Toggle Beginning Signpost to designate the chord as a beginning signpost, or click Toggle End Signpost to designate the chord as an ending signpost.
  3. Drag the beginning signpost to the left edge of the Chord Path window or the ending signpost to the right edge of the Chord Path window. It is not required that every ending signpost be at the extreme right end of the Chord Path window, but only to the right of all connection chords leading to it. For more information, see Chord Paths.


Entering Connection Chords

To enhance the interest and variability of a piece, you can insert connecting chords in the empty areas between signposts. You can draw lines from beginning signposts to connecting chords to ending signposts, thus creating chord paths. Playback of a piece moves through a number of beginning and ending signposts chords, depending on how many signposts are indicated in the segment.

There are three ways you can place connecting chords in the Chord Path window:

  • Drag them from the chord palette.
  • Drag them from the Signpost list. Individual chords dragged from the list are no longer designated as signpost chords.
  • Enter a new generic chord and edit its properties.

Placing connecting chords is most easily done by dragging a chord from the chord palette. These chords already have a properties set. You can edit a chord in the Chord Path window to have any name, quality, or scale configuration without affecting the source chord.

To insert a palette chord in the Chord Path window as a connecting chord

  1. Drag a chord from the palette to an empty area between the left and right columns of the signpost chords.
  2. Right-click the newly placed chord and then on the shortcut menu click Properties.
  3. Edit the chord's properties as desired.

To create a new connecting chord

  1. In the Chord Path window, click anywhere between the left and right columns of signpost chords, or right-click and then click Insert on the shortcut menu. A new 2 C M connecting chord, the tonic chord of the chord palette, is inserted. If you have changed the chord palette or have chosen a new key for the chord map, the tonic chord may be different.

  2. Right-click the 2 C M connecting chord and then on the shortcut menu click Properties..
  3. Edit the chord's properties as desired.

To delete a chord from the Chord Path window

  • Right-click a chord in the Chord Path window and then on the shortcut menu click Delete.


Editing Individual Chords in the Chord Path Window

Chords in the Chord Path window are separate from one another. After you place a chord in the Chord Path window, it is not linked to other chords in the chordmap; you can edit its properties without affecting any other chords. However, in the case of signpost chords, you must keep the name and properties of the pairs of beginning and ending signpost chords equal, as well as the corresponding chord in the Signpost list. For more information, see Matching Chords throughout the Chordmap.

To edit the properties of a chord in the Chord Path window

  1. In the Chord Path window, right-click a chord and then on the shortcut menu click Properties.
  2. Edit the properties as desired. These are the same controls as those displayed when you view properties of a chord in the chord palette. For information about editing a chord's properties, see Editing Chords in the Palette.


Drawing Paths Between Chords

A chord path is a string of chords that extends from left to right in the Chord Path window. You can create connections from any chord in the window to any other chord that begins at least one beat later. A chord path starts with a beginning signpost, extends to the right to one or more connecting chords, and ends at an ending signpost.

To create a path from a beginning signpost to a connecting chord

  1. At the left of the Chord Path window, locate a beginning signpost chord, which is marked by a triangular start symbol.
  2. Click the small rectangle, called the connection box, on the right side of the signpost chord and hold the mouse button. The connection box is shown in the following figure.

  3. Drag the mouse to a connecting chord that begins at least one beat later than the beginning chord and release the mouse button. A line is drawn between the two chords, as shown in the following figure.

The line remains red until you create another connection between the chords.

Note Multiple direct paths between the same pair of chords, with no intervening chords, are not accepted. If you draw a second connection between two adjacent chords, a message warns you that the connection is not possible.

For more information, see:

  • Connecting Chords
  • Deleting Connections Between Chords
  • Extending a Chord Path to More Chords
  • Creating Multiple Chord Paths from a Chord
  • Redirecting Connections to Other Chords


Default Chordmap

After you add a new chordmap to the project tree, you can open it and edit it using Chordmap Designer.

To open the new chordmap

  • Double-click the icon for the internal name of the new chordmap. Chordmap Designer, shown in the following figure, launches and the contents of the empty chordmap are displayed.

The following applies to a new chordmap:

  • The timeline shows a default time signature of 4/4.
  • No chords exist in the new Chord Path window.
  • No chords are listed in the Signpost list.
  • The chord palette contains a major triad built on each pitch of the chromatic scale. For more information, see Default Chord Palette.


Signpost Chords

Signpost chords are the primary chords that define the structure of a chordmap, and they are the primary elements used by a segment when creating chord progressions. When a segment draws chords from a chordmap, signposts are placed in the segment and other chords from the chordmap are filled in around them where possible. You create a signpost chord by entering it in the Signpost list of a chordmap. A chord must be in the Signpost list for DirectMusic Producer to use it as a signpost chord. After a chord is in the Signpost list, a segment can use the signpost chord by inserting it in a measure where a signpost occurs. For more information, see How a Chordmap Interacts with Signposts.

You can also use signposts as beginnings and endings for chord paths that you create in the Chord Path window. When you create chord paths, you place signpost chords in the Chord Path window and fill in with other chords. The signpost chords are like anchors to which a string of connecting chords are attached.


Organizing the Signpost List

When calculating which chords can be drawn from a chordmap, DirectMusic Producer uses information in the Signpost list to determine which chords to use and in what order to use them.

For DirectMusic Producer to use a chord as a signpost, the chord must be entered in the SP column of the Signpost list.

You can enter any chord in the Signpost list in one of three ways:

  • In the SP column of the list, click the box that contains <new> to enter a new chord. Then, edit the chord as you need.
  • Drag a chord from the chord palette to the box in the SP column that contains <new>.
  • Drag a chord from the Chord Path window to the box in the SP column that contains <new>.

Dragging a chord from the chord palette or the Chord Path window ensures that the chords in the Signpost list have properties matching other chords throughout the entire chordmap. For more information, see:

  • Matching Chords Throughout the Chordmap
  • Chord Properties Window
  • Drag-and-Drop


Assigning Signpost Groups

After you have entered a chord in the Signpost list, DirectMusic Producer recognizes it as a signpost. However, the signpost chord must be assigned to one or more signpost groups (SPGs) before the signpost can be used in a segment.

You use the Signpost list to organize chords into signpost groups (SPGs). There are thirteen different signpost groups to which you can assign a chord (groups 1 to 7 and A to F).

The SP column of the Signpost list contains the chords to use as signposts. Next to each chord is an X for every signpost group the chord belongs to. The following figure shows chords assigned to various signpost groups.

In the preceding Signpost list, the following SPG assignments are shown:

  • 2 C M belongs to signpost groups 1 and B
  • 2 D m belongs to signpost groups 1, A, and B
  • 2 G M belongs to signpost groups 1 and A
  • 2 E 7 belongs to signpost groups 2 and A
  • 2 G 7 belongs to signpost groups 2 and B
  • 2 F 7 belongs to signpost groups 2, A, and B

To work with a segment, a signpost chord must be assigned to at least one SPG in the Signpost list. You can assign a chord to as many different signpost groups as you choose.

After all chords are assigned to signpost groups, you can place signposts in the segment to indicate which signpost group will be used at various points in the segment. For more information, see How a Chordmap Interacts with Signposts.


Chord Paths

When a segment draws chords from a chordmap, it selects signpost chords and inserts them wherever signpost occurs. For more information about this, see How a Chordmap Interacts with Signposts.

To create interest, you can create chord paths in a chordmap. Chord paths consist of signpost chords followed by a string of additional connecting chords extending from it. Each time a signpost is inserted in a segment, it can bring with it a path of connecting chords. This results in a short progression of several chords being inserted in the segment, provided there are enough measures in the segment to accommodate the chord path before the next signpost. If the segment does not have enough room to fit the chord path along with the signpost chord, the chord path is ignored and a different chord path is used. If no chord path can fit, then the signpost is inserted by itself without a chord path extending from it.

You create chord paths by placing signpost chords in the Chord Path window and then inserting connection chords after them. (For more information, see Signpost Chords in the Chord Path Window and Step-by-Step Procedure for Building a Chordmap.)

You can arrange the chords in the Chord Path window to form short chord progressions by creating chord paths that are generally from three to six chords in length. A chord path begins with a beginning signpost chord and ends at an ending signpost chord, and passes through any number of connection chords. The following figure shows a simple chord path with a 2 C M beginning signpost, followed by 2 F M and 1 A 7 connection chords, and leading to a 2 D M ending signpost.

Chords in a chord path are connected by solid lines that you draw in the Chord Path window. Beginning signposts and connection chords can have multiple paths leading from them so a chord can belong to many different paths.

The author of the chordmap chooses the chords to place in the Chord Path window and which chords to connect with one another. For example, the uppermost path shown in the preceding figure starts at a 2 C M beginning signpost. From there it goes to a 2 F m connecting chord, a 1 A 7 chord, and finally to the 2 D M ending signpost.

Note A single beginning signpost by itself can serve as a complete chord path that plays for many beats. It is not necessary for a beginning signpost to link to connecting chords or ending signpost chords. For more information, see How a Chordmap Interacts with Signposts.


Using Chord Paths

You can create numerous chord paths in the Chord Path window of a chordmap, so each signpost chord has multiple chord paths extending from it.

For example, in the preceding figure, each of the beginning signpost chords along the left edge of the Chord Path window can lead to one of three different connection chords beginning in measure 5. For example, the 2 C M beginning signpost chord can lead to 2 F M, 2 G 7, or 2 C M in measure 5. From there, each chord path can lead to any of four connection chords beginning in measure 9, or in some cases to an ending signpost chord without first going to another connecting chord. This means that each beginning signpost chord can be followed by several potential strings of chords.

When signpost chords are evaluated for use in a segment, chords are chosen first from the Signpost list to use at each of the signposts in the segment. The Chordmap window is then searched for any chord paths extending from those signpost chords that will fit into the number of measures provided.

A segment with a signpost for Signpost Group1 in measure 1 and a signpost for Signpost Group2 in measure 13 can fit a 12-measure chord path between the signposts. Even if the only signpost chord in the preceding example that belongs to Signpost Group1 is the 2 C M chord, there would still be a total of 21 different chord paths that could be selected to fit into the 12 measures of the segment. In addition to the numerous paths that use connecting chords, any individual signpost chord that is assigned to SPG 1 in the Signpost list but has no paths extending from it can also be used to fill in the segment for the entire 12 measures until SPG 2 is reached. For more information about placing signposts in segments, see Placing Signposts.

When a segment encounters a signpost during playback, Microsoft® DirectMusic® Producer potentially chooses any chord path that logically fits between one signpost and the next. Whether a chord path logically fits depends on:

  • Whether a path leads to one of the chords in the next signpost.
  • Whether the minimum and maximum number of beats required by the combined chords in the path fit within the number of beats provided between the signpost.

If there are multiple potential chord paths to choose from when inserting chords in a segment, DirectMusic Producer essentially selects a chord path at random from the various choices. However, the choice can be influenced by other factors, such as the priority setting you assign to another connection in the chord path.

  • For more information about inserting SPGs in segments, see How a Chordmap Interacts with Signposts.
  • For more information about durations of chords in a chord path, see Fixed Durations.


Connection Boxes

On the right edge of each chord in a chordmap is a small rectangle called a connection box.

Each time a new connection is drawn extending from the right edge of a chord, an additional connection box is added to the chord.

For more information, see Connecting Chords.


Inserting Chords in the Chord Path Window

You can place a chord at any position in the Chord Path window and you can insert any number of chords in the window. Chords you place in the window can be signpost chords or connecting chords.

There are four ways you can enter chords in the Chord Path Window:

  • Right-click a chord in the Signpost list and then on the shortcut menu click Insert into Chordmap to enter a pair of beginning and ending signposts (recommended).
  • Drag a chord from the Signpost list to the Chord Path window to enter it as a simple connecting chord.
  • Drag a chord from the chord palette to the Chord Path window to enter it as a simple connecting chord.
  • Right-click in the Chord Path window to insert a new, default chord in the Chord Path window.

You can right-click any chord you enter in the Chord Path window as a simple connecting chord and change the chord to a signpost. (For more information about entering signposts in the Chord Path window, see Signpost Chords in the Chord Path Window.)

When you insert a new, default chord in the Chord Path window, it will be similar to the following.

A newly inserted chord is red, indicating that it is selected. After you insert a chord, you can reposition it within the Chord Path window and open a Properties window to set the name and behavior of the chord. For more information, see Editing Chords in the Chord Path Window.


Default Chord in Chordmaps

The default new chord is 2 C M. If you change the tonic chord in the palette or choose a different key for the chordmap, the default chord is different.

You can change a chord's name and properties by opening its Chord Properties window. The name of the chord indicates:

  • Its octave placement on the piano keyboard. The number 2 is the equivalent of the octave beginning at middle C and continuing upward through the note B. Number 1 would indicate that the chord root is in the octave below middle C.
  • Its root, in this case, C.
  • Its chord quality, in this case, M for major.


Editing Chords in the Chord Path Window

Editing chords in the Chord Path window includes opening the Properties window for a chord to edit its settings, as well as dragging a chord and deleting it. The same Chord Properties window, shown in the following figure, is used throughout DirectMusic Producer in all design modules that display chords.

For information about using the Chord Properties window to edit any chord in the chordmap or in any of the various design modules, see Editing Chord Properties.

You can drag or delete a chord, or edit the properties of a chord without affecting the properties of any other chord. However, some chords in a chordmap file are related to one another in that chords with the same name are expected to have the same properties. This is especially true for signpost chords that appear both in the Signpost list and in the Chord Path window. For more information, see Matching Chords throughout the Chordmap.

To position a chord in a different measure or beat

  1. In the Chord Path window, click a chord.
  2. Drag the chord to the desired measure and beat.

To delete a chord from the Chord Path window

  1. In the Chord Path window, click a chord.
  2. Press the DELETE key.

    or

    Right-click a chord and select Delete on the shortcut menu.


Signpost Chords in the Chord Path Window

Signpost chords serve as the end points to strings of chords you create in a chordmap. These strings of chords, called chord paths, are later combined to form chord progressions in a segment. For more information, see How a Chordmap Interacts with Signposts.

The signpost chords you enter in the Chord Path window are drawn from the Signpost list. After entering chords in the Signpost list, you can place copies of the signposts in the Chord Path window and then create chord paths extending from them.

Chordmap Designer provides a special Insert into Chordmap command that you use to place copies of signpost chords in the Chord Path window. Using this command ensures that each signpost chord you place in the Chord Path window matches up with the corresponding signpost chord in the Signpost list. To function properly, a signpost chord in the Chord Path window must have the same root name (such as 2 C, 1 D, or 2 F#) as a corresponding chord in the Signpost list, in addition to similar chord properties. (For more information, see Matching Chords Throughout the Chordmap.)

Using the Insert into Chordmap command also ensures that signpost chords are inserted in the Chord Path window in matching pairs of beginning and ending signposts. To function properly in the Chord Path window, you must place signpost chords in the window as matching pairs of beginning and ending signposts. Using the Insert into Chordmap command automatically places a pair of beginning and ending signposts on the left and right edges of the chordmap.

For an explanation about the importance of entering signposts in matching pairs, see Beginning and Ending Signpost Pairs.

In addition to using the Insert into Chordmap command, you can also use the following three methods to enter chords in the Chord Path window. However, these methods do not automatically create matching pairs of beginning and ending signposts:

  • Drag a chord from the Signpost list to the Chord Path window to enter it as a simple connecting chord.
  • Drag a chord from the chord palette to the Chord Path window to enter it as a simple connecting chord.
  • Right-click in the Chord Path window to insert a new, default chord in the Chord Path window.

You can right-click any chord you enter in the Chord Path window as a simple connecting chord and change the chord to a signpost.

When you enter signpost chords in the Chord Path window, they are marked with symbols that indicate whether they are beginning or ending signposts.

A beginning signpost chord is marked with a green Start symbol at its left edge, and an ending signpost is marked with a red Stop symbol at its left edge.


Beginning and Ending Signpost Pairs

Signposts are placed in the Chord Path window in pairs of beginning and ending signposts. All beginning signpost chords are positioned along the left of the window, and all ending signpost chords along the right. The ending signpost chords serve as end points for chord paths. A chord path extends from left to right until it reaches an ending signpost.

For example, the preceding figure shows two chord paths:

  • A path that has a 2 C M beginning signpost and a 2 D M ending signpost
  • A path that has a 2 D M beginning signpost and a 2 C M ending signpost

Each ending signpost serves as a pointer to the beginning signpost with the same name.

In this figure, all chord paths reach an ending signpost at measure 6. Each chord path lasts for five full measures and then reaches an ending signpost. The ending signpost chord does not play for any length of time. Instead, it serves as a jumping point in measure 6 that leads immediately to the beginning signpost of the same name.

Note It is important that the root notes and chord properties of both chords in a matched pair of beginning and ending signposts are exactly equal and that the pair is represented by a chord with the same name and properties in the Signpost list. For more information, see Matching Chords throughout the Chordmap.

Purpose of Signpost Pairs

Beginning and ending signposts provide a convenient way to define beginning and end points for multiple short chord paths so that they fit more easily into the editing region. The chord paths in the preceding figure could be displayed on the screen as shown in the following figure, if they were lined up end-to-end as one long chord path.

Arranging the chord path this way would require you to scroll through the screen display at length to view and edit the contents of the Chord Path window. Nevertheless, as long as you include all possible chord combinations, a long, single chord path like this can function in the same way as a set of chord paths arranged in short sections. For more information, see Linear Chordmaps.

To better use screen space and represent graphically that all paths can be used in any order, DirectMusic Producer uses the signpost chords as starting and ending points for each short section of the chord path. The same paths can be stacked vertically in the Chord Path window, as shown in the following figure.


Beginning Signpost Chords

Beginning signposts are located at the left of the Chord Path window and represent the starting points of chord paths in the map. They have a green triangle in the upper-left corner, as shown in the following figure.

In most chordmaps, a beginning signpost has multiple chord paths extending from it and serves as the start point of numerous paths. However, a single beginning signpost can serve as a complete chord path that plays for several beats. A beginning signpost does not need to be linked to connecting chords or ending signpost chords.

You can select any chord in the Chord Path window and designate it as a beginning signpost. When doing so, make certain the chord has the same root name, such as 2 C, 1 D, or 2 F#, and similar chord properties as a corresponding chord in the Signpost list. For more information, see Matching Chords Throughout the Chordmap.

To designate a chord in the Chord Path window as a beginning signpost

  1. In the Chord Path window, right-click a chord and click Toggle Beginning Signpost on the shortcut menu. A green triangle is added in the upper-left corner of the chord.
  2. If necessary, drag the chord to the left edge of the Chord Path window.


Ending Signpost Chords

Ending signposts are located at the right of the Chord Path window and represent the ending points of chord paths in the map. They have a red diamond symbol in the upper-left corner, as shown in the following figure.

In most chordmaps, an ending signpost has multiple paths leading to it and serves as the ending point for numerous paths.

Each ending signpost serves also as a pointer that leads to the beginning signpost with the same name. When chord paths are evaluated for use in a segment, a chord path is selected that contains a beginning signpost with the same name as the current ending signpost.

You can select any chord in the Chord Path window and designate it as an ending signpost. When doing so, make certain the chord has the same root name, such as 2 C, 1 D, or 2 F#, and similar chord properties as a corresponding chord in the Signpost list. For more information, see Matching Chords Throughout the Chordmap.

To designate a chord in the Chord Path window as an ending signpost

  1. In the Chord Path window, right-click a chord and on the shortcut menu, click Toggle End Signpost. A red diamond symbol is added in the upper-left corner of the chord.
  2. If necessary, drag the chord to the right edge of the Chord Path window.


Combined Beginning and Ending Signposts

In some cases, you may want to designate a single chord as both a beginning and ending signpost. A chord that is a combined beginning and ending signpost has a green triangle in the upper-left corner, and a red diamond symbol in the upper-right corner, as shown in the following figure.

If you create a linear chordmap containing a single chord path, you must use combined beginning and ending signposts. In this case, signpost chords occur midway through a chord path, with connection chords occurring on both sides of a signpost. For more information, see Linear Chordmaps.

You can select any chord in the Chord Path window and designate it as both a beginning and ending signpost. When doing so, you must make certain the chord has the same root name, such as 2 C, 1 D, or 2 F#, and similar chord properties as a corresponding chord in the Signpost list. For more information, see Matching Chords Throughout the Chordmap.

To designate a chord in the Chord Path window as a combined beginning and ending signpost

  1. In the Chord Path window, right-click a chord and then on the shortcut menu click Toggle Beginning Signpost. A green triangle is added in the upper-left corner of the chord.
  2. Right-click the chord again and then on the shortcut menu click Toggle End Signpost. A red diamond symbol is added in the upper-right corner of the chord.
  3. If necessary, drag the chord to a position midway in the Chord Path window.


Editing Signpost Chords

Editing signpost chords includes opening the Properties window for a selected chord to edit its settings, as well as dragging a chord and deleting it. The same Chord Properties window is used throughout Microsoft® DirectMusic® Producer in all design modules that show chords.

For information about using the Chord Properties window to edit any chord in the chordmap or in any of the various design modules, see Editing Chord Properties.

You can edit the properties of a signpost chord anywhere in the chordmap without directly affecting the properties of any other chord. However, some chords within a chordmap file are related to one another in that chords with the same name are usually expected to have the exact same properties. This is especially true for signpost chords that appear both in the Signpost list and in the Chord Path window. For more information, see Matching Chords throughout the Chordmap.


Connecting Chords

A chordmap usually contains numerous paths leading from beginning signpost chords on the left to ending signpost chords on the right, and often passing through one or more connecting chords. These are chords in the middle of the window, placed between the signposts. They have no Start or Stop symbols.

Microsoft® DirectMusic® Producer uses connecting chords only when they lie in a path selected for playback, and not all chord paths must contain connecting chords. It is not necessary that a beginning signpost chord be followed by connecting chords or be linked to an ending signpost chord. A single beginning signpost by itself can serve as a chord that plays for several beats. DirectMusic Producer chooses which paths to play based on their signposts and their overall length.


Deleting Connections Between Chords

When you create a connection, the line between the chords remains red until you create another connection.

While the connection line is still red, you can remove the connection between chords by pressing the DELETE key. A newly drawn connecting line turns black as soon as you create any other connection.

In this case, click the connection box of the chord on the left to turn the line red and press the DELETE key.


Extending a Chord Path to More Chords

You can extend a chord path to include any chord in the Chord Path window, so long as the path leads to a chord that occurs later in the timeline. A chord path must always progress from left to right in the Chord Path window, as shown in the following figure.

To extend a path to other chords

  1. Click the connection box of a connecting chord and hold the mouse button.
  2. Drag the mouse to the right, to a connecting chord or ending signpost, and release the mouse button.


Creating Multiple Chord Paths from a Chord

You can create paths between any chords in the Chord Path window, so long as you continue working from left to right. Any beginning signpost or connecting chord can have multiple paths extending from its right side to chords on the right, as shown in the following figure.

Note You should consider ending signposts the right end of a chord path. Typically, you do not place chords to the right of an ending signpost. Therefore, no connections should extend from an ending signpost's connection box beyond its right side. You can choose to create a linear chordmap, with extended chord paths that have signpost chords at various points in the paths. For more information, see Linear Chordmaps.

To create a second connecting chord path from a chord

  1. On the unused connection box of a beginning signpost or connecting chord, click and hold the mouse button.
  2. Drag the mouse to the right onto a connecting chord or ending signpost and release the mouse button. Each time you create a new connection from a chord, a new connection box is added below the other connection boxes on the right side, as shown in the following figure.


Redirecting Connections to Other Chords

You can switch which chord a connection line goes to, even if the connection line is not red.

To redirect a connection

  1. Click a connection box that has a connection line extending from it and hold the mouse button.
  2. Drag the mouse to the right onto a connecting chord or ending signpost and release the mouse button. The connection line from the connection box is redirected to the new chord.


Editing Connecting Chords

Editing connecting chords includes opening the Properties window for a selected chord to edit its settings, as well as dragging a chord and deleting it. The same Chord Properties window is used throughout DirectMusic Producer in all design modules that show chords.

For information about using the Chord Properties window to edit any chord in the chordmap or in any of the various design modules, see Editing Chord Properties.

You can edit the properties of a connecting chord anywhere in the Chord Path window without directly affecting the properties of any other chord.


Selecting and Editing Multiple Chords

You can select multiple chords in the Chord Path window by clicking the window anywhere other than on a chord, holding the mouse button, and dragging the cursor to create a selection box. Chords that are included in the selection box turn red.

After chords are selected, you can drag any chord in the selection to drag the whole selection to a different position in the window. You can also press the DELETE key to delete the group all at one time.

You can press the CTRL key and drag a group of chords to copy and paste them all at one time. For more information, see Drag-and-Drop.


Chordmap Properties

The properties of the chordmap contain a number of settings, including its internal name, description, time signature, and length, plus style and key settings for testing playback of the chordmap with other files. Though you can change the properties of a chordmap at any time, it is recommended that you set the properties of a chordmap before inserting chords in the Chord Path window or the Signpost list, and before setting the chord palette.

To display the properties window for a chordmap

  1. In the project tree, right-click the icon next to the chordmap's internal name and then on the shortcut menu click Properties. A window similar to the following appears.

The Chordmap Properties window has four tabs:

  • Chordmap Tab

    Contains most of the major settings for the chordmap properties.

  • Underlying Scale Tab

    Contains the scale used for the seven chord root tones that are primary to the chordmap, and used to create a custom chord palette.

  • Audition Tab

    Contains settings for testing playback of the chordmap in combination with a style component.

  • Info Tab

    Contains fields for general information about the component, such as its name, creation date, author, and description.

Note Properties are also available when you right-click the icon next to the chordmap's file name. You can enter a name for the run-time file created when you click the Runtime Save As command, as well as the author and designer information for the chordmap. For more information, see the Introduction.


Chordmap Tab

The Chordmap tab contains the primary setup for the chordmap, which includes:

  • Name of the chordmap

    The name that appears in the project tree next to the internal icon of the file.

  • Length

    The overall length of the chordmap described as a number of measures.

  • Description of the chordmap

    A text description of the chordmap and its use.

  • Edit Mode settings

    Settings for using a fixed or variable timeline, plus the key, time signature, and length of the chordmap.

The following figure shows the Chordmap tab of the Chordmap Properties window.

To change the internal chordmap name

  • In the Name box on the Chordmap tab, enter a new name. You can enter up to 20 letters for the name. The internal name of the chordmap in the tree is updated automatically.

To change the length

  1. Click Length. The following Change Length window appears.

  2. Type or select the chordmap length.
  3. Click OK.

Note Because chord paths are typically four or five measures in length, the default setting of 20 measures is usually sufficient. When you right-click the Signpost list and click Insert on the shortcut menu to insert beginning and ending signposts, the chords are placed in the first and last measures. Therefore, it is best to set the length of the chordmap before entering any chords in the chordmap.

Chordmap Description

The Chordmap tab also contains the Description box in which you enter a verbal description of the chordmap's character—for example, mostly diatonic triads with some secondary Dom7 chords. This text is stored for your future reference only.

To change the text description

  1. Click the Description box or select any text in the box.
  2. Type the new text.

Chordmap Edit Mode Properties

You can edit the Edit Mode properties for the chordmap's timeline including its time signature, length, and whether to use fixed or variable durations for chords in the map.

There are several settings in the Edit Mode box:

  • Fixed or Variable

    The option for how chords play. You can choose to use a fixed or variable timeline. When the Fixed option is used (default), each chord plays for a specific number of beats, according to its position in the map and relative to the timeline. When the Variable option is selected, chords play over a range of beats. For more information, see Fixed Durations and Variable Durations.

  • Beats Per Measure (BPM)

    The number of beats in a measure.

  • Beat

    The value of a note given a beat in the time signature.

  • Key

    The key you use when composing the chordmap. Because it is recommended that this setting be left at the default setting of 2 C (equal to middle C), the chordmap is designed using middle C as its tonic tone. For more information, see Chordmap Key.

To change the time signature

  1. In the BPM box, select the number of beats per measure.
  2. In the Beats box, select the rhythmic value of the beat.

To switch to a variable timeline

  • In the Edit Mode box on the ChordMap tab, click Variable.


Chordmap Key

You can open the Chordmap Properties window and change the key. However, it is recommended that you leave the chordmap key at the default setting of 2 C. Choosing a key other than 2 C causes chords in the Chord Path window or Signpost list to move accordingly. The roots of all chords in the chordmap and Signpost list are transposed, which also transposes the scale and chord structure settings in the Properties window of each chord.

For example, if you create a chordmap in the key of 2 C, placing a G major chord in the chordmap, and change the chordmap key to Eb, the G major chord is transposed to Bb major, including its scale and chord structure.

Changing the key of a chordmap also affects its use with segments. When you use a segment's Compose Chords command to draw chord paths from a chordmap, the key of the chordmap is noted and chords are inserted in the segment with the same root values they have in the chordmap. Thus, the Bb major chord in the transposed version of the chordmap is copied into the segment as a Bb chord.

Note If you change the key of a segment, for example from C to D, chords in the segment are moved, but the chordmap ignores the segment's key. New use of the Compose Chords command inserts chords from the chordmap using their current root values.

Changing the key of a chordmap also transposes the notes of the underlying scale for the chordmap, which can affect the chord palette. For more information, see Underlying Scales and Changing Keys.


Underlying Scale Tab

The Underlying Scale tab, shown in the following figure, contains settings for the chords that are considered primary to the chordmap. Scale tones in the Properties window are shown in red. Nonscale tones remain black or white.

The underlying scale of a chordmap serves two important purposes.

  • It provides pitches that quickly generate a chord palette using chords that are diatonic to the underlying scale.
  • It identifies the seven pitches that are the primary chord roots in the chord map.

You can choose any seven tones for the underlying scale. It is recommended that the underlying scale be based on a tonic of C. This simplifies building and testing the chords of the chordmap. However, you can build the scale using any pitch as the tonic and using any tonality, so long as the underlying scale has only seven tones.

Note Nothing in the Underlying Scale tab identifies the tonic note of the underlying scale. Nor does anything in the chord palette identify which chord is the tonic. Thus, you can consider the underlying scale in the figure to be C major, A minor, or any of the seven modes based on the same pitches. However, each chordmap has a key setting in its Properties window that affects the underlying scale. It is recommended that you leave the chordmap's key at the default setting of 2 C. For more information, see Underlying Scales and Changing Keys.

The Major, Har Minor, and Mel Minor buttons provide options for automatically entering a major, harmonic minor, or ascending melodic minor scale based on a tonic pitch of C. These preset buttons enter the seven tones of a scale in the lower half of a scale and duplicate them in the upper half. Click Clear Scale to delete all tones from the scale. Click Chrom Shift to move all notes in the scale up or down by a half step. See Chromatic Shift.

After you enter an underlying scale, use the Chord Palette command to generate a new palette containing chords that are diatonic to the underlying scale. For more information, see Using the Chord Palette Command to Create a New Palette.


Chromatic Shift

You can use a preset scale based on a C tonic as a starting point, and click the left or right Chrom Shift button to move the preset scale up or down the keyboard. You can use the Chrom Shift button to use a mode from a preset scale in the tonic C position.

For example, to use the C Lydian mode as the underlying scale, click the Major button, producing C major as shown in the following figure.

Then click Chrom Shift until the F Lydian scale moves up or down to arrive on C in the keyboard, as shown in the following figure.


Entering the Scale

After you plan which scale best fits the chordmap, enter it in the Underlying Scale tab of the Chordmap Properties window.

To enter an underlying scale

  1. In the Underlying Scale tab, click the Major, Harmonic Minor, or Melodic Minor button. The scale is entered in the lower half of the keyboard and duplicated in the upper half. The C harmonic minor is shown in the following example.

or

In the Scale area, click the desired tones in the lower half of the keyboard to add them to the scale. Tones added to the scale turn red as they are selected.

Note You must select seven pitches. If you select more or less than seven pitches, DirectMusic Producer warns you when you close the property window that you must correct the scale.

  1. To move the scale up or down on the keyboard, click the left or right Chrom Shift button.
  2. Click the button marked 1 to 2 to duplicate the lower half of the scale in the upper half. This ensures consistent behavior of the scale.


Underlying Scales and Changing Keys

You can open the Chordmap Properties window and change the key of a chordmap. However, it is recommended that you leave the chordmap's key at the default setting of 2 C. Choosing a key other than 2 C causes chords in the Chord Path window or Signpost list to move accordingly.

Changing the key of a chordmap also transposes the underlying scale for the chordmap. The pitches of the underlying scale are altered so the original scale structure is retained relative to the new key. For example, if a chordmap has a key of C and an underlying scale of C harmonic minor, changing the key to Eb results in the underlying scale transposing to Eb harmonic minor. In addition, such a change can affect the chord palette. For more information, see Chord Palettes and Changing Keys.


Audition Tab

Using the Audition tab, you can temporarily choose a style file and groove level for testing the playback of the chordmap. As you change the chordmap, you can click the Play button to listen to the changes and hear the same style and groove used with the chordmap. As you play the chordmap, click any chord in the editing window to hear patterns from the style play over the chord.

By default, the style listed first in the project tree of the project that the chordmap belongs to is used as an audition style for a chordmap. Groove level 50 is also used as a default setting.

To choose a style and groove for auditioning the chordmap

  1. Right-click the icon of the chordmap's internal name and then on the shortcut menu click Properties.
  3. In the Chordmap Properties window, click the Audition tab.

  4. In the Style list, click a style. Only styles in the project tree are available. If the desired style is not in the tree, you must add it. For more information, see Adding an Existing Style to the Project Tree.
  5. In the Groove box, enter a groove level from 1 to 100. For more information, see Groove Levels.
  6. At the top of the editing window, click the Play button to hear the combined style and chordmap data.

When you audition a chordmap or change the settings in the Audition tab, it does not affect data in the chordmap file. The chordmap, the chord palette, the Signpost list, and all chord properties of chords and scales are left unchanged.


Using the Chord Palette

Initially, the chord palette contains only major triads. You can use the Chord Palette command to create a new chord palette that contains other chords on each root, such as all minor triads or all dominant seventh chords. You can also create a new chord palette containing chords built using pitches from a single, underlying scale of your choice. For more information, see Using the Chord Palette Command to Create a New Palette.

The chord palette contains the chords that define a chordmap and its general mood. Use the palette as a quick source of chords that you have named and that have an underlying scale assigned to each chord.

You can place chords in the chord palette, even after you have entered chords in the chord paths and have completed other work in the chordmap. For more information, see Building a Custom Palette. Changing the palette does not alter chords elsewhere in the chordmap. You set the palette to provide an easy way to enter chords in the chord paths.


Default Chord Palette

The default setup of the chord palette has a major triad built on every root pitch, as shown in the following figure.

The default settings provide a convenient starting point. You can alter the properties of a chord by right-clicking the chord and opening its Chord Properties window. In this way, you can create a palette containing chords that vary greatly from the default major triads.

The root pitches in the palette are permanently set to the pitches of a chromatic scale spanning two octaves. The two octaves of chromatic pitches, 1 C through 2 B, are the only roots available. However, you can design a chord using pitches in a four-octave range and extending as much as two octaves above a root. For more information, see Editing Chords in the Palette.


Editing Chords in the Palette

You can edit chords in the chord palette by opening the Properties window for a chord. The same Chord Properties window is used throughout DirectMusic Producer in all the design modules that show chords.

For information about using the Chord Properties window to edit any chord in the chordmap or in any of the various design modules, see Editing Chord Properties.

You can edit the properties of a chord in the palette as you do any chord in DirectMusic Producer, with the exception that the root of the selected chord (for example, 2 C) is permanently fixed and cannot be changed.

The Properties window of a chord in the palette applies only to the individual chord where it is listed in the palette. You can edit the properties of a chord in the chord palette at any time without directly affecting the properties of any other chord. Chords already placed in the chord paths or the Signpost list are not affected.


Using the Chord Palette Command to Create a New Palette

The easiest way to create a new palette of chords is to use the Chord Palette command on the Chordmap menu. This command gives you preset chord choices for replacing all chords in the chord palette with a single type of chord, such as all minor triads, all dominant seventh chords, and so on, or generating a palette of diatonic chords from the pitches in the underlying scale that you set in the Chordmap Properties window.

After it is generated, the new chord palette appears along the left of the editing window. You can select and edit any chord in the palette.

Clicking the Chord Palette command on the Chordmap menu opens the following menu, which contains preset chord choices.

Preset Chord Choices

You can select several preset chord options from the menu:

  • The Major Triads option produces all major triads on each root.
  • The Minor Triads option produces all minor triads on each root.
  • The Major 7ths option produces all major seventh chords on each root.
  • The Minor 7ths option produces all minor seventh chords on each root.
  • The Dom 7ths option produces all dominant seventh chords on each root.

Diatonic Chord Choices

You can choose from two options to generate a chord palette using tones in the chordmap's underlying scale:

  • The Triads from Underlying Scale option produces diatonic triads on each root in the underlying scale. Chords with roots not in the underlying scale are major triads.
  • The 7ths from Underlying Scale option produces diatonic seventh chords on each root in the underlying scale. Chords with roots not in the underlying scale are major triads.

Choosing Triads from Underlying Scale or 7ths from Underlying Scale generates a chord palette of seven chords, duplicated in the upper octave, consisting only of notes from the underlying scale, and interspersed with major triads built on roots not in the underlying scale. Each pitch in the underlying scale is used as the root for a new chord in the palette and, wherever possible, for the other tones of the new chords. DirectMusic Producer generates new chords for the palette by selecting the odd or even numbered pitches of the underlying scale and assigning them to the chords with those pitches as roots. For example, the Diatonic 7ths option yields a palette with the following chords.

  • The I chord consists of the 1, 3, 5, and 7 tones of the scale.
  • The II chord consist of the 2, 4, 6, and 8 tones of the scale.
  • The III chord consist of the 3, 5, 7, and 9 tones of the scale.

And so forth. All chords with roots not in the underlying scale remain as major triads.

Because the default underlying scale is a major scale, choosing Triads from Underlying Scale without altering the default underlying scale generates a chord palette containing a sequence of Maj, min, min, Maj, Maj, min, and dim diatonic triads. If you change the underlying scale, you can use the Chord Palette command again to update the chord palette using the new pitches in the underlying scale.

To generate a new chord palette based on the underlying scale

  1. Update the settings of the underlying scale in the Chordmap Properties window. For information, see Underlying Scale Tab.
  2. On the Chordmap menu, click Chord Palette.
  3. Click the desired chord palette option.
  4. Click OK.

If you use the Chord Palette command after you edit chords in the palette, all previous editing done to the palette is lost and new chords are generated.

You can make changes to the underlying scale without affecting the chord palette. However, if you click the Chord Palette command, the new underlying scale is used to generate all new chords.


Chord Palettes and Changing Keys

For convenience when creating a chordmap, you can open the Chordmap Properties window and change the key. However, it is recommended that you leave the chordmap key at the default setting of 2 C. Choosing a key other than 2 C causes chords in the Chord Path window or Signpost list to move up or down, and transposes the notes of the underlying scale for the chordmap. For more information, see Chordmap Key.

Because changing the chordmap key affects the underlying scale, such a change can also affect the chord palette. Initially, if you change the key of the chordmap, the chord palette is left unchanged. However, if you use the Chord Palette command and choose an option for generating a chord palette from the underlying scale, the chord palette is updated using the underlying scale in its current state. Each time you change the key of a chordmap, you can generate a new chord palette based on the transposed pitches of the underlying scale.

For more information, see Using the Chord Palette Command to Create a New Palette.


Building a Custom Palette

You can create a palette containing chords that vary greatly from the diatonic chords generated from the underlying scale. You can also build any type of chord on any of the 24 individual roots provided in the Chord Palette window. The following figure contains the default palette and examples of custom palettes you can create.

You can right-click a chord in the chord palette to open its Chord Properties window and change any of its settings, with the exception of the root name (for example, 2 C). For more information, see Editing Chords in the Palette.


Matching Chords Throughout the Chordmap

A chord can exist in the chordmap in four ways:

  • As part of the chord palette
  • As a signpost chord in the Signpost list
  • As a signpost chord in the Chord Path window
  • As a connection chord in the Chord Path window

You can right-click a chord to open its Properties window and make changes to it. These include changing its chord structure, chord scales, and allowed inversions. For more information, see Chord Properties Window.

To maintain consistent chord behavior throughout the chordmap, it is important to keep the chord properties closely matching one another. For example, signpost chords in the Chord Path window are linked to and interact with corresponding chords in the Signpost list. Changing the properties of a signpost chord in the Chord Path window or the Signpost list may cause a corresponding chord to no longer match it, thus breaking the link between the chords.

You can alter the properties of one chord or another in a chordmap. However, to match one another, chords must have at least two characteristics in common:

  • They must have the same root note (such as 2 C, 2 D, or 1 F#).
  • They must have the same four-level chord structure.

It is not required that chords have the same chord scale, inversion settings, or chord quality description, such as major and minor.

The following topics explain the purpose and methods for creating consistent chords throughout the chordmap:

  • Matching Pairs of Signposts in the Chord Path Window
  • Planning for Consistency
  • Warning About Unmatched, Unlisted, or Misnamed Signpost Chords
  • Entering Multiple Instances of a Chord


Matching Pairs of Signposts in the Chord Path Window

To function properly, signpost chords should be entered in the Chord Path window in matched pairs of beginning and ending signposts. This ensures that as a chord path ends with one signpost, it can continue to another chord path starting with the same signpost.

If a beginning signpost chord does not have a corresponding ending signpost, no chord path with connection chords can lead to it. It is used in a segment only at points where one of its signpost occurs and the preceding signpost uses only a signpost chord without including connection chords. This is because no other chord paths can lead to it.

If an ending signpost chord does not have a corresponding beginning signpost, it is used in a segment only as an individual signpost chord where one of its signpost occurs, without any chord paths leading from it. This is because the ending signpost by itself does not lead to any chord paths.

The following figure shows a chordmap, titled UnmatchedChordmap, containing a 2 C M beginning signpost chord (belonging to SPG 1 and 2) that is unmatched, and a 2 D M ending signpost chord (belonging to SPG 1 and 3) that is also unmatched. The chordmap contains a pair of 2 E M beginning and ending signposts. Following the chordmap in the figure, a segment is set to use the unmatched chordmap with signposts in measures 1, 5, 9, 13, 17, and 21.

The figure also shows the behavior of the segment using the unmatched chordmap as a source of chords. Each time you click the Compose Chords button in the Signpost track, a new set of chords is drawn from the chordmap. The following conditions apply with each use of the Compose Chords command.

  • 2 C M can occur in the segment at signposts 1 and 2, but is always preceded by a signpost chord only, without connection chords leading to 2 C M.
  • 2 D M can occur in the segment at signposts 1 and 3 and is never followed by connection chords.
  • 2 E M can occur in the segment at signposts 1 and 4 and is followed by connection chords only when leading to a 2 D M signpost chord or another 2 E M signpost chord.
  • 2 C M can be followed by connection chords only when leading to a 2 D M or 2 E M signpost chord, but not when leading to another 2 C M signpost.


Planning for Consistency

To maintain consistent chords in a chordmap, you can plan ahead by editing the properties of one chord and using copies of that chord in other places.

For example, it is recommended that you keep the properties of signposts in the Chord Path window the same as the properties of the corresponding chord in the Signpost list. Therefore, if you plan to change a signpost's properties, it is recommended that you delete all instances of the chord from the Chord Path window and change the properties of the chord where it is listed in the Signpost list. You can then re-enter the signpost chords in the Chord Path window using the Insert into Chordmap command.

Similarly, if you change the properties of a chord in the palette, you can re-enter the chord in the Signpost list or the Chord Path window to ensure consistency between all three areas of the chordmap.


Entering Multiple Instances of a Chord

Because editing the properties of one chord does not affect others, separate instances of a chord may not all have the same properties, despite sharing the same name. For consistency, you can place multiple instances of a chord in the Chord Path window or the Signpost list.

To place a copy of a chord in the Chord Path window or Signpost list

  1. Hold the CTRL key.
  2. On a chord in the Signpost list or the Chord Path window, click and hold the mouse button.
  3. Drag the chord to the desired position to create a copy.
  4. Release the mouse button.


Warning About Unmatched, Unlisted, or Misnamed Signpost Chords

When you insert signpost chords in the Chord Path window, you must insert matching pairs of beginning and ending signpost chords drawn from the Signpost list. Do this by right-clicking a signpost chord in the Signpost list and clicking Insert Chord on the shortcut menu. This inserts a beginning signpost in the first measure and an ending signpost in the final measure of the chordmap, using a chord in the Signpost list.

If you do not enter signposts in matched pairs, or if you enter chords directly in the Chord Path window and designate them as signposts without placing a chord with the same root name and properties in the Signpost list, you will have difficulties using the chordmap file with other DirectMusic Producer components. For example, a segment relies on the Signpost list to provide information about which chords are considered signposts in the chordmap. When a chord path is selected for use in a segment, the signposts in the signpost group are evaluated, and chord paths extending between signposts are then selected. A signpost chord in the Chord Path window that is not contained in the Signpost list is unused. Similarly, if a chord path leads to an ending signpost that does not have a corresponding beginning signpost, all paths leading to that ending signpost are considered unusable.

Three text styles are used for the name of a chord in the Chord Path window, and two text styles for chords in the Signpost list. Each text style has a different meaning. The style used in the Signpost list indicates the status of a signpost chord and whether it has been properly used in the chordmap.

Two sets of rules govern the behavior of signpost chords, depending on whether they appear in the Signpost list or the Chord Path window. If a chord appears in both places, its name is in bold text. If not, the type of text indicates a problem, as shown in the following table.

Text style | Signpost list chords | Signposts in the Chord Path window
Bold | Matched signpost. Chord structure matches that of an SP in the Chord Path window. | Matched signpost. Chord structure matches that of an SP in the list.
Italic | Unmatched signpost. There are no chords in the Chord Path window that have the same structure. | Unmatched signpost. There are no chords in the SP list that have the same structure.
Normal | Does not occur. | Chord is not a signpost; it is a connecting chord.

The names of matched signpost chords are displayed in bold type. Matching is determined by the root name, but not the chord quality description, plus the chord structure. The chord structure includes all four levels of a chord's structure in its Chord Properties window.

A match is indicated by the text style. DirectMusic Producer checks whether there is a signpost match when you insert, delete, or edit a signpost chord in the Chordmap window or the Signpost list. If you edit the chord structure or the root name of a signpost chord in the Chord Path window, its name becomes italic if it no longer matches the corresponding chord in the Signpost list. If you edit the chord structure or the root name of a signpost chord in the Signpost list, its name becomes italic if there no longer are matching signpost chords in the Chord Path window.

Names of non-signpost chords, that is, connection chords, are displayed in the Chord Path window using normal text style.


Cadences

You can use cadence chords in a segment to enhance and strengthen the arrival of a signpost chord. A cadence usually begins before the expected arrival of the target signpost chord by roughly one measure, depending on the time signature. Cadence chords are triggered in a segment by a caret (^) symbol in the Signpost track.

Cadence chords work in conjunction with the Signpost list in a chordmap. By setting signposts with cadence triggers, the segment can use cadences you have created for the signpost chords in a chordmap.

You can place up to two cadence chords before a signpost chord in the Signpost list. When you click the Compose Chords button in a segment, it selects suitable signpost chords and inserts them in the Chord track of the template. Cadence chords leading to a signpost chord are also inserted at a signpost with a cadence trigger, and are inserted in the measures preceding the signpost.

To add a cadence chord before a signpost

  1. In the C 1 or C 2 column of the Signpost Chord list, click an empty space. A default chord is entered in the column.
  2. Right-click the new chord and then on the shortcut menu click Properties. A Chord Properties window appears.
  3. Enter the properties for the chord.

Advantage of Using Cadences over Connection Chords

One advantage of using cadence chords in a chordmap is that the time signatures between the chordmap and the segment you want to use with the chordmap do not have to match. Thus, cadence chords can always be inserted in the Chord strip of a segment, fitting into whatever number of beats are available in the measures leading up to a signpost chord in the segment.

This is not always true with connection chords. By default, connection chords are drawn from a chordmap and inserted in a segment only if the exact number of beats required for a chord path are available in the segment. For more information, see How a Chordmap Interacts with Signposts.

Timing and Measure Placement of Cadence Chords

A cadence usually begins before the expected arrival of the target signpost chord by roughly one measure, depending on the time signature. If two cadence chords precede a signpost in the Signpost list, each will typically be given a length of half a measure. When using a 3/4 time signature, cadence chords are sometimes given a full measure for each chord, or sometimes two chords are squeezed into a single measure, with the first chord on beats 1 and 2, and the second chord on beat 3.


Auditioning a Chordmap

You can play a chordmap to audition the results of changes you make to it. To do this, you must temporarily choose a style to play with the chordmap. You can then hear the effectiveness of the chords, scales, and cadences you have created in the chordmap. The Audition tab in the chordmap's Properties window provides the settings for doing this.


Linear Chordmaps

Ending signposts are usually considered the right end of a chord path. Typically, you do not place chords to the right of ending signposts. No connections should extend from an ending signpost's connector beyond its right side. However, you can create a chordmap that extends over many measures in a linear fashion, as shown in the following figure, with extended chord paths that have signpost chords at various points in the paths not necessarily at the path ends.

There is no advantage to creating a chord path in this linear manner, except that it can be easier, visually, to understand a continuous path extending over a number of measures. The behavior of a chordmap that is a long horizontal string, as shown in the preceding figure, is essentially the same as a chordmap with several shorter paths stacked vertically, as shown in the following figure. The starting and stopping points of the chord paths remain at the various signpost chords, wherever the chord paths are positioned in the Chord Path window.

When you create a linear chord path, you must designate the signposts in the middle of a path as both beginning and ending signposts.

To do this, right-click the signpost chord and click both options, Toggle Beginning Signpost and Toggle End Signpost, on the shortcut menu.


Fixed Durations and Variable Durations

As you enter a chord in the Chord Path window, you place it in the timeline to begin on a specific beat. A chord plays until the next chord is reached.

By default, the duration of a chord is calculated according to its position in the timeline. Dragging a chord to the left or right in the Chord Path window causes Microsoft® DirectMusic® Producer to recalculate the duration of the chord, which is measured in beats. For example, the number 12 is equal to three measures when counting in 4/4 time.

The default setting in a chordmap's properties window is a fixed timeline in which a chord's duration is dictated by its position in the timeline. With a fixed timeline, the minimum and maximum durations of a chord are equal, so the chord has a clearly determined duration. For greater flexibility, you can elect to use variable durations in the chordmap so that each chord plays within the range of a minimum to maximum number of beats. This adds greater variability in how DirectMusic Producer plays a piece.

With variable durations, you set the minimum and maximum time that a chord can play. To use variable durations, you must choose the option for variable time in the Chordmap Properties window. This setting enables the Chord Path window to accept chord durations based on the minimum and maximum time set for the chord, instead of calculating a chord's duration by its position in the Chord Path window.

Using variable durations removes the limitation in which the chordmap time signature must match the time signature of the segment you want to use with the chordmap. By default, connection chords are drawn from a chordmap and inserted in a segment only if the exact number of beats required for a chord path are available in the segment. For more information, see:

  • How a Chordmap Interacts with Signposts
  • Fixed Chord Durations
  • Variable Chord Durations


Fixed Chord Durations

When using the default setting, DirectMusic Producer plays a chord path using a fixed duration for each chord and plays each chord for the exact number of beats occurring in the timeline before the arrival of the next chord.

Because signpost chords must occur in a segment on measure boundaries, you must position signpost chords in the chord path window so they occur on the first beat of a measure when you are using fixed durations. If you use variable durations, there is greater flexibility for where you position signposts in the chord path window. See Variable Chord Durations.

In the following figure, the 2 C M beginning signpost plays for eight beats (two measures). It is followed by the 2 D M connecting chord, which also plays for eight beats (two measures). It is followed by the 2 F M connecting chord, which plays for eight beats (two measures). When the 2 G M ending signpost is reached, it prompts DirectMusic Producer to jump to the beginning signpost of the same name.

The overall length of this path is 24 beats (8 + 8 + 8). If DirectMusic Producer needs a path that begins and ends with a 2 G M signpost and lasts for 24 beats (six measures in 4/4 time), this path is acceptable.

Note The timings for chords using fixed durations are relative. When you put signpost chords on beat 1 of measures 1 and 5, they are not necessarily used in a segment at measures 1 and 5. The 24-beat chord path in the preceding figure can be used at any point in a segment where there are 24 beats between signposts. For more information, see How a Chordmap Interacts with Signposts.


Variable Chord Durations

By default, the duration of a chord in the Chord Path window is calculated based on its position along the timeline. As you become more familiar with constructing chordmaps, you can elect to use variable durations for each chord. With variable durations, you set the minimum and maximum time that a chord can play. This provides greater flexibility when DirectMusic Producer determines whether a chord path fits a situation. It also creates a greater level of variability in how your music is played.

By default, connection chords are drawn from a chordmap and inserted in segment only if the exact number of beats required for a chord path are available in the segment. If you use a chordmap with a segment that has a different time signature, the length of the chord paths in the chordmap may not match the number of beats available in the segment. If you use a variable timeline, each chord can play using a variable number of beats.

Signpost chords you insert in a segment must occur on measure boundaries. When using fixed durations, you must position signpost chords in the Chord Path window so they occur on the first beat of a measure. However, when you use variable durations, there is greater flexibility for where you position signposts in the Chord Path window. As long as the minimum or maximum number beats in a chord path can fit between signposts in a segment, the path can be used, regardless of whether the signposts are on measure boundaries in the Chord Path window.

To enable the use of variable chord durations, you must select the option for using a variable timeline in the Chordmap Properties window.

In using variable durations, you must also be careful to consider the following potentially conflicting factors when planning how a chordmap will perform:

  • The combined minimum and maximum durations of the beginning signpost chord and all connection chords in a path.
  • The measures in which signposts are placed in the segment.
  • Which chords belong to the signpost groups triggered in the segment.

When using variable durations, you can create different minimum and maximum durations for each connection in the Chord Path window. You can also select the connection between two chords in the window and set a minimum and maximum duration that affects only how long the first chord plays before moving to the second chord.

Specifically:

  • The 2 C M beginning signpost has a duration ranging from 4 to 12 beats.
  • The 2 D M connecting chord has a duration ranging from 4 to 8 beats.
  • The 2 F M connecting chord has a duration ranging from 8 to 16 beats.

Before reaching the ending signpost, the overall minimum length of this path is 16 beats (4 + 4 + 8), and the overall maximum length of this path is 26 beats (12 + 8 + 16).

As an example, assume that you create a segment in a 4/4 time signature with signposts in measures 1, 5, and 13. Assuming that all the SPGs include a 2 C M beginning signpost, the chord path shown in the figure would only be suitable for use beginning at measure 1, but not beginning at measure 5. This is because the minimum overall length of the path (four measures equals 16 beats) can fit into measures 1 though 4 before a new signpost is reached. The maximum overall length of the path (six and a half measures equals 26 beats) is not sufficient to fill the eight measures between the signposts in measures 5 and 13.

Keep the following guidelines about pathway lengths in mind when you construct chord paths using variable durations:

  • If a chord path's minimum duration is short enough to fit between a pair of signposts or its maximum duration is long enough, it can be used in the segment.
  • If the minimum duration is not short enough to fit between a pair of signposts or the maximum is not long enough, the chord path will not be used in the segment.

In other words, the number of beats between two signposts in a segment must be greater than or equal to the minimum number of beats or less than or equal to the maximum number of beats of the chord path in the chordmap.


Setting a Chord's Duration

When you change a chord's duration, you are changing the length of the connection between chords. The length of a connection is set in the Connection Properties window, shown in the following figure.

By default, a chordmap uses a fixed timeline, and the minimum and maximum duration numbers of a connection are equal. With a fixed timeline, the duration of a connection changes only when you drag a chord to a different place in the timeline. After you set the chordmap to use a variable timeline, you can edit the minimum and maximum duration numbers in the Properties page.

To change the minimum and maximum durations of a connection in a variable timeline

  1. In the Chordmap Properties window, click the Variable option.
  2. In the Chord Path window, right-click the connection box of a chord, shown in the following figure.

  3. On the shortcut menu, click Properties.
  4. In the Connection Length boxes, enter a minimum and maximum number of beats for the chord.


Setting a Priority for a Connection

When DirectMusic Producer selects a chord path to insert in a segment, it searches the available chords in the Chord Path window for a suitable series of chords. By default, all connections between chords in the Chord Path window have an equal chance of being used. In other words, if there are multiple potential paths that can be used, there is an equal chance for each suitable path to be chosen at random.

If all chord connections in a chordmap have the same setting, they all have the same chance of being selected for use in a chord path. The choice of chords can also be influenced by other factors, such the activity level setting for the segment. You can give the connection between two chords a higher or lower connection weight, so that a connection has a greater or lesser chance of being selected for use in a chord path. Right-click the connection box at the left end of a connection line joining two chords and click Properties on the shortcut menu to display a window similar to the following.

You can enter a value from zero to 100 in the Connection Weight box. A setting of 100 gives a connection the highest priority; a setting of zero gives it the lowest priority. By default, all connections have a medium priority setting of 50.

If you increase or decrease the weight of a connection, you affect its chance of being used, relative to the other connections in the chordmap. A setting of zero results in a chord connection never being used.


Key Changes and Chordmaps

The key setting in a segment is included in its Properties window. For information about changing the setting, see Segment Properties.

After you compose a chord progression using a chordmap, you can use the segment key to adjust the playback with 2 C as a center point. Do this by moving the segment key up or down from 2 C. In this way, you can experiment with different keys while you decide which key suits the segment as it mixes the style or pattern notes with the chords in a chordmap.

The segment's key setting transposes all the chords imported from a chordmap. However, only the data stored in the segment is affected—the original chordmap file is not transposed or altered. If you change the segment key from 2 C before using the Compose Chords command, chords are imported from the chordmap in their original key. The chords are not imported in a transposed key.

When you change the key of a segment, all chords in the segment are affected. For example, placing a D major chord in the Chord track while the template key is set to C produces music in the key of D. If you change the template key to Eb, a minor third higher, the music plays in F. This is true for chords that are placed in the segment when you click the Compose Chords button, and for any chords you insert manually into the Chord track using the mouse.


Editing Chord Properties

The Style Designer, Chordmap Designer, and Segment Designer modules all use Properties windows for chords. The behavior and use of chords is consistent in all the components that you create with Microsoft® DirectMusic® Producer. The information in this section applies to chord properties in all components.

You can select a chord in a design module and open a Chord Properties window to edit the structure and design of the chord.

The properties of a chord include four levels of chord structure that you can use to combine multiple layers of chord tones. Thus, you can create chords with as much complexity as you need. The properties also include a chord scale for each of the four levels, and settings for acceptable inversions of the chord. For more information, see Chord Properties Window.


Chord Properties Window

You can view and edit the properties of a chord by right-clicking the chord and choosing Properties from the shortcut menu. The following window is displayed.

Note In the Chordmap Designer, the Properties window for a chord is called the Chord Scale/Inversion Properties window.

There are two tabs in the Chord Properties window:

  • Chord/Scale Tab

    Used to design a chord.

  • Chord Inversion Tab

    Used to specify the inversions that are allowed for each chord in the four chord levels.


Chord/Scale Tab

The Chord/Scale tab is used to design a chord. The tab contains four chord keyboards on the left side and four scale keyboards on the right side. You can use the four levels of chord structure to combine multiple layers of chord tones, and create chords with as much complexity as you need. The following illustration shows the Chord/Scale tab in the Chord Properties window.

DirectMusic Producer uses a unique system for naming notes used in any chords in a segment or chordmap, and for the Chord Properties window. In this system, 2 C is a reference pitch that can be considered a mid-range pitch on any instrument that is playing. The pitches between 1 C and 2 C (moving up the scale from 1 C) are 1 D, 1 E, 1 F, 1 G, 1 A, and 1 B. Only four octaves are available for constructing chords: these octaves range from 1 C to 4 B. Only two octaves are available for creating chord roots: these octaves range from 1 C to 2 B.

You can modify the following settings in the Chord/Scale tab:

  • Chord root name

    The root name of a chord is determined automatically from the bottom note in the level 1 chord. You can click any note in the yellow shaded area of level 1 to set a new chord root. The shaded area includes all notes in the two lower octaves of the keyboard in the window. You can click the arrows next to the Chord name box to choose a different root name. This transposes all notes up or down throughout the Chord Properties window.

    You can choose any root note in the lower two octaves of level 1, ranging from 1 C to 2 B. Octave 1 represents the 12 pitches from C to B directly below C 2. Octave 2 represents the 12 pitches from C to B directly above C 2, inclusive. For more information, see Chord Structure Guidelines.

  • Chord type

    Enter a name or abbreviation to identify the chord. In the preceding illustration, M9 (#11) represents a major 7 chord with added 9th and #11 extensions.

  • Using sharps or flats in the root

    You can switch to an enharmonic spelling of a chord root, whether sharp or flat. You can apply this setting to an individual chord. The default method for spelling chords uses sharps for chord root names. When you insert chords into a segment using the Compose Chords button, the enharmonic spelling of a chord root reverts to sharps for chord root names.

  • Chord structures for four levels of chords

    Four on-screen keyboards are used to define the chord structure. Each keyboard represents a different chord level, and each level must contain a chord of either three or four notes. Chord structures on each level typically consist of steps 1, 3, 5, and optionally 7, of a seven-note scale. This means that steps 2, 4, and 6 of the scale are not used in the chord. For more information, see Chord Structure Guidelines.

    While most simple chords use only a single chord structure that is repeated on all four levels, you can use levels 2, 3, and 4 to add different notes as the upper extensions, such as a 9ths, 11ths, or 13ths, of the chord in level 1. You can also use levels 2, 3, and 4 to design a complex polychord constructed from four independent chords. You can set instrument parts in a pattern that uses the different chord levels; as a part encounters a chord, it uses the chord and scale on the level to which it is assigned. For information about assigning chord levels in a pattern, see Chord Levels.

  • Scale configuration for each chord level

    The keyboard shows which scale to use for melodic lines with each chord level. The chord scale for each level must contain seven pitches exactly. In most situations, the tones of the chord are included as steps 1, 3, 5, 7 of the scale. However, you can create a scale that does not contain the tones of the chord, although most patterns would behave unpredictably as they encounter the chord. For more information, see How a Pattern Interacts with a Chord.

    Pitches that you select for a scale are shown in red, while unselected pitches are white or black. A pitch that is a chord tone but not in the scale is blue. This alerts you that you may want to include the tone in the scale, because it is part of the chord.

Chord/Scale Tab Buttons

The Chord/Scale tab also contains two types of buttons: a MIDI button and a playback button. A MIDI button is located next to each on-screen keyboard.

By clicking this button, you can enter the chord pitches simply by playing them on a MIDI keyboard. You must have MIDI input properly set up in the Microsoft® Windows® Multimedia Control Panel. For more information about using MIDI input, see Transport Options Toolbar.

On the right of the scale keyboards is a set of playback buttons. Clicking any button plays the chord and scale next to the button.

There is a single playback button in the horizontal bar at the top of the Chord/Scale tab. Clicking this playback button plays all four chords and their scales in order, beginning with the bottom chord and scale, and working through to the top chord and scale.

Editing the properties of an individual chord does not affect any other chord in the segment.

To edit chord properties

  1. Right-click a chord and choose Properties to display its Properties window.
  2. In the chord keyboard for level 1, click a note in the yellow shaded area to select its chord root.
  3. In the Chord name box, enter a name for the chord. The on-screen keyboards are unchanged.
  4. Adjust the pitch of the chord by clicking keys in the chord keyboard to toggle them on and off. Selected keys turn red, indicating they are chord tones.
  5. Click the Test button, to the right of the sharps and flats option buttons, to play the chord. All four levels of the chord play as arpeggios in sequential order.
  6. Adjust the pitch of the scales by clicking keys in the chord keyboards to toggle them on and off. Selected keys turn red, indicating they are scale tones. Blue keys represent chord tones that have not been added to the scale.
  7. Click the Test button, to the right of each scale, to play the chord level followed by its scale.


Chord Inversion Tab

In the Chord Inversion tab of the Chord Properties window, you can specify the inversions for each chord in the four chord levels. The settings in the Chord Inversion tab specify what inversions are allowed for each level. This setting affects how a part conforms to a chord. Depending on a chord's range and how far notes in a part must transpose to fit the chord, the notes in a part may exceed the inversion boundaries that you set for the part. When this occurs, some notes in the part automatically transpose up or down an octave to remain within the boundaries. For information, see Inversion Boundaries.

The Chord Inversion tab contains the following elements:

  • Four chord keyboards

    Displays each chord level in its original root position.

  • Four inversion keyboards

    Displays possible inversions for the chord in the level.

  • Next button for each inversion keyboard

    Advances the chord to the next inversion.

  • Legal check box for each inversion keyboard

    Enables use of the inversion shown. The root position of the original chord is always enabled.

  • Test button for each inversion keyboard

    Plays the inversion shown.

Depending on whether you enter a three-note or four-note chord in a level, you can choose from three or four inversions for the chord. Each tone in the chord can serve as the bottom note of an inversion. This includes the root inversion of the original chord. You can allow or disallow any inversion except the root of the chord, which is always enabled.

Transposing some notes in a part up or down an octave when a chord is encountered inverts the chord. By default, all possible inversions are allowed. However, if you determine that some inversions are unacceptable, you can disable them. In this case, the inversion boundary of the part is temporarily overridden so that the notes are not transposed, and certain inversions of the chord are prevented.

For example, consider a part that contains a row of notes in a scale: C 5, D 5, E 5, F 5, G 5, A 5, and B 5. This part has an upper inversion boundary of G 6, and a lower inversion boundary of G 4. The notes transpose up or down to conform to various chords. If notes in a chord exceed the inversion boundaries, these notes transpose an octave up or down as required. The following table shows the behavior of the part as it encounters various chords.

Original notes | Chord encountered | Inversion boundary exceeded | Resulting notes | Comments
C 5, D 5, E 5, F 5, G 5, A 5, B 5, | 2 G M7 | None | G 5, A 5, B 5, C 6, D 6, E 6, F#6 | All notes are within boundaries.
C 5, D 5, E 5, F 5, G 5, A 5, B 5 | 2 A M7 | G 6 | A 5, B 5, C#6, D 6, E 6, F#5, G#5 | G#6 exceeds the high boundary. G# and the F# below it are transposed down.
C 5, D 5, E 5, F 5, G 5, A 5, B 5 | 1 G M7 | None | G 4, A 4, B 4, C 5, D 5, E 5, F#5 | All notes are within boundaries.
C 5, D 5, E 5, F 5, G 5, A 5, B 5 | 1 F M7 | G 4 | F 5, G 4, A 4, Bb4, C 5, D 5, E 5 | F 4 exceeds the low boundary and is transposed.
C 5, D 5, E 5, F 5, G 5, A 5, B 5, | 2 B M7 | G 6 | B 5, C#6, D#6, E 6, F#5, G#5, A#5 | A#6 and G#6 exceed the high boundary. A#, G#, and the F# below it are transposed down.

In the preceding table, two chords exceed the inversion boundaries and some notes are transposed. Any note that exceeds the boundary transposes up or down an octave. In addition, the note directly below the transposed note also transposes.

If the notes that transpose create an inversion you do not like, you can disallow the inversion. For example, the 2 B M7 chord in the table causes the part to play with F#, G#, and A# transposed down. This creates the sound of a second inversion B major7 chord. You can disallow this inversion, so that the part continues to play the F# in the same octave as the notes that precede it. The part then plays B 5, C#6, D#6, E 6, F#6, G#5, and A#5. This creates an octave split between the notes F# and G#. You can also disallow the third inversion of the chord, so no break occurs and all the original notes play in the same octave.

You can allow or disallow certain inversions of a chord in each of the four levels of the chord. These settings affect all instrument parts that play the chord level, in any pattern that encounters the chord.

To choose inversions for a chord

  1. Click the Chord Inversion tab in the Chord Properties window.
  2. At the left of the inversion keyboard for level 1, click the Next button to advance to the next inversion of the chord. The bottom note of the chord is transposed an octave higher; all other levels are dimmed.
  3. At the right of the inversion keyboard for level 1, click the Legal check box to remove the check mark. This disables use of the inversion. Click the check box again to enable use of the inversion.
  4. At the right of the inversion keyboard for level 1, click the Test button to play the inversion.
  5. Repeat steps 1 to 3 until you have enabled or disabled all inversions for the chord level, as desired.
  6. Click the Chord/Scale tab to accept changes to the Chord Inversion tab.
  7. Click the Chord Inversion tab again to adjust inversions for other chord levels.


Chord Structure Guidelines

You can choose any root note in the lower two octaves of level 1, between 1 C and 2 B. These pitches are yellow-shaded in the Chord Properties window.

The lowest octave represents the 12 pitches (from C to B) directly below 2 C. The second octave represents the 12 pitches (from C to B) directly above 2 C. As a chord root, 2 C does not denote the pitch C in a specific octave, such as middle C. It is a median, nontransposing chord root that does not transpose the notes of an instrument into a different range when a pattern encounters the chord. For more information, see Purpose of Chord Level Range Restrictions.

When designing chords, observe the following guidelines:

  • There must be a chord that contains either three or four notes in each level. Although you can enter more than four notes in a level, only the lowest four notes are used, and any other notes are ignored. Chord structures on each level typically consist of steps 1, 3, 5, and optionally 7 of a seven-note scale. This means there is one scale tone (scale step 2) between the root and 3rd of the chord, and one scale tone (scale step 4) between the 3rd and 5th of the chord. If the chord includes a 7th, there is one scale tone (scale step 6) between the 5th and 7th of the chord.
  • The chord root on each level must be between 1 C and 2 B.
  • The chord tones in a level cannot be spread farther than the range of two octaves. You can use any interval between the tones of a chord (you are not limited to third intervals), so long as the outer two tones are not more than two octaves apart. If the chord exceeds two octaves, the following warning is displayed.

If this warning is displayed, click OK and remove either the highest or lowest note from the chord level.

Note Each of the four levels in the chord for composition must use notes that are within a major 7th interval, that is, less than one octave. For more information, see Chords for Composition.

For more information about how to design chords using the Chord Properties window, see the following topics:

  • How a Pattern Interacts with a Chord
  • Purpose of Chord Level Range Restrictions
  • Using Sixths in Place of Sevenths


How a Pattern Interacts with a Chord

In a segment containing a style, the style patterns encounter various chords in the Chord track of the segment. With each chord, the pattern notes adjust to fit the chord and its scale. For example, if you design a pattern to play steps 1, 2, 3, 4, 5, 6, and 7 of a chord and scale, the pattern plays different notes when it encounters a 2 C major chord and a 2 G 7 chord. For more information, see Entering and Editing Notes in Pattern Editor.

In most cases it is easiest to create a pattern using a 2 C M7 chord for composition. The notes you insert into a pattern are calculated not as specific pitches, such as C, D, or E, but according to their function in the chord, such as step 1, 2, or 3 of the chord's underlying scale. As the pattern originally designed on a 2 C M7 chord encounters various chords in a segment, the notes in the pattern adjust to fit the scale used in each chord.

The following table shows the resulting notes of a pattern containing steps 1, 2, 3, 4, 5, 6, and 7 when encountering various chords in a segment.

Original pattern notes based on 2 C M7 | Chord | Resulting notes
C, D, E, F, G, A, B | 2 F M7 | F, A, Bb, C, D, E, F
C, D, E, F, G, A, B | 2 Ab M7 | Ab, Bb, C, Db, Eb, F, G
C, D, E, F, G, A, B | 2 G 7 | G, A, B, C, D, E, F
C, D, E, F, G, A, B | 2 Bb 7 | Bb, C, D, Eb, F, G, Ab
C, D, E, F, G, A, B | 2 E m 7 | E, F#, G, A, B, C#, D

Other Factors

Additional factors can influence the result when a pattern encounters a chord. These include:

  • Using 6th chords

    Pattern notes designed to play on the 7th step play on the 6th. For more information, see Using Sixths in Place of Sevenths.

  • Play mode of the pattern

    Some play mode settings cause 7ths to be omitted, or cause other behaviors in the pattern. For more information, see Play Modes.

  • Inversion boundaries of the pattern

    If the chord causes the pattern notes to exceed the boundaries for the range of a part, some notes may transpose up or down an octave. For more information, see Part Properties and Inversion Boundaries.

  • Allowing chord inversions

    If you do not allow inversions to be used for a chord, the range for some pattern notes may change. For more information, see Chord Inversion Tab.

The following table shows how a pattern containing steps 1, 2, 3, 4, 5, 6, and 7 can be affected by other factors and special cases.

Original pattern pitches based on 2 C M7 | Chord encountered | Special factor | Resulting notes | Comments
C, D, E, F, G, A, B | 2 C M6 | Chord has 6th, but no 7th. | C, D, E, F, G, A, A |
C, D, E, F, G, A, B | 2 C M (no 7) | Play mode: chord. | C, D, E, F, G, A (7 omitted). |
C, D, E, F, G, A, B | 2 Bb M7 | High chord. | Bb, C, D, Eb, F, G, A (F, G, and A transpose one octave down). | Because high F, G, and A are outside the inversion boundary, they play an octave lower.
C, D, E, F, G, A, B | 2 Bb M7 | High chord, but 2nd inversion not allowed. | Bb, C, D, Eb, F, G, A (G and A transpose one octave down). | The 2nd inversion is not allowed, so F cannot be used as the lowest note in the pattern.


Purpose of Chord Level Range Restrictions

The restriction in using a chord root between 1 C and 2 B on each chord level, coupled with the restriction of a two-octave span on each level, limits you to a mid-range chord for each level. This does not mean the actual range of pattern notes played by an instrument is limited to the middle range. In DirectMusic Producer, the note 2 C is considered as a nontransposing value, not as a specific pitch C in a particular octave. In most situations, a chord with a root of 2 C acts as a nontransposing chord for the notes of a pattern.

Because patterns are typically created using a 2 C major chord for composition, notes in the various instrument parts of the pattern usually remain in their original ranges when they encounter a 2 C chord. If a pattern encounters a 1 C chord, the pattern notes are transposed an octave lower. If a pattern encounters a 1 F chord, notes are transposed down a fifth.

If the pattern encounters a 3 C chord, the notes are transposed up an octave. Likewise, a 2 D chord transposes pattern notes up one step, while a 3 D chord transposes pattern notes up one octave and a step. Of course, if the original pattern is created using a chord for composition other than 2 C major, the pattern notes transpose differently as they encounter chords.

To avoid having notes transpose at large intervals from their positions, and potentially beyond the typical range of the instrument playing the part, design each chord level in the Chord Properties window using a chord root that is as close as possible to 2 C. For example, to create a Bb dominant 7 chord with multiple extensions, you might design it as shown in the following illustration.

This shows the properties of a chord called 1 Bb 7b9#9#11 13. This is considered a complex chord. (For more information, see Simple and Complex Chord Structures.) The chord has the following properties:

  • Level 1 contains the primary structure of the chord—a simple 1 Bb 7 chord with a scale that is equivalent to Bb mixolydian. The primary chord is built on the Bb closest to the mid-range 2 C.
  • Level 2 contains a 2 D dim7 chord with a scale that contains the four tones of the chord (D, F, Ab, and Cb) with one scale tone between chord tones. The level 2 chord is built on the D closest to the mid-range 2 C.
  • Level 3 contains a 2 F dim7 chord with a scale that contains the four tones of the chord (F, Ab, Cb, and Ebb) with one scale tone between chord tones. The level 3 chord is built on the F closest to the mid-range 2 C.
  • Level 4 contains a 2 Bb dim7 chord with a scale that contains the four tones of the chord (Bb, Db, Fb, and Abb) with one scale tone between chord tones. The level 4 chord is built on the Bb near the top of the available root choices. This chord may be appropriate with some parts, or it may cause some parts to transpose notes down an octave to avoid exceeding their inversion boundaries.

The 1 Bb 7b9#9#11 13 chord contains the following pitches.

Chord step | Equivalent pitch
Root (1 Bb) | Bb
3rd | D
5th | F
b7 | Ab
b9 | Cb
#9 | C# (Db)
#11 | #11 (Fb)
13 | G

The behavior of a pattern as it encounters this 1 Bb 7b9#9#11 13 chord depends on several factors. The main factors are whether a pattern is created using a 2 C major chord for composition, and whether instrument parts in the pattern are set to use levels 2, 3, or 4 of a chord.

For an example of the different ways chord level assignments can affect the notes in a part, see Chord Level Effects.


Chord Level Effects

A pattern that contains four instrument parts (string bass, cello, clarinet, and flute) is used to illustrate the ways chord level assignments can affect the notes in a part. The string bass, cello, clarinet, and flute parts are assigned to one of four chord levels (levels 1, 2, 3, and 4, respectively). The pattern uses a 2 C major chord for composition. The pattern encounters two chords: a simple 1 Bb7, and a 1 Bb7b9#9#11 13.

The notes in all parts consist of a C major scale (C, D, E, F, G, A , and B) written in a middle range appropriate to the instrument playing the part. The following table lists the notes in each part.

Part | Original notes | Comments
Flute | C 6, D 6, E 6, F 6, G 6, A 6, B 6 | C 6 is equal to the note one octave above middle C.
Clarinet | C 5, D 5, E 5, F 5, G 5, A 5, B 5 | C 5 is equal to middle C.
Cello | C 4, D 4, E 4, F 4, G 4, A 4, B 4 | C 4 is equal to the note one octave below middle C.
String Bass | C 3, D 3, E 3, F 3, G 3, A 3, B 3 | C 3 is equal to the note two octaves below middle C.

For information about pitch names and their MIDI number equivalents, see Pitch Names and MIDI Numbers.

The behavior of each part as it encounters various chords depends on two factors: what chord level is assigned to the part, and what chord structures and scales are contained at that level in the chords that are encountered.

Encountering Complex Chords

A pattern may encounter a complex chord with multiple extensions, as shown in the following illustration. For information about the properties of this chord, see Purpose of Chord Level Range Restrictions.

The following table shows the behavior when the example pattern encounters a 1 Bb 7b9#9#11 13 chord.

Instrument part | Original notes | Assigned chord level | Chord at this level | Resulting notes
Flute | C 6, D 6, E 6, F 6, G 6, A 6, B 6 | Level 4 | 2 Bb dim7 | Bb6, Cb6, Db7, D 7, Fb7, Gbb7, Abb7
Clarinet | C 5, D 5, E 5, F 5, G 5, A 5, B 5 | Level 3 | 2 F dim7 | F 5, G 5, Ab5, Bb5, 5Cb, Db5, Ebb5
Cello | C 4, D 4, E 4, F 4, G 4, A 4, B 4 | Level 2 | 2 D dim7 | D 4, Eb4, F 4, G 4, Ab4, Bb4, Cb4,
String Bass | C 3, D 3, E 3, F 3, G 3, A 3, B 3 | Level 1 | 1 Bb7 | Bb2, C 3, D3, Eb3, F 3, G 3, Ab3

Because each level in the preceding example has a different chord, the results are different for each part. This is the case even if each part contains original notes that are very similar. In some cases, the chord for a level causes the notes to move into a very different range from their original positions. For example, the 2 Bb dim7 in level 4 has a root that is a minor 7th higher than the default 2 C M7 chord for composition used in the pattern. This means that all notes of the Flute part are transposed up by roughly an interval of a 7th, while the notes of the other parts, such as the String Bass and Cello, transpose by only a major 2nd or less.

Encountering Simple Chords

A pattern may encounter a simple chord, such as a Bb7, where all four levels of the chord have the same structure.

The following table shows the behavior when the example pattern encounters a simple chord where all levels contain a only a 1 Bb 7 chord and mixolydian scale.

Instrument part | Original notes | Assigned chord level | Chord at this level | Resulting notes
Flute | C 6, D 6, E 6, F 6, G 6, A 6, B 6 | Level 4 | 1 Bb7 | Bb5, C 6, D 6, Eb6, F 6, G 6, Ab6
Clarinet | C 5, D 5, E 5, F 5, G 5, A 5, B 5 | Level 3 | 1 Bb7 | Bb4, C 5, D 5, Eb5, F 5, G 5, Ab5
Cello | C 4, D 4, E 4, F 4, G 4, A 4, B 4 | Level 2 | 1 Bb7 | Bb3, C 4, D 4, Eb4, F 4, G 4, Ab4
String Bass | C 3, D 3, E 3, F 3, G 3, A3, B 3 | Level 1 | 1 Bb7 | Bb2, C 3, D 3, Eb3, F 3, G 3, Ab3

Assigning All Parts to Level 1

Regardless of the complexity of a chord that a pattern encounters, if all parts in the pattern are set to respond only to Level 1 of a chord, the results are predictable. The following table shows this lack of difference.

Instrument part | Original notes | Assigned chord level | Chord encountered | Resulting notes
Flute | C 6, D 6, E 6, F 6, G 6, A 6, B 6 | Level 1 | 1 Bb7 | Bb5, C 6, D 6, Eb6, F 6, G 6, Ab6
Flute | C 6, D 6, E 6, F 6, G 6, A 6, B 6 | Level 1 | 1 Bb7b9#9#11 13 | Bb5, C 6, D 6, Eb6, F 6, G 6, Ab6
Clarinet | C 5, D 5, E 5, F 5, G 5, A 5, B 5 | Level 1 | 1 Bb7 | Bb4, C 5, D 5, Eb5, F 5, G 5, Ab5
Clarinet | C 5, D 5, E 5, F 5, G 5, A 5, B 5 | Level 1 | 1 Bb7b9#9#11 13 | Bb4, C 5, D 5, Eb5, F 5, G 5, Ab5
Cello | C 4, D 4, E 4, F 4, G 4, A 4, B 4 | Level 1 | 1 Bb7 | Bb3, C 4, D 4, Eb4, F 4, G 4, Ab4
Cello | C 4, D 4, E 4, F 4, G 4, A 4, B 4 | Level 1 | 1 Bb7b9#9#11 13 | Bb3, C 4, D 4, Eb4, F 4, G 4, Ab4
String Bass | C 3, D 3, E 3, F 3, G 3, A 3, B 3 | Level 1 | 1 Bb7 | Bb2, C 3, D 3, Eb3, F 3, G 3, Ab3
String Bass | C 3, D 3, E 3, F 3, G 3, A 3, B 3 | Level 1 | 1 Bb7b9#9#11 13 | Bb2, C 3, D 3, Eb3, F 3, G 3, Ab3

As shown in the preceding three tables, the notes of a part are created using a range appropriate to the instrument sound that plays the part. For example, all flute notes in a pattern are written within a range of approximately C 5 to A 7. It is not necessary to place the chords in a particularly high or low octave to anticipate the high or low ranges of the instruments that respond to that level. Using a mid-range chord in each level ensures that the ranges of all instruments remain in their original octaves.


Using Sixths in Place of Sevenths

You can use a 6th in place of the 7th for an added tone in a chord, as shown in the following illustration.

The example contains a 2 C major 6 chord with a C major scale on all four chord levels. There is no scale tone between the 5th and 6th of the chord, so two consecutive notes of the chord scale are used as chord tones.

If you create 6th chords in a segment, it affects the playback of patterns as follows: If a pattern contains notes designed to play as the 7th of a chord, the notes play using the 6th of the chord and not the 7th step of the scale. At the same time, all pattern notes designed to play as the 6th step of the scale do so. While the 6th chord is playing, no notes play using the 7th step of the scale. This may result in unexpected repetition of notes playing on the 6th step.

For example, if you create a pattern with a 2 C M7 chord for composition, and design it to play steps 1, 2, 3, 4, 5, 6, and 7 of the scale, the pattern behaves in different ways when it encounters a 6th or 7th chord. The following table shows the notes that the pattern plays when encountering a 2 F major 7 chord and a 2 F major 6 chord; both chords use a standard F major scale.

Chord | Resulting notes
2 F M7 | F, G, A, Bb, C, D, E
2 F M6 | F, G, A, Bb, C, D, and D

The notes that result when playing a pattern on a chord may also be affected by the Play Mode setting for the pattern. See Play Mode for more information


Simple and Complex Chord Structures

Within the Chord Properties window, you can create chords that are as simple or complex as you like. You have two options for building chords:

  • Using the level 1 as the primary structure for a chord, you can build a chord with added tones and upper extensions, such as 6ths, 7ths, 9ths, 11ths, and 13ths in levels 2, 3, and 4. Considering that the upper levels contain notes that are simply added tones of the primary chord in level 1, you will likely use the same chord scale throughout all levels.
  • Using all four levels equally, you can create polychords where one or more chords are stacked on top of the level 1 chord to create increasingly complex chord structures. In this case, you will likely use a different chord scale for each level.

If you prefer to use simple chord structures, enter a chord in level 1 and duplicate it in levels 2, 3, and 4. Each time the chord is played by a band, every instrument, regardless of its range, interprets the chord using the same chord root, chord quality, and chord scale.

To copy a chord or scale from one level to other levels

  1. In the Chord Properties window, right-click the keyboard of a chord or scale structure in a level to copy it to other levels.

  2. Select the chord, scale, or both to copy.
  3. Select a level to copy the chord or scale to, or choose all levels.


Building Complex Chords

Each chord level must contain either three or four notes. You can use the level 1 as the primary structure for a chord and place added tones and upper extensions, such as 6ths, 7ths, 9ths, 11ths, and 13ths in levels 2, 3, and 4. Typically, the root and low notes of a chord are played by bass instruments in a band. If you place these notes on level 1, you can assign level 1 to the bass parts in a style pattern. The bass parts use the level 1 chord tones and scale tones when the style encounters this chord. This leaves the upper extensions to higher instruments. Defining the upper notes as part of a separate level gives you greater control over which instruments play these notes.

You can also use the four levels in a chord equally to create polychords—one or more separate chords stacked over the level 1 chord to create increasingly complex chord structures. In this way, you can place each chord in a separate level so different instruments in the band can play them.

You can control which instruments in a band play each level by assigning different chord levels to an instrument part in the Pattern Editor. In the Properties window of a part, you can designate the level in a chord that the part uses. For example, in a pattern, you can assign a bass part to chord level 1, a piano part to level 2, and a flute part to level 3. When these three parts encounter a chord, they each use the chord at their assigned levels, regardless of whether the chord is simple or complex. The following illustration represents a band of three instruments (flute, piano, and bass) playing over three different chords that have increasing complexity.

  • The first chord is a simple C major 7 chord.
  • The second chord is a C major 7 chord with added extensions, created by placing an Em7 and a Gma7 over a Cma7.
  • The third chord is a complex polychord combining a C major 7, D major 7, and E major 7.

The bass part plays its patterns using level 1 of each chord. In the example, level 1 contains C major 7 in all three chords. The piano plays its patterns using level 2 of each chord. In this case, it plays C major 7, E minor 7, and D major 7. The flute plays its patterns using level 3 of each chord. In this case, it plays C major 7, G major 7, and E major 7.

In the example, the second chord, essentially C major 9, #11, and 13, places the lower portion of the chord (root, 3rd, 5th, and 7th) in the bass, places the middle notes of the chord and the 9th in the piano, and places the 7th and the upper extensions of the chord (9th, 11th, and 13th) in the flute. This keeps the roles of the high and low instruments separate as they play the complex chord structure. This is even more evident in the third chord where the complex combination of three distinct major 7 chords (C, D, and E) are separated between the three individual instruments. This type of chord level assignment is an orchestration technique that adds clarity and transparency to an otherwise dense and complex cluster of pitches.

To create complex chord structures, you can have up to four layers of chord structures that are used differently by different members of the band. Generally, the bass instruments play the first level of the chord, the lower middle instruments play the second level, and so on. However, you can assign any level to any instrument in a band to play when it encounters this chord.

You are not required to use all four levels, and for most composers who use this polychord feature, two levels are sufficient. For example, you might have a C major chord on the first level that is played by most parts in the band, and a D major on the second level that is played by higher instruments to create interest.

The assignment of a part to a level is made in the Part Properties window of the Pattern Editor.


Setting Chord Scales

When you click the Play button in a Chord Properties window, the scale might contain pitches you do not want. These pitches can be edited.

To edit a chord's scale

  • Click keys in the scale keyboard to toggle them on and off. As keys are added to the scale, they turn red. Keys that are blue represent chord tones that have not been added to the scale.

Note It is important that each chord scale contain seven notes. Because styles are created with seven notes per octave, having too few notes may result in the notes within patterns being omitted. Having too many notes may result in scale notes not being used.


Audiopath Designer

An audiopath is a performance configuration that provides settings for playback port usage, and the use of filters and audio effects such as reverb and chorus, arranged so that each PChannel has a specific set of devices and effects for playback. The Audiopath list in the Transport Options toolbar contains several standard audiopaths to be used as the default performance configuration for all PChannels. See Audiopath List.

You can use Audiopath Designer to create a custom audiopath. An audiopath file can be applied to segments and other components so they always play with the proper playback settings. A custom audiopath is saved as an audiopath (.aup) file. You can save an audiopath as a separate file in the project tree to use with multiple components, or you can embed an audiopath in an individual segment and apply it only to that segment.

Audiopath files can contain settings for any number of PChannels, and any combination of playback ports and audio effects you want to use. You can create unique playback settings for each PChannel, or group multiple PChannels together so they share the same settings.

The following figure shows an audiopath file displayed using Audiopath Designer.

The audiopath file shown contains settings for five groups of PChannels. Each group is called a mix group. The mix group names and PChannel assignments appear at the left of the editing window, and each mix group has its own settings, beginning at the mix group name and extending as a path across the window to its buffer and any effects used for the group. Selecting the mix group name highlights the entire path.

You can create as many mix groups as you want, and each mix group can contain any number of PChannels. You can open an audiopath properties window to edit the name of the mix group, add or remove PChannels from the group, and assign a playback port for synthesizing the signals coming from the PChannels. For information about editing the properties of a mix group, see Mix Group Properties.

Each mix group with one or more PChannels has at least one bus through which its playback signal passes. A bus is an internal pathway within the computer along which information travels.

Each mix group has at least one buffer to which its playback signal is sent. A buffer is a portion of computer memory that is temporarily reserved for a specific use. In this case, a buffer is set aside for processing signals coming out of the mix group.

For more information about buses and buffers, and using them together in an audiopath, see Audiopath Buses and Buffers.

Within a buffer, the signal of each mix group can be sent through a set of audio effects. Audio effects are software files that process the audio signals from a PChannel to enhance the sound of the signal. They modify the sound by adding such things as reverb, chorus, and flanger effects. See Effects List.

The right portion of the Audiopath Designer window contains an Effect Palette, containing all of the audio effect types you can use. Several standard effect types are supplied with Microsoft® DirectMusic® Producer, including effects called Microsoft® DirectX® Media Objects (DMO) that can also work with other parts of the DirectX Audio system components. You can add to the Effect Palette by loading into your computer other commercially available effects, DMOs, and effects you design yourself. See Effect Palette.

If you create a mix group with no PChannels, then it contains no bus, which enables it for use as a destination for a Send effect. See Send Effects.

Use Audiopath Designer to edit an audiopath in the following ways:

  • Specify the PChannels to be controlled

    An audiopath can affect only the PChannels you want to use for playback.

  • Organize PChannels into mix groups

    An audiopath can have as many mix groups as you want. Each mix group can contain any combination of PChannels, and have any name you want.

  • Create a path for each mix group

    Each mix group has its own path in the audiopath file. Each individual mix group path extends across the audiopath window.

  • Assign an output port to use with each mix group

    A mix group can use any output port. Multiple mix groups can share the same port.

  • Set the properties required in the output port

    You can open an Edit Synth Settings window and specify the number of voices in the output port needed by the mix group. The default number of voices is the maximum number that the selected output port supports. You can also choose a sample rate used for the synthesizer, and enable its internal reverb and chorus effects. See Mix Group Properties.

  • Choose buses, buffers, and effects to be used (optional)

    You can assign the mix group to use one or more buffers, and optionally passing though audio effects in the effects list.

The following topics provide more detailed information about audiopaths:

  • Using Audiopaths
  • Editing an Audiopath.


Using Audiopaths

You can design any number of custom audiopath files, and store them in the project tree. When you add an audiopath to the tree, it becomes available in the Audiopath list in the Transport Options toolbar, along with the standard audiopaths already provided in the list. The following figure shows the Audiopath list with the standard audiopaths and a custom audiopath called My Audiopath.

You can choose an audiopath in the list to quickly recall the playback settings you want. The audiopath you choose becomes the default for all PChannels. When you switch from one audiopath to another, changes are applied to all PChannels. Any PChannels not included in the new audiopath are silent during playback.

For example, if you begin using Standard Stereo & Reverb, which is set to affect PChannels 1 though 128, and then switch to My Audiopath, new audiopath settings are applied only to the PChannels used in My Audiopath, and all PChannels not used in My Audiopath are silent during playback. For a description of the standard audiopaths, see Standard Audiopaths.

Creating a custom audiopath eliminates the need for you to inform a developer what special output port requirements there are for a project. You can provide the audiopath with the project and be assured that all playback configurations will be correctly set up. See Creating an Audiopath.

You can embed an audiopath in a segment so that audiopath settings are applied only to the segment, and settings in the default audiopath are unaffected. See Embedding an Audiopath in a Segment.


Standard Audiopaths

Several standard audiopaths are provided that you can choose for quickly setting all PChannels 1 through 128. The standard audiopaths are pre-set for the buses and buffers they use. You can choose one of four standard audiopaths:

  • Standard Stereo and Reverb
  • Standard Mono
  • Standard Stereo
  • Standard 3D (Dry)

The standard audiopaths use standard Microsoft® DirectSound® buffers set to use the required number of buses and audio channels to route data to the buffers. Some standard buffers also contain effects. For information about the settings of the DirectSound buffers, see Standard Buffers.

You can use standard audiopaths in two ways:

  • Select a standard audiopath in the Audiopath list.

    The audiopath you choose in the list is used as the default for playback of all files that do not have an embedded audiopath.

  • Create a new audiopath based on a standard audiopath.

    When you create a new audiopath file, you can base it on any existing audiopath in the project, including all the standard audiopaths. See Creating an Audiopath.

Note The Standard Stereo and Reverb audiopath uses two separate buffers, Standard Stereo and Standard Reverb, with a single mix group. Each buffer has a separate bus and separate properties. This audiopath is provided as a convenient way of inserting both buffers in the path of a single mix group. For information about settings in the two buffers, see Standard Buffers.


Audiopath Buses and Buffers

A bus is an internal pathway within the computer along which information travels. A buffer is a portion of computer memory that is temporarily reserved for a specific use. In an audiopath, a buffer is used to store audio effects such as reverb, chorus, or echo.

A mix group usually has a path containing one or two buses and a single buffer. The default bus and buffer are the Stereo (L+R) bus and a User Defined buffer. This bus lets the mix group use two audio channels, so that left and right pan settings in the PChannel output are followed.

The following figure shows Mix Group1 using a default Stereo (L+R) bus and User Defined buffer. The effects in the buffer are applied to both audio channels.

The User Defined buffer lets you insert any effects you want, and adjust parameters for pan, volume, 3D positioning, buffer sharing, and more. See Default Bus and Buffer.

Because most types of output from the PChannels in a mix group use a left and right pan position, the default Stereo (L+R) bus is sufficient. Other types of buses are available for use with a mix group:

  • Mono

    Forces all output to use a single audio channel. Left and right pan settings in the properties of PChannels are ignored.

  • Left

    Plays only output that is set to play on the left audio channel. Output is sent equally to both left and right speakers.

  • Right

    Plays only output that is set to play on the right audio channel. Output is sent equally to both left and right speakers.

  • Reverb Send

    Enables controlling the level of reverb on the bus using continuous controller 91 for Ext Effects (Reverb) Depth. See Reverb Send and Chorus Send Buses.

  • Chorus Send

    Enables controlling the level of chorus on the bus using continuous controller 93 for Chorus. See Reverb Send and Chorus Send Buses.

  • Default

    Added only when you use any of the standard buffers. Each standard buffer uses a pre-set bus choice.

Note When you combine both the Left and Right buses, they are automatically displayed as a Stereo (L+R) bus. See Default Bus and Buffer.

For information about adding or removing buses in a mix group, see Adding and Removing Buses.

For information about setting the left or right pan position for a PChannel, see Performance Channel Properties Window.

In addition to the User Defined buffer, the following standard buffers are available for use with a mix group:

  • Standard 3D (Dry)
  • Standard Reverb
  • Standard Mono
  • Standard Stereo

For information about settings in the standard buffers, see Standard Buffers.

Each buffer can contain a set of audio effects. For example, the following figure shows the User Defined buffer for this mix group containing a Chorus effect and an Echo effect.

If you want to use additional effects with a mix group, you can insert as many effects as you want into the existing User Defined buffer. See Inserting Effects.

When designing a simple audiopath file, generally use one bus and one buffer for each mix group, so that all PChannels in the mix group use the same set of audio effects. There are situations where it is best to insert additional buffers in the mix group path, so that other sets of effects can be used. For example, if you use a combination of a User Defined buffer and one of the standard buffers, then output from the mix group is processed using two separate sets of effects at the same time. The following figure shows Mix Group1 using two buses and two buffers. Each buffer contains a different set of effects.

If you add a new buffer to a mix group, it must have at least one bus to carry data to it. You can insert additional buses for an existing buffer, but in most cases it is not recommended that a buffer use more than one or two. If you want additional buses, it is more likely that you want a new bus leading to a separate buffer. For more information about adding or removing buses, see Adding and Removing Buses.

To use multiple buffers in a mix group, you can use the Insert Buffers command to insert the buffer, together with a new bus. For each new buffer you insert, an new bus is automatically added. See Inserting Buffers.

The default buffer in a mix group is User Defined, which lets you insert any effects you want from the Effect Palette. There are also several standard buffers that have pre-set choices for effects and buses. See Standard Buffers.

A buffer can be shared by more than one mix group, but each different mixture of audio effects requires that a unique buffer be set up to contain them. See Sharing Buffers.


Default Bus and Buffer

When you create a new audiopath file, a single mix group is inserted in the file with a default bus and buffer. The default bus is Stereo (L+R), which is actually two separate buses that carry audio signals on a left and a right channel. The default buffer is User Defined, which you can use to contain any combination of audio effects.

The default Stereo (L+R) bus is sufficient for most audio output from the PChannels in a mix group. The Stereo (L+R) bus is actually two separate buses, though it is displayed in the audiopath editor as a single bus, and you use a single buffer with both buses.

The following figure shows a new audiopath containing a single mix group for PChannels 1 through 16, using the default bus and buffer.

You can insert any effects from the Effect Palette into the buffer, and the effects are applied equally to both left and right audio channels of the mix group. See Inserting Effects. You can create a Stereo (L+R) bus using the Add/Remove Buses command to insert both a Left and a Right bus. If you place the Left bus above the Right bus in the Use list, the two buses automatically combine to be displayed in the audiopath as a single bus, a Stereo (L+R) bus. If you place the Right bus above the Left bus in the list, they are displayed as a Reverse Stereo (R+L) bus in the audiopath. For information about adding and removing buses in a mix group, see Adding and Removing Buses.


Standard Buffers

There are several DirectSound buffers, called standard buffers, that are pre-set to contain specific effects, and to use specific buses. You cannot edit them.

You can select or use them in these ways:

  • When you choose a standard audiopath in the Audiopath list.
  • When you create a new audiopath based on a standard audiopath.

If you use the Insert Buffer command to insert a new buffer in a mix group, none of the standard buffers is used. Instead, a User Defined buffer is inserted along with a Stereo (L+R) bus. You can then select the buffer and change it to a standard buffer if you wish.

Each standard buffer is pre-set in several ways:

  • A bus that is appropriate for the buffer is selected. Either one or two buses are required. These are displayed as default buses, but a different bus is used for each of the standard buffers.
  • The number of audio channels used in the buffer is set to at least the number of buses.
  • Standard DirectSound audio effects used in the buffer are set. In some cases, no audio effects are used.
  • The Stereo buffer and Reverb buffer have neutral settings for volume and pan position that do not override settings used in the PChannels.
  • The 3D (Dry) buffer and Mono buffer have neutral settings for volume and for 3D positioning that do not override settings used in the DLS instruments. This includes a default setting for muting the buffer when a maximum distance value is reached.

The following table contains a description of all the standard audiopaths.

Name of Audiopath | Number of Buses | Number of Audio Channels | Other Settings | Comments
Standard Stereo | 2 (default buses are Stereo L+R) | 2 | Neutral setting for pan and volume. Doppler Effect enabled. | One stereo buffer with no effects. Buffer is shared.
Standard Reverb | 1 (default bus is Reverb Send) | 2 | Neutral setting for pan and volume. | One buffer with reverb effect. Buffer is shared.
Standard 3D (Dry) | 1 (default bus is Mono) | 1 | 3D Control is enabled with neutral settings. Doppler Effect enabled. | One Direct-Sound 3D buffer. Buffer is not shared.
Standard Mono | 1 (default bus is Mono) | 1 | Neutral setting for pan and volume. Doppler Effect enabled. | Mono buffer with no effects. One buffer is used. Buffer is not shared.

When you use the Standard Stereo and Reverb audiopath, it combines the use of two separate buffers, Standard Stereo and Standard Reverb, with their own properties and a separate bus leading to each. The following figure shows an audiopath based on the Standard Stereo and Reverb audiopath.

The only standard buffer that uses an audio effect is Standard Reverb. If you want to design a path using a custom group of audio effects, you must either add a separate User Defined buffer to contain the effects you choose, or select a path using a standard buffer and change the buffer properties so that it is User Defined.

For information about inserting a new buffer, see Inserting Buffers.

For information about editing the properties of an existing buffer, see Buffer Properties.


Creating an Audiopath

You can add a new audiopath to the project tree at any time. For more information, see Creating New Projects and Components. An audiopath in the tree does not affect playback of any files unless you select it in the Audiopath list, or insert it into a segment.

You can also create a new audiopath within a segment, that is based on an existing audiopath in the project tree. See Embedding an Audiopath in a Segment.

When you create a new audiopath file, it contains a single mix group. You can choose to create a new audiopath file based on one of the standard audiopaths provided in the Audiopath list, or based on another existing audiopath in the list. You can also create a new, empty audiopath that contains only a single default path.

If you create an new, empty audiopath file, it contains a single mix group that receives audio signals from PChannels you choose, and uses the default Stereo (L+R) bus that sends output to a User Defined buffer. See Default Bus and Buffer.

If you create an audiopath file based on a standard audiopath, it contains a single mix group, receives audio signal from PChannels 1 through 128, and uses pre-set choices for buses and buffers. See Standard Buffers.

To create a new audiopath

1. On the File menu, choose New.

2. In the File Types list, click Audiopath.

3. Click OK to automatically select a new default name for the audiopath, such as Audiopath1, or click Use Default Name to enable the Name box, enter a name for the audiopath, and click OK. The following window is displayed.

4. Click Create an empty audiopath to create an audiopath with a single mix group using a default path.

Or, click Create an new audiopath based on an existing audiopath, and then select the desired audiopath in the list.

5. Click OK. If you create a new audiopath based on an existing audiopath, an icon for the new audiopath is added to the project, and a audiopath containing default bus settings and standard buffers is displayed.

6. If you create an empty audiopath, the following Add/Remove PChannels window is displayed.

7. In the PChannel window, enter the lowest number of PChannels you want to use in the mix group. Below the number, the name of the PChannel is displayed in a read-only window.

8. If you only want one PChannel in the group, click Add. If you want to add the next 16 PChannels including the one entered as the lowest, click Add Next 16. PChannels that will be used in the mix group are displayed in the PChannels list.

9. If you want to remove any PChannels from the mix group, select one in the PChannels list, and click Remove. Press CTRL and click any additional PChannels in the list that you want to remove. Then click Remove.

10. Click OK. An icon for the new audiopath is added to the project, and a audiopath is displayed containing a single mix group using the default bus and buffer.

New audiopaths contain a single mix group. You can insert additional mix groups at any time. You can also change which PChannels are assigned to a mix group, and insert additional buses and buffers as needed. See Editing an Audiopath.

Note When you assign PChannels to a mix group, a bus and a buffer are automatically added. However, if there are no PChannels in a mix group, then it has no bus, and you cannot add a bus. A path that does not receive an audio signal from a specific set of PChannels can only be used as a destination for a Send Effect.


Editing an Audiopath

Audiopath Designer provides a graphical display to represent the paths along which information is sent from the PChannels through buses and into buffers containing any audio effects you are using. You can create a mix group with any combination of PChannels, and design a path for it.

To create a mix group and set its PChannels

1. In the Audiopath Designer, right-click under the Mix Group heading, and then on the shortcut menu click Insert Mix Group, as shown in the following figure.

2. Right-click the newly inserted mix group, and then click Add/Remove PChannels. The following window appears.

3. In the Add PChannel box, enter a number for the PChannel to add to the mix group and then click Add. Click Add Next 16 to insert sixteen consecutive PChannels beginning with the PChannel appearing in the PChannel box.

4. In the PChannels list, select any PChannels to remove and then click Remove Selected to remove them from the list.

5. Click OK. The mix group using the default Stereo (L+R) bus is added to the Audiopath Designer window.

6. Right-click the mix group and then click Add/Remove PChannels to change the PChannels in the mix group.

After you create a mix group, you can open a Properties window for the mix group to change the name of the mix group and to specify the synthesizer. See Mix Group Properties.

You can also insert additional buses and buffers into a mix group. See Audiopath Buses and Buffers.


Mix Group Properties

You can open a Properties window, shown in the following figure, for a mix group to change the name of the mix group and to specify the synthesizer/output port to be used.

Output ports can include any compatible software synthesizers or hardware playback devices in your computer. See Output Port Compatibility.

Note Not all synthesizers support all audiopath features. For example, some do not support all effects. Selecting specific hardware is useful in testing the use of your files with the hardware, but the Default Synth synthesizer is generally recommended for any content that is to be redistributed on other machines.

For most synthesizers, you can click the Edit Synth Properties button to bring up the Edit Synth Settings window. Use this window to choose a voice allocation number for the synthesizer, and to specify the sample rate for the audiopath.


Edit Synth Settings Window

For most synthesizers that you select in the Mix Group Properties window, you can click the Edit Synth Properties button to bring up the Edit Synth Settings window, as shown in the following figure. Use this window to choose a voice allocation number for the synthesizer, and to specify the sample rate for the audiopath.

You can use the Edit Synth Settings window only with synthesizers that do not support output to DirectSound buffers. You cannot edit the settings for the Microsoft Synthesizer, the Default Synth, or for any other synthesizer that supports output to DirectSound buffers. The only place to edit the settings for those synthesizers is in the MIDI/Performance Options window. Conversely, settings in the MIDI/Performance Options window only affect those synthesizers that support output to DirectSound buffers.

The Edit Synth Settings window contains the following settings:

  • Voices allocated

    Sets the number of individual voices the synthesizer can play at one time. The default number shown in the window is the maximum number of voices supported by the selected port. See Voice Allocation.

  • Enable Reverb

    Enables the built-in reverb effect of the synthesizer. The option checkbox is available for synthesizers that provide reverb.

  • Enable Chorus

    Enables the built-in chorus effect of the synthesizer. The option checkbox is available for synthesizers that provide chorus.

  • Sample rate

    Provides a choice of available sample rates to be used in the synthesizer.


Adding and Removing Buses

The Add/Remove Bus command lets you control the number of buses that go to a single buffer. Each buffer can use only one or two buses. You choose the buses depending on the way you want the audio signal from the PChannels to be used. You can insert a bus by right-clicking the window below the Bus list, and then clicking Add/Remove Buses. The following window appears.

The Available Buses list contains the following choices:

  • Mono
  • Stereo (L+R)
  • Reverb Send
  • Chorus Send
  • Left
  • Right

For a description of each bus type, see Audiopath Buses and Buffers.

You can click any item in the Available Buses list and click Add to insert it into the Buses in Use list. Choosing Stereo (L+R) in the Available Buses list inserts two separate Left and Right buses into the Buses in Use list. Though these are two separate buses, they are displayed in the Audiopath Designer window as a single bus. Similarly, if you manually insert the Left and Right buses in the Buses in Use list, they are displayed as a single bus.

As a general rule, you should use only one item from the Available Buses list for each buffer. If you add a new buffer to a mix group, it must have at least one bus to carry data to it. You can insert additional buses in a mix group, but in most cases this is not recommended, and it is more likely that you want a separate bus leading to a separate buffer. To create multiple buffers for a mix group, you can use the Insert Buffers command to insert the buffer together with a new bus. For each new buffer you insert, an new bus is automatically added. See Inserting Buffers.


Inserting Buffers

Each mix group you create in an audiopath has at least one buffer in its path. If you want to insert an additional buffer into an audiopath file, you can do so by creating a new mix group, or by right-clicking a buffer in an existing mix group and choosing the Insert Buffer command.

When you use the Insert Buffer command, a User Defined buffer and a default Stereo (L+R) bus are inserted. When you create a new mix group in an audiopath, it is inserted using a User Defined buffer and a default Stereo (L+R) as well. See Default Bus and Buffer.

After inserting a new buffer or a new mix group, you can change it from a User Defined buffer to any other type you want. Right-click any buffer in the Audiopath window and select Properties to change settings for what type of buffer is used, to adjust settings for volume, pan, and 3D positioning, and more. See Buffer Properties.

You can use any number of buffers in an audiopath, including using multiple buffers with each mix group, as shown in the following figure.

Planning for memory usage

When using multiple buffers in an audiopath, you must consider memory usage in the computer. Planning ahead can eliminate unnecessary duplication of buffers and reduce the overall audio memory requirement.

For example, if a buffer is used more than once, you can use the Sharing option to conserve memory. See Sharing Buffers.

When an audiopath is used in performance, buffers are created in the order they appear, beginning at the top of the audiopath file. This is important when allocating hardware resources.

When you use a Send destination buffer, it is never lower in the audiopath file than the Send source buffer. The order of the list of buffers shown in the Audiopath Designer window is identical to the order of the list of buffers that are created when the audiopath is used for playback. Thus, a Send destination is always created before the buffer that sends data to it. See Send Effects.

Using DirectSound accelerating hardware for mix groups also affects computer resources. DirectSound accelerates the mixing and positioning of the underlying buffer of the audiopath. If you use a DirectSound hardware accelerating card for an audiopath, then DirectSound does not use its own software mixer. In essence, DirectSound is accelerating the "mixing console" part of DirectX 8.0. This reduces CPU usage, and allows for multi-speaker playback using 3D parameters. It also allows you to set the latency setting lower for the synthesizer, because the audiopath bypasses the DirectX software mixer, which has inherent latency.


Buffer Properties

Each mix group has at least one buffer in its path. A buffer can be one of the standard buffers, such a Standard Stereo, or it can be a User Defined buffer that allows you to insert any audio effects you want.

All buffers have properties for volume, pan, buffer sharing, and more. You can right-click any buffer in an audiopath and choose Properties to open a Buffer Properties window similar to the following.

The Buffer Properties window contains the following settings:

  • Use Standard Buffer

    Turning this option off causes the buffer to be User Defined. Selecting this option enables a drop-down list of standard buffers, and causes the title bar at the top of the window to indicate that it is a standard buffer, and to include the name of the standard buffer type selected. There are four standard buffer types: Reverb, 3D (Dry), Mono, and Stereo. For information, see Standard Buffers.

  • Share buffer with other audiopaths

    Lets a buffer to be shared when another instance of the same buffer is used in the audiopath file. See Sharing Buffers.

  • Channels

    A read-only value for standard buffers. For User Defined buffers, enter the same number of audio channels for the buffer as there are buses.

  • Enable Doppler Effect

    A read-only value for standard buffers. For User Defined buffers, you can enable the use of Doppler Effect so that when the audiopath is used by a software developer, the buffer can respond to Doppler Effect commands that are executed using the DirectSound API. Doppler is the acoustic phenomenon that causes a sound associated with a moving object to shift downward in pitch as it moves away from the listener.

  • Edit GUID

    Not available for standard buffers. For User Defined buffers, you can use the GUID to set up buffer sharing, so both instances of a buffer have the same GUID. See Sharing Buffers.

  • Enable 3D Control

    A read-only value for standard buffers. For User Defined buffers, you can select this option and then click 3D Position to edit settings for 3D Position, 3D Velocity, Cone Angles, and more. You can select Mute and maximum distance, and choose an Algorithm. For complete information about 3D positioning, see the SDK help file for DirectSound.

  • Pan

    A read-only value for standard buffers. For User Defined buffers, you can set the pan position for output from the buffer, regardless of the original pan settings in the output from PChannels, or what type of bus is used with the buffer. Values range from Mid, equal to zero, to L10000 or R10000.

  • Volume

    A read-only value for standard buffers. For User Defined buffers, you can reduce the volume for output from the buffer. Values range from 0, equal to no change, to -10000, equal to silence. Playback must be restarted for effects to take place.

You can click the drop-down list to choose a different standard buffer type.

Depending on whether you use a standard buffer or design a path with effects of your own choice, there are certain settings that are set automatically, but are invisible to you when using DirectMusic Producer. These settings control how your files play when any of the DirectSound system components are used. See Automatic DirectSound Settings in Audiopaths.


Sharing Buffers

To save memory when your files are played, you can set multiple paths to share a buffer. Any paths that use the exact same set of effects can use the same buffer. For a buffer to be shared, you must click Share buffer with other audiopaths in the properties of all audiopaths that are to share the buffer. You must also make certain that the same GUID number for the buffer is used by the audiopaths, by copying and pasting a GUID number from the properties of one buffer to another. This ensures that only one instance of the desired buffer is used.

To Create a shared buffer

  1. Right-click a path in an audiopath, and choose Insert Buffer.
  2. In the Buffer Properties window, click Share buffer with other audiopaths.
  3. Click the Edit GUID button to view the GUID number of the buffer.
  4. Select the GUID and copy it to the clipboard. Do not alter the GUID.
  5. Close the Edit GUID and Buffer Properties windows.
  6. Right-click a separate path, choose Insert Buffer, click Share buffer with other audiopaths, then click the Edit GUID button, and paste the clipboard in the GUID box.

Note: When you use the insert buffer command, it is never necessary to create extra instances of a buffer within a mix group. The entire path plays through a buffer and uses its effect when only one instance is present. Thus, you cannot share a buffer on the same mix group. If you create two buffers within a mix group that have the same GUID, the audiopath file cannot function.


Effects List

If an audiopath has User Defined buffers, you can insert any effects you want into the Effects list. Effects are inserted as new instances of a standard effect provided in the Effect Palette. Each instance of an effect in the Effects list has an instance name that identifies it. You can use default instance names, such as Chorus1 or Chorus2, or choose a different name.

You can insert an instance in the Effects list by either dragging an effect from the Effect Palette, or right-clicking the area beneath the Effects List heading. See Inserting Effects.

The following figure shows Mix Group3, Mix Group4, and Mix Group5 with User Defined buffers, and containing effects in the Effects list.

If a mix group is set to use one of the standard buffers, the buffer is pre-set to contain a standard effect, and you cannot add any other effects from the palette. In the preceding figure, Mix Group1 and Mix Group2 use standard buffers. For information about using a standard buffer, see Standard Buffers.


Inserting Effects

If a path with a User Defined buffer has no effects, you can select the buffer and right-click the area next to it and beneath the Effects List heading, to display a shortcut menu, as shown in the following figure. Choose Insert Effect(s) to insert an audio effect into the buffer

If a User Defined buffer already contains an effect, you can right-click the effect to use other commands in the shortcut menu, as shown in the following figure.

Choosing Insert Effects opens an Insert New Effect window similar to the following.

Choose the effect type you want to insert from the Base on existing effect list. A default name is provided for the instance of the effect that you are inserting. You can use the default name, or enter any name you want.

You can right-click any effect already in the Effects list, and insert additional effects in the same buffer. When you select an effect that is already in the Effects list to insert another new effect, the new effect is inserted to the right of the effect you select in the Effects list.

You can move and rearrange an effect in the Effects list by right-clicking it and using the Cut, Copy, and Paste commands. Press CTRL and click multiple effects in the same path and use Cut, Copy, and Paste to move them all at one time.Effects in a mix group are used to process audio output in the order they occur, from left to right. For Mix Group1 in the following figure, the Flanger effect is followed by the Echo effect, followed by the Chorus effect.

You can also select an effect and insert a Send Effect after it, so that the output for the entire buffer is routed back to a different mix group. See Send Effects.

For any effect in the Effects List, you can also open a Effect Properties window

As required, you can right-click an effect in the Effects List to open an Effect Properties window. Use settings in this window to provide instance names, and edit settings of all parameters for the effect. See Effect Properties window.


Effect Properties Window

You can right-click any effect in the Effects list to open an Effect Properties window. Use settings in this window to provide instance names, and edit settings of all parameters for the effect.

Select the option for Always Process in Software to force the effect to play in software using the DMO provided, and to not allow the use of a similar effect in hardware when a hardware synthesizer is used.

Click Edit Setting Properties to open the following window to adjust individual parameters of the effect.


Effect Palette

The right side of the Audiopath Designer window contains an Effect Pallete, as shown in the following illustration.

The Effect Palette contains all available Microsoft® DirectMusic® effects as well as all available Microsoft® DirectX® Media Objects (DMO). All DMOs appear in the computer registry as "audio effects."


FileOutput in an Audiopath

The Effect Palette contains a DirectX Media Object (DMO) called FileOutput. You can insert this effect in an audiopath when you want to use the wave export function to capture a performance as a wave file. See Wave and MIDI Export Toolbar.

To use the wave export function, you must select an audiopath in the Audiopath list that is set to route the output from all mix groups to a buffer containing the FileOutput DMO.

Information is recorded only from the PChannels that are in the mix group that uses the FileOutput effect. The following figure shows an audiopath file that sends all the output from PChannels 1 through 128 to be recorded as a wave.

If a mix group already uses effects other than the FileOutput DMO, then you must use a Send effect to route the output after those effects back to a new path that leads to the FileOutput DMO. This is much like creating a loop back to a new path that leads to the FileOutput DMO. See Send Effects.

File Output Order

When you use the Wave and MIDI Export toolbar to capture a performance, you enter a file name for the wave file that is saved. If there are multiple buffers that use the FileOutput DMO, then multiple wave files are saved using the same file name you enter, followed by a number for the order in which it is created. For example, if you enter the name Record for the wave file that is captured, then the first file created is saved as Record.wav, the second file is saved as Record1.wav, and then Record2.wav, and so forth.

The order in which the output from buffers with the FileOutput DMO is saved is as follows: The order the paths occur in the audiopath file, top to bottom, but paths that have PChannels in their mix group are saved before those without PChannels.


Send Effects

A Send effect is a special type of effect that is used to route the audio output from a buffer in one mix group to another mix group, so that the audio output can pass through effects in the second mix group before going to the playback port. You can place a Send effect at the end of an audiopath to route its audio output back to the beginning of any other audiopath. This allows you to send the combined output from multiple mix groups to another mix group containing effects that are to be shared by all.

For example, the following figure shows Mix Group2, Mix Group3, and Mix Group4, all sending their output to Mix Group1.

In the figure, Mix Group 2, 3, and 4 are sources of the Send effect, that is, they send audio output to another mix group. Mix Group 1 is the destination of the Send effect, that is, it receives audio output sent from other mix groups.

Only a mix group that has no PChannels can be used as a destination. When you create a mix group with no PChannels, it contains no bus and only one buffer. Since it does not have any specific PChannels of its own, the mix group can respond to output sent to it from other mix groups. This enables it for use as a destination for a Send effect.

A Send effect can be inserted at the end of an audiopath that uses other effects, as shown in the following figure.

The figure shows Mix Group3 using the Chorus and Compressor effects, and Mix Group4 using the Distortion and Echo effects. Both mix groups are routed to Mix Group1, so the output from both passes though the I3DL2Reverb effect before going to the output port. This eliminates the need for both to contain their own instance of the I3DL2Reverb effect. Similarly, Mix Group5 and Mix Group6 are routed to Mix Group2, so their output passes though the WavesReverb effect before going to the output port.

Note Effects to the left of the Send effect are included in output that is routed back to the destination mix group. Any effects to the right of the Send effect are not included.

Each instance of the Send effect works only with a single source buffer. If you create a mix group with multiple buffers, you must insert a separate instance of the Send effect for each buffer from which you want to send the output to a different mix group. The following figure shows Mix Group2 with three buses, each with a different buffer. Only the output from the User Defined buffer in Mix Group2 is routed to Mix Group1. All other output from Mix Group2 goes directly from buffers to the output port.

Note Each buffer in a mix group requires a separate bus in the mix group. However, you can direct multiple buses to a single buffer. See Buses and Buffers. See Audiopath Buses and Buffers.

To insert a Send effect in an audiopath:

  1. For any path containing a User Defined buffer, right-click the area next to it and beneath the Effects List heading to display a shortcut menu.
  2. Click Insert Send to insert a send in an audiopath.

Setting a Send Volume

You can adjust the output volume level of the audio sent by a Send effect by clicking the Edit Effect Properties button in Effect Properties window.

Matching Audio Channels in Source and Destination Buffers

If the source of a Send effect is a buffer with only one audio channel, then the destination buffer of a send effect must have either one or two audio channels.

If the source of a send effect is a buffer with two or more audio channels, then the destination buffer must have the exact same number of audio channels.


Other Audio Effects in ToolGraphs

You can add a toolgraph to an audiopath. Right-click an audiopath icon in the project tree and then click New ToolGraph, as shown in the following figure.

A toolgraph in an audiopath functions as an additional audio effect that is not dependent on a synthesizer. See Toolgraph Designer.


Embedding an Audiopath in a Segment

You can embed an audiopath in a segment so that audiopath settings are applied only to the segment, and settings in the default audiopath are unaffected. This provides extra flexibility in creating performance configurations that are specific to the content of the segment.

An embedded audiopath completely replaces the default audiopath when the segment plays. All other segments, unless they also have embedded audiopaths, will continue to play using the default audiopath.

If there are settings in the embedded audiopath that conflict with settings in the default audiopath, such as different effects on the same PChannel, a new PChannel is temporarily used for playback of the segment, so that the conflict is not heard. When the segment stops, audiopath settings revert back to the default audiopath selected in the audiopath list.

You can select the Play on new instance of embedded audiopath option in the Properties window of a segment, so that the audiopath is created only when the segment plays. The audiopath is cleared immediately after playback. See Automatic Creation of an Embedded Audiopath.

An easy method for creating an audiopath for use with a segment is to create a new audiopath based on the default audiopath, and then change only the settings for the PChannels used in the segment. This way, all PChannels not used in the segment retain the default settings, and will continue to play without interruption. You can create an embedded audiopath based on any existing audiopath, or you can begin with a new, empty audiopath.

If you insert an audiopath into a segment, you can enter settings in the Parameter Control track of the segment to control the timing and levels for any audio effects used in the audiopath file. This gives you real-time control over the use of effects for the segment, and lets you define periods during playback when the effects will override the initial baseline settings used for effect in the segment. For more information, see Parameter Control Track.

To insert a copy of an existing audiopath into a segment

  1. In the project tree, drag the icon of an audiopath onto the icon of a segment. A copy of the audiopath is added to the tree as a subcomponent of the segment.
  2. In the project tree, right-click the internal icon of the segment, click Properties, and then click Play on new instance of embedded audiopath to turn on the use of the embedded audiopath for the segment.

You can also right-click a segment icon to insert a new, empty audio path, or to copy an existing audiopath into a segment.

To insert a new audiopath or a copy an audiopath into a segment

1. In the project tree, right-click the internal icon of a segment, and then click New. The following window appears.

2. Click Create an empty audiopath.

Or, click Create a new audiopath based on an existing audiopath, and then select the desired audiopath in the list.

3. Click OK. The audiopath you choose is added into the project tree as a subcomponent of the segment.

4. In the project tree, right-click the internal icon of the segment, click Properties, and then click Play on new instance of embedded audiopath to turn on the use of the embedded audiopath for the segment.


Automatic Creation of an Embedded Audiopath

If a segment contains an embedded audiopath, you can use the Play on new instance of embedded audiopath option in the Segment Properties window to create a temporary instance of the audiopath only when the segment plays. The embedded audiopath is created and activated only at the time when the segment plays. The audiopath is deactivated and the instance destroyed immediately after playback.

Note When a segment stops, there is occasionally ring out time for audio effects used in its audiopaths. This is the period when sound from an audio effect continues after the segment itself has stopped. For example, a reverb or echo effect may ring long after the segment's last note is finished. When an embedded audiopath is deactivated, this can cause the ring out effect to be clipped.

When delivering a segment with an embedded audiopath to a software developer, use one of the following alternatives to avoid clipping off ring out:

  • For a segment that is always played to completion, add extra measures to the end of the segment to ensure that ring out is finished. Note that if you intend to transition to other content right after the last note in the segment, adding extra measures will cause the transition to occur later.
  • Do not use the Play on new instance of embedded audiopath option, and then tell the developer that you want to play the segment on its embedded audiopath. A developer can programmatically create an instance of the audiopath, and control when this instance of audiopath is deactivated, waiting until the segment has completed and any ring out is finished.


Automatic DirectSound Settings in Audiopaths

Audiopaths make use of buffers that are controlled by the DirectSound system component of Windows. Depending on whether you use a standard buffer or design a path with effects of your own choice, there are certain settings that are set automatically, but are invisible to you when using DirectMusic Producer. These settings, called flags, control how your files play when any of the DirectSound system components are used.

Flags in a audiopath buffer are important when you use the buffer in a script. The flags in an audiopath provide information to a script routine when they are specified. For example, the Segment.DownloadSoundData method, which follows, retrieves data for a specified audiopath.

object.DownloadSoundData [oAudiopath]

For information about creating scripts, see Script Designer.

The values of the data retrieved depends on the design of the audiopath. Following is a list of the flags that are present for each audiopath buffer, and are therefore included in the data retrieved by a script method:

  • All standard buffers have these three flags set.
    • DSBCAPS_GLOBALFOCUS,
    • DSBCAPS_CTRLFX
    • DSBCAPS_CTRLVOLUME
  • All user-defined buffers have these flags set:
    • DSBCAPS_GLOBALFOCUS,
    • DSBCAPS_CTRLVOLUME
  • If there are any effects assigned to a buffer, this flag is set:
    • DSBCAPS_CTRLFX
  • If a buffer is 3D, this flag is set:
    • DSBCAPS_CTRL3D
  • Otherwise (if the buffer is not 3D), this flag is set:
    • DSBCAPS_CTRLPAN
  • If there are no PChannels in the mix group the buffer is used with, this flag is set:
    • DSBCAPS_MIXIN
  • Otherwise (if there are PChannels in the mix group), this flag is set:
    • DSBCAPS_LOCDEFER

The following flag can also be included in an audiopath buffer:

  • DSBCAPS_CTRLFREQUENCY This flag can be set by selecting the Enable Doppler Effect option in the Buffer Properties window.


Reverb Send and Chorus Send Buses

You can use the Reverb Send bus or the Chorus Send bus to enable using continuous controllers to adjust the volume of a buffer over time. This is typically used to increase or decrease the volume of a buffer that contains an audio effect.

The Standard Reverb buffer uses the Reverb Send bus as its default bus. This means that it will respond to the continuous controller 91 for Ext Effects (Reverb) Depth in a sequence part or pattern part. The controller affects the volume of the Standard Reverb buffer over time during playback.

You can use the Add/Remove Buses command to add the Reverb Send bus to any mix group. Any User Defined buffer connected to the bus can respond to the Ext Effects (Reverb) Depth controller, regardless of whether the buffer contains an audio effect. The volume of the buffer is affected in the same way. Similarly, the Chorus Send bus can be added to a mix group and used with any User Defined buffer to make it respond to the continuous controller 93 for Chorus.

The most convenient way to use one of these controllers is in conjunction with the Standard Stereo and Reverb audiopath. If you select it in the Audiopath list, then the output from all PChannels goes through two buffers: the Standard Stereo buffer using no effects, and the Standard Reverb buffer using a reverb effect. See Standard Audiopaths.

As a pattern or sequence containing the Ext Effects (Reverb) Depth controller plays, audio signals play normally through the stereo buffer. As the controller curve increases or decreases, the audio signal using the reverb buffer becomes louder or quieter, so the mixture of reverb sound and normal stereo sound changes. As the volume of the reverb buffer increases, the mix of the reverb increases.

If you create a new audiopath with a Standard Reverb buffer, the buffer will also respond to the Ext Effects (Reverb) Depth controller. If you insert a Standard Stereo buffer in the same mix group, this is equal to using the Standard Stereo and Reverb audiopath.

A Reverb Send bus can also be used together with a Stereo (L+R) bus, with both buses in the same mix group. The Reverb Send bus has a User Defined buffer, and must contain a Reverb effect from the Effect Palette. The Stereo (L+R) bus has a User Defined buffer that contains no effects.

The Ext Effects (Reverb) Depth controller and the Chorus controller can be used to control any User Defined buffer, regardless of whether it contains an effect. Only the volume of buffers using the Reverb Send bus are affected by the Ext Effects (Reverb) Depth controller. Only the volume of buffers using the Chorus Send bus are affected by the Chorus controller.

Changing the volume of either reverb or chorus over time is the only use of these two controller curves with the numbers 91 and 93 when using the Microsoft Synthesizer. Other synthesizers might have a different use for curves with these identification numbers. For more information, see Special Controller Types_dx_Special_Controller_Types_dmusprod.

Using the Reverb Send or Chorus Send buses to control the volume of an audio effect in one buffer, with a separate bus to another buffer containing no audio effects, lets you easily control the wet/dry mix of normal sound to sound with an audio effect. This is much easier than using the wet/dry mix parameter in the Properties window of the audio effect being used. See Effect Properties Window_dx_Effect_Properties_Window_dmusprod.


Toolgraph Designer

Tools are simple musical effects that you can use to enhance MIDI playback messages before they are sent to a synthesizer. This allows the sound to be manipulated in real time during playback according to your specifications.

You can use Toolgraph Designer to create a toolgraph containing one or more tools. MIDI data flows sequentially through the tools in a toolgraph, with each tool taking its turn at altering the MIDI data it receives, and then passing it on to the next.

The following figure shows a toolgraph with tools assigned to four different PChannel groups. Duration, Echo, Quantize, Time Shift, and Transpose are shown. Blue rectangles indicate that a tool is set to alter the MIDI data flowing through one or more PChannel groups.

For more information about using Toolgraph Designer to assign tools to PChannels. see Assigning Tools.

Note For the Microsoft® DirectX® 8.0 release of Microsoft® DirectMusic® Producer, no standard tools are provided in the Tool Palette. Only custom tools that you create using a software development language can be used in the Toolgraph Designer. For information about creating custom tools refer to the DirectMusic Tools topic in the DirectX 8.0 SDK documentation.

Toolgraphs can be associated with segments or audiopaths. This ensures that the toolgraph enhances the performance whenever the segment or audiopath is used, regardless of other audio effects that affect the performance.

For example, you can create a custom echo tool and place it in a segment's toolgraph so that it will become a permanent part of the segment's performance, even if the segment is played using an audiopath containing other echo effects.

You can also create a custom tool that transposes notes, and then place it in a segment's toolgraph so that the segment always plays with the intended transposition.

You can insert a new, empty toolgraph in a segment or an audiopath at any time.

To insert a new, empty toolgraph in a segment

  1. In the project tree, right-click the internal icon of a segment.
  2. On the shortcut menu, click New, and then click Toolgraph.

To insert a toolgraph in an audiopath

  1. In the project tree, right-click the internal icon of an audiopath.
  2. On the shortcut menu, click New Toolgraph.

After you create a new toolgraph, you can assign tools to various PChannels. Tools in the toolgraph affect only the PChannels to which they are assigned. A toolgraph in a segment affects only the output from the segment for the PChannels assigned. A toolgraph in an audiopath is used for playback of all files, affecting only the PChannel assigned.

An existing toolgraph can be inserted into a segment or an audiopath by dragging the toolgraph icon in the project tree onto the icon of a segment or audiopath.

Note A segment can contain only one toolgraph at a time.

After you create a toolgraph in a segment or audiopath, you can use a curve in the Parameter Control track for extra control over how tools in the toolgraph are used during playback. See Controlling a Toolgraph Over Time.


Assigning Tools

For the DirectX 8.0 release of DirectMusic Producer, there are no standard tools provided in the Tool Palette. Only custom tools that you create using a software development language can be used in the Toolgraph Designer. For information on creating custom tools refer to the DirectMusic Tools topic in the Microsoft DirectX 8.0 SDK documentation.

After you create one or more custom tools, you can use Toolgraph Designer to assign them to individual PChannels, or groups of PChannels.

The following figure shows a toolgraph with tools assigned to four different PChannel groups. Duration, Echo, Quantize, Time Shift, and Transpose are shown. Blue rectangles indicate that a tool is set to alter the MIDI data flowing through one or more PChannel groups.

After you set up your choices in a toolgraph for the segment, you can begin using the parameters to control the playback and be assured that the tools are applied only to certain PChannels.

When you insert a tool into a segment, it controls playback output only from the segment, on the assigned PChannels. However, if another segment contains tools assigned to the same PChannels, then the tool settings in the two segments may conflict with each other when they play simultaneously. For example, if both segments use a transposition tool simultaneously, the transposition values may be confused. In this case, you must reorganize the PChannel assignments in all segments. If you use one segment as the primary, then you can insert tools in PChannels that are appropriate for controlling the sound of other segments. See Primary Segments.


Controlling a Toolgraph Over Time

Individual tool parameters can be controlled over time by using the Parameter Control track.

The following figure shows a segment containing a sequence track and two Parameter Control tracks. The parameter controls are assigned to PChannels 1 and 2. The parameter for PChannel 1 is a flanger effect drawn from the DMOs available in the segment's Audio Path file, and is set to begin in measure 2. The parameter for PChannel 2 is an echo effect drawn from the segment's toolgraph, and is set to begin in measure 1 and again in measure 4.

The Parameter Control tracks contain curves that affect the parameter over time. For example, the amount of echo effect used in PChannel 2 increases throughout the first measure. In the fourth measure, the echo decreases.

Each Parameter Control track can contain only a single type of tool. You can insert multiple parameter controls in track, but they only affect a single tool.

For more information, see Parameter Control Track.


Song Designer

The Song component type and Song Designer are not implemented in the DirectX 8.0 release of DirectMusic Producer.


Script Designer

When you create Microsoft® DirectMusic® content files for use in a software application, Web site, or computer game, the playback of the music must be tightly integrated into the application. For example, the musical score in a game can transition to new music when the scene changes. The intensity of the music can increase or decrease based on the activity or excitement level in the game, and the mood can change based on the character's situation. The timing and specific behavior of how and when music files play must be implemented by the software developer creating the application, Web site, or game, or by the sound designer/composer of the content.

If the software developer wants to control playback, then he or she can use the DirectMusic API provided in the SDK (software development kit) to send commands controlling the performance or individual components. However, this frequently requires instructions from the sound designer to the game programmer for how files should play. Follow-up and adjustment are often required to ensure their proper execution.

If the sound designer/composer wants to control playback, he or she can create a script file that manages the way the audio content is played. Scripts offer a significant subset of commands available in the API, while allowing the sound designer/composer to work with a more simplified language. Scripts provide the composer or sound designer with much more control in actually implementing music and sound effects in interactive scenarios.

Note Examples of scripts are included in the Demo8 project provided with DirectMusic Producer. See Exploring the Demo Files.

For more information about how a software developer uses DirectMusic files, see Using Files in the Developer Environment. For more information about the DirectMusic SDK documentation, see Other Resources.

You use the New command in the File menu to add a new, empty script to a project. The following figure shows a script named My Script in the project tree.

.

Double-clicking the internal icon of a script file in the project tree opens Script Designer, and displays a window similar to the following.

You can enter scripting commands in the Source area of this window as you do in any text editor. Routines you create in the Source area are automatically listed in the Routines area, and variables are automatically listed in the Variables area. See Creating a DX Audio Script.

After you create a script, you can place one or more calls to script routines in the Script track of a segment. When the segment plays, the commands contained in the script routine are sent to the performance or DirectMusic objects. You control the timing for when a script routine is called by positioning the instance in the track, with a precise setting for the measure, beat, and tick. For more information about placing a script call in a segment, see Script Track.

A script file can contain the other components that it refers to. For example, a script might include a routine that plays a segment file. This file can be included within the script file as an embedded copy of the file, or as a reference to a file in the project. See Embedding and Referencing Files in a Script.

As you create a script in Script Designer, a Routines window at the right side displays a list of the routines you enter in the script window. A Variables window at the lower right side displays the variables you enter in the script window. Click the Refresh button to update the contents of these two windows.

The illustration shows a script containing three routines. If no routines or variables appear in the Routines or Variables windows, there may be an error in the script code. You can open the Message window to view the location of the error in the script. After making corrections to the script, click Refresh to update the contents of the windows.

You can double-click a routine in the Routine window to manually execute it. If the routine plays any content, you can click the Stop button in the Transport Controls to stop playback.


Creating a DX Audio Script

Audio scripting puts greater and more immediate control over the details of audio implementation into the hands of the composer and sound designer. The details of the soundtrack are no longer hard-coded into the application. Instead, events in the application set variables in the script and cause routines to be executed. It is the script routines that handle the details. Because the script is not part of the compiled application, the sound designer can easily make changes that are immediately implemented in the current version of the application.

An application can load and run multiple scripts at the same time. The names of variables and routines can be the same in different scripts; the application will keep them separate. One script can load another script and call into it.

A script can include other components that are played as part of a script. See Embedding and Referencing Files in a Script.


Embedding and Referencing Files in a Script

The commands you create in a script can include the use of other components that are in the same project. For example, a script's command can include playing a segment file. See Segment.Play.

Any component you use in a script must be placed into the Script Content of the script, inserted either in the Embed Runtime folder or Reference Runtime folder of the script. The following figure shows a script file named My Script, with its internal icon displayed and its script content opened to show its Embed Runtime and Reference Runtime folders.

.

Using the Script Contents is very similar to using a container to hold all the files needed for a complete performance. A container includes both an Embed Runtime folder and a Reference Runtime folder. For information about using containers, see Containers.

You can insert a component into the Embed Runtime or Reference Runtime folder of a script by dragging the component from any place in the project tree onto the icon of the folder.

When a component is inserted in the Embed Runtime folder of a script, a new reference to the component appears in the folder, and the original component remains at its current position in the project tree. The contents of a component in the Embed Runtime folder are not actually inserted into the script until you save the script as a run-time file. When you save the script as a run-time file for delivery to a software developer, a full copy of the component is created along with the script file. This ensures that the component is available for use in the script, even if the script is separated from the rest of the project.

When a component is placed in the Reference Runtime folder, a reference to the component appears in the folder. When you save the script as a run-time file, only a reference to the component is included in the script. The contents of the component are not included within the run-time script file. For the script run-time file to use the component, the component must be provided as a separate run-time file with the script run-time file. This is useful when a component is referenced by multiple scripts, reducing unnecessary duplication of the component in more than one script run-time file.

Note: Inserting a component in the Embed Runtime folder of a script causes the component to be renamed. For example, if you drag a file called Segment1 into the Embed Runtime folder, the file is shown in the folder with the name Segment1A. This ensures that the new copy of the Segment1 component that is saved within the script run-time file cannot be confused with the original component.

Dragging an object from the Embed Runtime to the Reference Runtime folder forces a rename of the object.


Script Language

Scripts can be written using any Microsoft® ActiveX® Scripting language, but Microsoft® DirectMusic® Producer enables scripting in a special language called AudioVBScript. The advantage of using AudioVBScript is that it requires a very small run-time library.

AudioVBScript is a subset of Microsoft® Visual Basic® Scripting Edition; that is, any script in AudioVBScript can be run in the Visual Basic Scripting Edition environment as well.

AudioVBScript supports the following keywords. For information on how these keywords are used, see the documentation for Visual Basic Scripting Edition.

sub
dim
if
then
end
elseif
else
set
call
not
mod
is
and
or
true
false
nothing

The true, false, and nothing keywords are special identifiers. They are treated as variables that hold the values that their names suggest. They cannot be assigned to.

Note: Basic Microsoft® Visual Basic® functions not listed in the keyword list are not supported, including the following functions:

  • Rnd
  • date and time
  • format conversion

AudioVBScript supports the following symbols and operators.

(
)
, (comma)
' (apostrophe)
-
^
*
\
%
+
<
<=
>
>=
=
<>

Keywords and other identifiers, other than string literals, are not case sensitive.

The following objects can be used in scripts:

  • Audiopath Object
  • AudiopathConfig Object
  • Performance Object
  • PlayingSegment Object
  • Segment Object


AudioVBScript Limitations

AudioVBScript has the following limitations:

  • Variables can only be integers, strings, or objects.
  • Arrays are not supported.
  • Strings cannot be combined by using operators. For example, the last line of the following code raises an error in AudioVBScript:
    CurrentLevel = "Dungeon"
Trace CurrentLevel    ' prints: Dungeon.

Trace "The current level is " + CurrentLevel
  ' Visual Basic Scripting Edition prints: The current level is Dungeon.
  ' AudioVBScript: syntax error, Invalid expression.
  • All Dim statements must occur before all Sub statements. Dim statements cannot occur inside a Sub.

    Note that this does not imply that all variables in an AudioVBScript file must be globally declared. It only means that local variables cannot be explicitly allocated by using Dim. Local variables can, however, be automatically allocated.

    Not Allowed:

    dim x
sub UseLocal
  dim y
  y = x + 1
end sub

    This code generates a syntax error, as you cannot explicitly declare a variable after the first Sub is encountered (for example, not within any subroutines).

    Allowed:

    dim x
sub UseLocal
  y = x + 1
end sub

    Here, y is automatically created when used and released when the subroutine exits.

Other information about variables

Local variables can be used to temporarily store values that are only needed by the logic in that function. Such a variable is not accessible outside the function, and it is cleared each time the function is called. Each instance of a called function will have its own instance of local variables, independent of other instances.

Local variables are guaranteed to have an initial value of zero. You can also set a local variable's value using a standard assignment, as shown in the following example:

dim x 'global variable
sub AddSomeValues
  local1 = 10  'automatically creates local variables and sets them to desired values
  local2 = 20
  x = local1 + local2
end sub

Visual Basic script code using Option Explicit or using Dim statements inside routines won't work in AudioVBScript.

  • An object returned by a function cannot be directly dereferenced. The following is not allowed.
    LoadSegment("song.sgt").Download
    • However, the following is permitted.
    set seg = LoadSegment("song.sgt")
seg.Download
  • Identifiers—variable and subroutine names—can be any sequence of letters, digits, and underscores but cannot begin with a digit.
  • Single line If/Then statements are not supported. You must place If/Then statements in separate lines of a script. For example, the following script routine will raise a syntax error:
    sub TestX
  if x > 1 then Segment1.play
end sub

    To ensure that your code will run in both Visual Basic Scripting Edition and AudioVBScript, always use multi-line If/Then:

    sub TestX
  if x > 1 then
    Segment1.play
  end if
end sub


Calling into Another Script

The following example shows how a script can set a variable and call a routine in another script. Script A declares the variable and defines the routine.

CarScript:

Dim CarNumber

Sub RunCar
  If CarNumber = 1 Then
    LittleEngineSound.Play
  Else
    BigEngineSound.Play
  End If
End Sub

Script B calls into Script A to play an appropriate sound as follows:

Level1:

Sub StartRace
  CarScript.CarNumber = 1
  CarScript.RunCar
End Sub


DirectMusic Scripting Reference

This section contains reference information for Microsoft® DirectMusic® using Active Scripting.

References are provided for the following objects:

  • Audiopath Object
  • AudiopathConfig Object
  • Performance Object
  • PlayingSegment Object
  • Segment Object


Audiopath Object

Represents a configuration of channels, ports, and buffers through which sound data is streamed. An audiopath is created in an application and passed to the script as an object variable. An audiopath can also be created using the AudiopathConfig.Create method. The script can then download and unload instrument data on that path and play segments on it by passing the Audiopath object as a parameter to the following methods:

  • Segment.DownloadSoundData
  • Segment.Play
  • Segment.UnloadSoundData

The Audiopath object has the following methods:

  • GetVolume
  • SetVolume


Audiopath.GetVolume

Retrieves the volume for all segments and songs playing through this audio path.

iVolume = object.GetVolume()

Parts

object
Required. Object expression that resolves to an Audiopath object.

Return Values

Returns an integer in the range from -9600 through 0.

Remarks

If Audiopath.SetVolume has been called, this method returns the new volume specified in that call, even if the new volume has not been reached because the duration has not elapsed.


Audiopath.SetVolume

Sets the volume for all segments and songs playing through this audio path. The volume is an attenuation factor cumulative with volumes authored into the content as well as volumes applied by Performance.SetMasterVolume.

object.SetVolume iVolume, [iDuration]

Parts

object
Required. Object expression that resolves to an Audiopath object.
iVolume
Required. Integer that specifies the attenuation of the volume, in hundredths of a dB. This value must be in the range from -9600 to 0. A value of zero specifies the base volume. A negative value indicates the amount by which the base volume is attenuated. The volume cannot be increased over the base level.
iDuration
Optional. Integer that specifies the duration, in milliseconds, over which the volume change occurs.

Remarks

This method should not be called while a previous volume change with duration is still in process.

The actual precision of volume changes is about 75 hundredths of a dB.

See Also

Audiopath.GetVolume


AudiopathConfig Object

Represents an audio path configuration.

The AudiopathConfig object has the following methods:

  • Create
  • Load


AudiopathConfig.Create

Creates an audio path on which songs and segments can be played.

Set oAudiopath = object.Create()

Parts

object
Required. Object expression that resolves to an AudiopathConfig object.

Return Values

Returns an Audiopath object.

Remarks

Before this method can be called, the configuration must be loaded. Loading can be done either automatically or manually. For more information, see the Remarks for AudiopathConfig.Load.


AudiopathConfig.Load

Reads the audio path configuration into memory, making it possible to use the configuration to create an audio path.

object.Load

Parts

object
Required. Object expression that resolves to an AudiopathConfig object.

Remarks

This method has no effect if content is loaded automatically when the script is loaded, as specified by the script properties assigned in DirectMusic Producer. If content is not loaded automatically, none of the object's other methods are available until AudiopathConfig.Load has been called.

Loading occurs synchronously, blocking execution of the script until the segment is loaded.

The configuration is unloaded automatically when the application frees the script.


Performance Object

Manages music playback. Most applications have a single performance, but it is possible to have multiple performances, each with its own global parameters such as tempo and volume. The application can pass a Performance object to the script in an object variable. If the script calls a Performance method without an object prefix, the default performance is assumed.

A Performance object has the following methods:

  • GetMasterGrooveLevel
  • GetMasterTempo
  • GetMasterTranspose
  • GetMasterVolume
  • SetMasterGrooveLevel
  • SetMasterTempo
  • SetMasterTranspose
  • SetMasterVolume
  • Trace
  • Rand


Performance.GetMasterGrooveLevel

Retrieves the current master groove level, which is a value added to all groove levels in the performance. The resulting value is adjusted, if necessary, to fall within the range from 1 through 100.

iMasterGrooveLevel = [object.]GetMasterGrooveLevel()

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.

Return Values

Returns an integer in the range from -99 through 99.

See Also

Performance.SetMasterGrooveLevel


Performance.GetMasterTempo

Retrieves the current master tempo.

iTempo = [object.]GetMasterTempo()

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.

Return Values

Returns an integer in the range from 1 to 10,000.

Remarks

The master tempo is a percentage that is applied to the tempo of the segment that is playing. By default it is 100. A value of 50 halves the tempo, and a value of 200 doubles it.

See Also

Performance.SetMasterTempo


Performance.GetMasterTranspose

Retrieves the current master transposition.

iTranspose = [object.]GetMasterTranspose()

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.

Return Values

Returns the number of semitones by which the notes in the performance are transposed, in the range from -32,768 to 32,767.

Remarks

The master transposition is applied to all notes, after any transposition within segments has been applied. Any notes that fall outside the range of MIDI values from 0 through 127 will not be heard.

See Also

Performance.SetMasterTranspose


Performance.GetMasterVolume

Retrieves the current master volume.

iVolume = [object.]GetMasterVolume()

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.

Return Values

Returns the current master volume, in hundredths of a decibel.

Remarks

The master volume is an amplification or attenuation factor applied to the default volume of the entire performance.

See Also

Performance.SetMasterVolume


Performance.SetMasterGrooveLevel

Sets a value to be added to all groove levels in the performance.

[object.]SetMasterGrooveLevel iLevel

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.
iLevel
Required. Integer that specifies the value to add to the groove level, in the range from –99 through 99.

See Also

Performance.GetMasterGrooveLevel

Remarks

The adjusted groove level is always in the range from 1 through 100.


Performance.SetMasterTempo

Sets a scaling factor that is applied to the tempo.

[object.]SetMasterTempo fTempo

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.
fTempo
Required. Desired master tempo, in the range from 1 through 10,000.

Remarks

The master tempo is a percentage that is applied to the tempo of the segment that is playing. By default it is 100. A value of 50 halves the tempo, and a value of 200 doubles it.

See Also

Performance.GetMasterTempo


Performance.SetMasterTranspose

Sets the current master transposition.

[object.]SetMasterTranspose iTranspose

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.
iTranspose
Required. Integer that specifies the number of semitones by which the notes in the performance are transposed, in the range from -32,768 to 32,767.

Remarks

The master transposition is applied to all notes, after any transposition within segments has been applied. Any notes that fall outside the range of MIDI values from 0 through 127 will not be heard.

See Also

Performance.GetMasterTranspose


Performance.SetMasterVolume

Sets the master volume of the performance. The master volume is an attenuation factor applied to the volume of the entire performance, relative to the default volume of the segment.

[object.]SetMasterVolume iVolume, [iDuration]

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.
iVolume
Required. Integer that specifies the attenuation factor, in hundredths of a dB, to apply to all sounds in the performance. This value must be in the range from -9600 to 0. The actual precision of volume changes is about 75 hundredths of a dB.
iDuration
Optional. Integer that specifies the duration, in milliseconds, over which the volume change occurs.

Remarks

This method should not be called while a previous master volume change with duration is still in process.

Calling SetMasterVolume with a value of 0 dB will make most content louder. 0 dB is normally meant to have no effect, but instead it causes all note velocities to increase to 127. Thus 0 dB causes everything to play at maximum volume, and from this point negative values decrease the volume until -9600, which is equal to silence.

Volume changes using a duration do not always occur smoothly, and the precision of volume adjustments isn't precise down to hundredths of a dB as indicated in the interface.

See Also

GetMasterVolume


Performance.Rand

Returns a randomly generated integer.

iChoice = [object].Rand(iNumChoices)

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.
iNumChoices
Allowed range of returned number. Must be at least 1, and cannot be greater than 32,767.

Return Values

Returns an integer in the range from 1 to iNumChoices.


Performance.Trace

Sends a lyrics message that displays text in the DirectMusic Producer message window. This method is useful for debugging and testing the script. Applications can also trap the messages by using tools.

[object.]Trace sOutput

Parts

object
Optional. Object expression that resolves to a Performance object. If omitted, the default performance is used.
sOutput
Required. Text to output.

Remarks

This method is implemented by sending a lyrics message. These messages are typically ignored outside of Producer, but an application could insert a tool into the performance graph to capture the strings.


PlayingSegment Object

Represents an instance of a segment or song that has been played and enables the application to retrieve information about it, set its volume, and stop it.

This object is obtained by using the Segment.Play method.

A PlayingSegment object has the following methods:

  • IsPlaying
  • Stop


PlayingSegment.IsPlaying

Ascertains whether the instance of a segment or song is playing.

bPlaying = object.IsPlaying()

Parts

object
Required. Object expression that resolves to a PlayingSegment object.

Return Values

Returns True if the segment instance is playing, or False if the segment instance has not yet started, has finished, or has been stopped.

Remarks

Because of latency or delayed start, this method can return False even though Segment.Play has been called.


PlayingSegment.Stop

Stops this instance of the segment or song.

object.Stop [iFlags]

Parts

object
Required. Object expression that resolves to a PlayingSegment object.
iFlags
Optional. Integer value specifying the stop point in relation to the currently playing primary segment. If no flag is specified, playback stops at the boundary authored in the segment. Can be one of the following values:
AtGrid
Stop at the next grid.
AtBeat
Stop at the next beat.
AtMeasure
Stop at the next measure.
AtImmediate
Stop immediately.

Remarks

Calling this method on a stopped segment has no effect. Calling it on a segment that is cued to play causes the segment not to start.

See Also

Segment.Stop


Segment Object

Represents a piece of music or a template.

A Segment object has the following methods:

  • DownloadSoundData
  • Load
  • Play
  • Recompose
  • Stop
  • UnloadSoundData


Segment.DownloadSoundData

Downloads instruments or wave data used by the segment. Sound data must be downloaded before the segment can be played.

object.DownloadSoundData [oAudiopath]

Parts

object
Required. Object expression that resolves to a Segment object.
oAudiopath
Optional. Object expression that resolves to an Audiopath object representing the destination for the segment's sound data. If this parameter is omitted, the default audio path for the segment is used.

Remarks

Sound data must be downloaded to the audio path on which the segment is going to be played. Otherwise, performance channels remapped by the audio path will not match up when the segment is played, causing parts not to be heard or to play with the wrong instruments.

Sound data is automatically loaded and unloaded if the corresponding property is set on the script object.

Scripts should call Segment.UnloadSoundData for each call to DownloadSoundData.


Segment.Load

Reads the segment into memory from a file or resource and makes it available for playback.

object.Load

Parts

object
Required. Object expression that resolves to a Segment object.

Remarks

This method has no effect if content is loaded automatically when the script is loaded, as specified by the script properties assigned in DirectMusic Producer. If content is not loaded automatically, none of the segment's other methods are available until Segment.Load has been called.

Loading occurs synchronously, blocking execution of the script until the segment is loaded.

The segment is unloaded automatically when the application frees the script.

Parts

object
Required. Segment object.


Segment.Play

Plays the segment. This method can be called using two forms.

  • As a sub procedure with no return values:
object.Play [iFlags], [oAudiopath], [oTransitionSegment], [oFromPlayingSegment]
  • As a function that returns a value:
Set oPlayingSegment = object.Play([iFlags], [oAudiopath], [oTransitionSegment], [oFromPlayingSegment])

Parts

object
Required. Object expression that resolves to a Segment object.
iFlags
Optional. Flags that specify how the segment is played. Multiple flags are set by adding them together. Flags fall into four main groups:
  • Basic Control Flags
  • Playback Time Flags
  • Transition Flags
  • Other Flags

    Descriptions of the flags in each group follow.

Basic Control Flags |
IsControl | Play as a controlling segment.
IsSecondary | Play as a secondary segment.

Note If the Segment.Play method is used without the IsSecondary variable, then the segment called by the method is considered primary. Thus, if a script you insert in a primary segment calls another segment using Segment.Play without IsSecondary, then the segment playback transitions to the new primary when the script executes. Playback of the source segment containing the script is halted, and all remaining measures in the source segment are ignored.

If you want playback of the segment containing the script to continue, set the segment called by the method to be a secondary segment by including the IsSecondary variable.

For more information, see Multiple Primary Segments.

Note Controlling segments determine some global parameters in the performance, such as groove level.

Playback Time Flags |
AtFinish | Not available with IsSecondary or IsControl. Play when the currently playing primary segment, if any, finishes. If no primary segment is currently playing, play starts immediately. If multiple primary segments are played with AtFinish, they are cued to play one after another in the order in which they were played.
AtGrid | Play at the next grid.
AtBeat | Play at the next beat.
AtMeasure | Play at the next measure.
AtImmediate | Play immediately.
AlignToBar | Align to a measure boundary, but start within a measure as determined by the switch points in the content.
AlignToBeat | Align to a beat boundary, but start between beats as determined by the switchpoints in the content.

Note If no playback time flag is specified, play starts according to the performance boundary authored in the segment. If no primary segment is currently playing, the new segment starts immediately.

Transition Flags |
PlayFill | Play a "Fill" type transition between the currently playing segment and the new segment. This flag may not exist with any other transition flag except PlayModulate.
PlayIntro | Play an "intro" type transition between the currently playing segment and the new segment. This flag may not exist with any other transition flag except PlayModulate.
PlayBreak | Play a "break" type transition between the currently playing segment and the new segment. This flag may not exist with any other transition flag except PlayModulate.
PlayEnd | Play an "End" type transition between the currently playing segment and the new segment. This flag may not exist with any other transition flag except PlayModulate.
PlayEndAndIntro | Play an "End" type transition from the existing segment and an "Intro" transition from the new segment between the currently playing segment and the new segment. This flag may not exist with any other transition flag except PlayModulate.
PlayModulate | Create a new modulating chord progression during the transition. This flag may be used with any of the other transition flags. If no other transition flag is set, this flag is ignored.

Note The flags in the preceding table are available only with primary segments, and negate the effects of the IsSecondary and IsControl flags, causing playback of a primary segment instead. If no transition flag is specified or the segment doesn't contain the specified transition, no transition is played. The entire transition is played even if it is several measures long.

Other Flags |
NoCutoff | Start the new segment, but don't prematurely cut off any held notes from the previous segment. Not available if transition flags are set.

oAudiopath
Optional. Audio path to use for playback of this segment. If this parameter is omitted, an audio path embedded in the segment is used. If there is no embedded audio path, the segment plays on the audio path of the default performance. Not valid if transition flags are set.
oTransitionSegment
Optional. Segment object to be played as a transition to the new segment. Not valid if transition flags are set.
oFromPlayingSegment
Optional. PlayingSegment object to replace. This parameter is used to stop a specific secondary PlayingSegment when this segment begins playing. Cannot be used with transition flags, but can be used when oTransitionSegment is supplied.

Return Values

Returns a PlayingSegment object that represents this instance of the segment.


Segment.Recompose

Recomposes the segment, possibly using a different chord map.

object.Recompose

Parts

object
Required. Object expression that resolves to a Segment object.


Segment.Stop

Stops all instances of the segment that are playing.

object.Stop [iFlags]

Parts

object
Required. Object expression that resolves to a Segment object.
iFlags
Optional. Integer that specifies flags. Can include one of the playback time flags, which control when the segment stops in relation to boundaries of the currently playing primary segment. If no playback time flag is specified, then playback will stop according to the performance boundary authored in the segment. Can also include a transition flag. Multiple flags are combined by adding them together.
Playback Time Flags
AtGrid | Segment ends at the next grid.
AtBeat | Segment ends at the next beat.
AtMeasure | Segment ends at the next measure.
AtImmediate | Segment ends immediately.

Transition Flags
PlayEnd Play an End transition. Only valid for a primary segment. If the segment does not contain such a transition, no transition is played.

See Also

PlayingSegment.Stop


Segment.UnloadSoundData

Unloads instruments or wave data used by the segment. The data is released from system memory. All instruments and waves using that data fall silent.

object.UnloadSoundData [oAudiopath]

Parts

object
Required. Object expression that resolves to a Segment object.
oAudiopath
Optional. Audiopath object that represents the location of the segment's sound data. This must be the same path that was passed to Segment.DownloadSoundData. If this parameter is omitted, the default audio path for the segment is used.

Remarks

Scripts should call UnloadSoundData for each call to Segment.DownloadSoundData. The data is not removed until it has been unloaded as many times as it was downloaded. There is no harm in calling this method more often than DownloadSoundData was called.

Sound data is automatically loaded and unloaded if the corresponding property is set on the script object.


Using Files in the Developer Environment

In Microsoft DirectMusic Producer, you create the music content that users interact with after the music is in an application or Web page. After you create music content files in DirectMusic Producer, you pass them to a software developer. The developer then writes code that uses your files to generate a performance through the DirectMusic components of the Windows operating system. It is up to a developer to make your music come alive for users as part of an actual application or Web page.

The following topics describe how your compositions are implemented at run time. These topics explain which DirectMusic Producer files you deliver to a developer and how the developer applies the music to an application or Web page. You do not need to be a developer to understand this process, although an understanding of the delivery process will help you be more effective in the composing end of the process:

  • How DirectMusic Uses Your Files
  • Delivering Run-Time Files
  • DirectMusic Use of Segments
  • DirectMusic Use of Secondary Segments
  • Which Components to Deliver
  • Run-Time File Name Extensions


How DirectMusic Uses Your Files

Microsoft DirectMusic is part of the Microsoft DirectX application programming interface (API). These APIs are predesigned strings of code that Microsoft shares with software developers who want to include music in an application or Web site. Developers copy the DirectMusic APIs to their code and then, when the appropriate commands are given, the application can call a music performance.

When developing code for a Web page, a designer places scripting commands written in Visual Basic or another programming language into the HTML text of the page. A special DirectMusic control, loaded from the Web page onto a user's computer, serves as a playback engine for the DirectMusic Producer files that are to be played from the Web site.

The DirectMusic APIs provide special commands for use in an application or Web site. The commands are used to control a set of DirectMusic dynamic link libraries (DLLs) in the System folder of the user's computer. Nine DLLs are required for Windows 98; only seven DLLs are required for Windows 2000:

  • DMBand.dll
  • DMCompos.dll
  • DMIME.dll
  • DMLoader.dll
  • DMStyle.dll
  • DMSynth.dll
  • DMusic.dll
  • DMusic16.dll—Windows 98 systems only
  • DMusic32.dll—Windows 98 systems only

Note It is the responsibility of the software or Web page developer to make certain that users have the appropriate DirectMusic DLLs loaded on their computers. Information in this section is only provided so composers can better understand the function of DirectMusic.

DLLs are small tools that can be instantly accessed from a Web site or application designed to play a DirectMusic performance. Their presence in the System folder of a computer eliminates the need for multiple DirectMusic-compatible applications or Web sites to install DirectMusic tools. In combination, the DirectMusic DLLs serve all the functions of a playback device that can interpret DirectMusic data, compose files at run time, route music through the appropriate instrument sounds and, ultimately, send it to the computer's speakers.


Delivering Run-Time Files

The Microsoft DirectMusic Producer files you create are slightly different from the files you deliver to a developer for use in an application or Web page. They have a different file structure and a different file extension. You can convert a file to the format used by developers by using the Runtime Save As command on the File menu. In addition, you can convert an entire project and its components to the correct format by using the Runtime Save All Files command on the File menu.

These converted files are known as DirectMusic run-time files. A DirectMusic run-time file is more streamlined than its corresponding DirectMusic Producer file because it does not contain all the information for DirectMusic Producer elements, such as the way a component is displayed in the editing environment.

An application or Web page plays the run-time versions of your style, chordmap, segment, and band files by loading the data from the files into DirectMusic. With the data from your run-time files loaded, the application sends DirectMusic the appropriate playback commands with parameters for when to play files, in what combinations, how long to play them, and what part of the files to play. For detailed information about this process, see the documentation included in the DirectMusic Software Development Kit (SDK).

To convert DirectMusic Producer files to DirectMusic run-time files

  1. Open a DirectMusic Producer file so it is active in the editing window.
  2. On the File menu, choose Runtime Save As.
  3. In the Runtime Save As window, choose a directory on your computer where the run-time file will be saved. The default directory is C:\My Documents\DMUSProducer\Current_Project\Runtime Files.
  4. Click the New Folder button to create a folder where the run-time file will be saved.
  5. Click Open and select whether to save the run-time files to the default folder or to a new folder. A run-time file is then saved with a new file extension.

For more information, see Run-time File Name Extensions.

To convert all files in a project to DirectMusic run-time files

  1. In the project tree, click a project to select it.
  2. On the File menu, choose Runtime Save All Files. All components in the selected project are saved as run-time files in a directory inside the project directory called Runtime Files. Each run-time file is saved using the exact name of the original file. The default location is C:\My Documents\DMUSProducer\Current_Project\Runtime Files.

    For each component in the project, a run-time file with a new file extension is saved. For more information, see Run-time File Name Extensions.


DirectMusic Use of Segments

Microsoft DirectMusic takes data from the Microsoft DirectMusic Producer files you provide and, if they are not segments, uses the files to temporarily generate and store new segments of music that are used at run time. These segment files are processed and played through the speakers of the computer. All music pieces that DirectMusic generates or plays are segments.

If you create a segment and save it as a run-time file, the DirectMusic components can play the file as it is. If you provide only low-level, run-time files, such as styles, DirectMusic uses the data in those files to generate a new segment and plays the segment.

The DirectMusic playback components can play any number of segment files simultaneously. This includes any sound that is stored in a segment, such as a melodic motif or a sound effect motif. In this way, a developer of an application or Web page can combine multiple events and music elements with as much layering as desired. These segments can be played at any time, for any period, in any order, and simultaneously.

Note When you create a motif in DirectMusic Producer, it is contained within a style. To deliver a run-time version of a single motif for use with files other than the style, you must insert the motif into a segment. For more information, see Saving a Motif as a Segment.

When using multiple segments, a developer must designate one segment as primary and all other segments that play over it as secondary. For more information, see Secondary Segments.


DirectMusic Use of Secondary Segments

The Microsoft DirectMusic playback components can play any number of segment files simultaneously. In this way, a developer can combine multiple events and music elements with as much layering as desired. These segments can be played at any time, for any period, in any order, and simultaneously.

A developer can designate a segment as primary and all other segments that play over it as secondary. You can create your Microsoft DirectMusic Producer files with this in mind. For example, a primary segment might be the main body of a musical piece that plays continuously. You can create secondary segments that are added as enhancements to the primary segment. Secondary segments can be any length, but they are typically short segments of a few measures, or a motif that is a measure or less in length.

For more information, see Secondary Segments.


Which Components to Deliver

With Microsoft DirectMusic Producer, you have the flexibility in deciding which run-time files to deliver to a software developer. The less detailed design you create in run-time files you deliver, the more variability a developer can build into the music at run time.

If you deliver a run-time file for a segment, Microsoft DirectMusic plays the music elements in the segment, such as a pattern of chords and grooves or embellishments, in a specific order, giving you control over the outcome. However, if you only deliver style and chordmap run-time files, a developer can program DirectMusic to take any number of paths through the chordmap and to play patterns, grooves, and embellishments from the style in any order. A developer can set limits on the variability by using parameters when issuing playback commands. However, delivering these files gives the developer far more control over the outcome.

For example, an application might issue a Shapes command for DirectMusic to compose music based on a chordmap and style so the resulting music starts low, rises over 32 measures, and ends. Using the same style and chordmap, another place in the application could provide contrast by sending a command to start high and quickly descend over 16 measures before ending.

Generally, supplying the run-time files from low-level DirectMusic Producer components, such as styles, chordmaps, and bands, provides for greater flexibility at run time than supplying more structured run-time files, such as segments. A segment containing a MIDI sequence is the highest level and most structured file you can deliver. This is because every note in a MIDI sequence is locked and DirectMusic cannot vary playback.

Technically, DirectMusic always plays a segment, whether you supply one or not. If you supply one, DirectMusic plays your segment file as you have designed it. However, if you supply a style and chordmap, instead of a segment, DirectMusic temporarily composes a segment based on the supplied files and plays that segment.

At the least, to create a performance DirectMusic must have a style and a chordmap run-time file. If you supply a segment run-time file, you must also supply the music elements that go in it, such as a style or chordmap. The band files in a DirectMusic Producer project can be contained in the style or segment run-time file and do not have to be supplied separately. However, you can give a separate band run-time file to a developer to use independent of a style or segment.

Note You do not deliver the DirectMusic Producer project file (.pro) to a developer. This file is used only by DirectMusic Producer to track which components you are working with. It has no bearing on playing the music in a separate application or Web page.


Run-Time File Name Extensions

A Microsoft DirectMusic Producer component is considered an authoring-mode file. When you save it as a Microsoft DirectMusic run-time file, it is given a different file name extension as shown in the following table.

DirectMusic Producer component Authoring-mode file name extension Run-time file name extension

Style | .stp | .sty
Chordmap | .cdp | .cdm
Segment | .sgp | .sgt
Band | .bnp | .bnd


Copyright Information

Many Microsoft DirectMusic Producer components include copyright information in their Properties windows. This information may include legal restrictions about how the component can be used or modified.

Important Please be sure you have read and understand all the legal restrictions and Legal Information for using the GM.dls supplied with DirectMusic and DirectMusic Producer.


Advanced Use

This portion of the Microsoft® DirectMusic® Producer documentation contains the following topics for use by experienced users:

  • Message Window
  • Containers


Message Window

The Message window displays errors encountered while coding or running script routines. A description of the error, along with the line of code causing the error, is displayed so that the script can be corrected. Another way to use the Message window when debugging scripts is to place trace statements throughout your code. For example:

Trace "Just entered PlayIt routine."

The text associated with the trace statement will appear in the Message window when the trace statement is executed. The Message window displays errors and trace statements for scripts executed from within the script editor, as well as those executed via a segment's Script Track.

Similarly, the lyrics placed in a segment's Lyrics Notification Track appear in the Message window during playback of the segment. See Lyrics Notification Track.

Script errors, script trace statements, and segment lyrics appear in the Message window as they occur.

You can view the Message window by selecting the Message Window command in the Add-Ins menu.

For more information about creating script files, see Script Designer.


Containers

A container packages multiple files into a single file to provide a delivery vehicle for related files. For example, Container1.con can contain all of the files needed for Scene 1 of a game while Container2.con can contain all files needed for Scene 2. Containers also exist within segment and script files. If desired, all of the files needed to play a specific segment can be placed into that segment's internal container, so that the run-time segment file will contain all of the files needed to play the segment. This makes containers a great solution for player applications, since having to deliver multiple files to a player application would severely impact the usability of the application.

It is important to note that only run-time containers (.con files) actually embed other files. Authoring-mode containers (.cop files) only save links to the various files that will be embedded during a run-time save. When you save a run-time container, a full copy of each file located in its Embed Runtime folder is included in the saved file. This simplifies the final delivery process by making it possible to ship a single .con file that contains all of the needed files.

It is also important to note that Containers have a Reference Runtime folder as well as an Embed Runtime folder. You can drop files into the Reference Runtime folder if you want to override standard behavior and only save a link to a file in the run-time save. Referenced files are important because they allow a number of containers to include the same files without needless duplication of data. You might, for example, want to embed all of your DLS collections into a single container file and then place references to specific DLS collections in other containers. This way, you can easily deliver all of your DLS collections, the content residing in other containers will still be able to access your DLS collections, and you won't waste space by embedding the same 8 meg collection in multiple containers.

Composers must be cognizant of whether or not to ship any associated files with the container. Since authoring-mode containers do not embed files, all needed files must be shipped with authoring-mode containers. Since run-time containers only embed files in their Embed Runtime folder, you must ship files not included in the Embed Runtime folder with your run-time container.

The following illustration shows a container with an Embed Runtime folder that has references to several files.

To insert a file in the Embed Runtime folder of a Container

  1. If necessary, add a container to the project tree. See File Management.
  2. In the project tree, double-click the file icon, and then the internal icon of a container to display its folders.
  3. In the project tree, drag the icon of any component onto the Embed Runtime folder of the container.

Note If you have not yet opened a component, you may need to double-click its file icon to display the internal icon before you can drag it into a container.

Also, if the Embed Runtime folder already contains a reference to the file you are attempting to insert, then you will not be able to insert a second reference.

Right-clicking a referenced or embedded file within the container file in the project tree enables the user to select Locate in Tree which will send the focus (that is, select in the project tree) to the associated file.


Tips

This section contains the following topics:

  • Keyboard Shortcuts
  • Pitch Names and MIDI Numbers
  • Drag-and-Drop


Keyboard Shortcuts

Following is a list of keyboard shortcuts you can use in Microsoft DirectMusic Producer to help speed your work.

Note Most menus also have specific accelerators (keys appear underlined in the menu).

General

F1 | Help
F11 | Properties
CTRL+F11 | Cycle focus through project tree/Editor/Properties
SHIFT+F11 | Show/hide project tree
CTRL+N | New file(s)
CTRL+O | Open project
CTRL+I | Insert files into project
CTRL+S | Save file (Editor must be open)
CTRL+X | Cut
CTRL+C | Copy
CTRL+V | Paste
CTRL+A | Select all
CTRL+Z | Undo
CTRL+Y | Redo
ENTER | OK
CTRL+TAB | Cycle through open windows

Transport

SPACEBAR | Play/stop from cursor (segments, waves, or DLS regions)
ALT+< | Play/stop from cursor
ALT+> | Play from start (stop at boundary)
ALT+? | Toggle recording
ALT+" | Transition
CTRL+ALT+1–0, A–Z | Play secondary segment toolbar

Project Tree

UP ARROW/DOWN ARROW | Navigate through files/expanded nodes
HOME | To top of tree
END | To bottom of tree
ENTER | Open file/Editor

DLS Designer

CTRL+drag left to right | Define new region
CTRL+drag (move cursor active) | Copy/paste region
LEFT ARROW/RIGHT ARROW | Fine-tune sliders

Segment Designer

CTRL+INS | Add track
CTRL+DEL | Delete track
INS | Add objects to track
DEL | Delete objects in track

Both Segment Designer and Piano Roll Editors

LEFT ARROW/RIGHT ARROW | Cursor navigation (based on snap-to setting)
SHIFT+Click | Select area
CTRL+Click | Select individual objects
CTRL+Drag | Copy
HOME | Place cursor at start
END | Place cursor at end
CTRL+LEFT ARROW/RIGHT ARROW | Navigate bar forward and backward
I/O | Horizontal zoom in and out
CTRL+B | Snap to bar
CTRL+T | Snap to beat
CTRL+G | Snap to grid
CTRL+E | Snap to none

Piano Roll Editors (Pattern, Sequence and Pattern Tracks)

All arrow keys: | Cursor control
INS | Insert note at cursor
CTRL+ drag | Insert note & extend length
PAGE UP/PAGE DOWN | Scroll octaves
H | Toggle hybrid view
CTRL+Q | Quantize
A/Z | Vertical zoom in and out

In Step Record Mode

RIGHT ARROW | Move cursor forward (insert rest)
RIGHT ARROW (while holding notes) | Extend length of inserted notes


Pitch Names and MIDI Numbers

Microsoft DirectMusic Producer uses two systems for naming pitches that combine a pitch name and an octave number. One system follows the standard naming convention used throughout the MIDI industry and is used for identifying pitches in style patterns and notes in the DLS designer. In this system, C5 represents middle C, equal to MIDI note 60. Thus, the C pitch an octave above middle C is called C6. The pitches between C5 and C6 (moving up the scale from C5) are D5, E5, F5, G5, A5, and B5.

The other system for naming pitches is unique to DirectMusic Producer and is used to name chord roots and design the structure of chords. This includes any chords used in a segment, template, or chordmap, or a Chord Properties window. In this system, 2 C is a reference pitch that can be considered a mid-range pitch for an instrument that is playing. For more information, see Chord Properties Window and Chord Structure Guidelines. The pitches between 1 C and 2 C (moving up the scale from 1 C) are 1 D, 1 E, 1 F, 1 G, 1 A, and 1 B. Only four octaves are available for constructing chords, 1 C through 4 B. Only two octaves are available for creating chord roots, 1 C through 2 B.

The following comparison chart shows the full range of MIDI note names, MIDI key numbers, and traditional names. The Pattern Editor uses the same pitch names as shown in the column for the MIDI notes.

MIDI Note | MIDI Key Number | Traditional Names
G10 | 127 | g''''''
C10 | 120 | c''''''
C9 | 108 | c'''''
C8 | 96 | c''''
B7 | 95 | b'''
C7 | 84 | c''' 2nd ledger line c
C6 | 72 | c'' 3rd space c
B5 | 71 | b'
C5 | 60 | Middle c c'
C4 | 48 | Small c
C3 | 36 | Great C
C2 | 24 | Contra C Double C CC
C1 | 12 | Subcontra C
C0 | 0 |


Drag-and-Drop

You can use the drag-and-drop feature to work with Microsoft DirectMusic Producer components. The simplest example of this is dragging part of a component to share with another component of the same type, such as dragging a pattern from one style to another, or dragging a chord from one chordmap to another.

More advanced examples of using the drag-and-drop feature involve placing entire components within other components, such as dragging a style from the project tree to the Style track of a segment, or dragging a band from within a style to the Band track of a segment.

In most cases, dragging an item from one place to another in the DirectMusic Producer window creates a copy of the item, leaving the original intact. If the original is not left in place, you can hold the CTRL key and drag the item to create a copy in the new location and leave the original item intact. You can use this method throughout DirectMusic Producer to duplicate an item or group of items.

Important Do not set a component in one project to refer to a component in a different project. This can be a risk to the data in your files.

Following are some examples of time-saving, drag-and-drop actions:

  • Drag an object beyond the left, right, upper, or lower edge of the project tree or an editing window to scroll the window and display hidden regions.
  • Drag a chord from a chordmap to a segment, another chordmap, or another measure in the original chordmap.
  • Drag a band from the project tree to the band strip of a style or a segment.
  • Drag a band from the Bands folder of a style onto the icon of a motif in the project tree, or drag a band from a motif onto the icon of a style.
  • Open a style using the Style Designer and drag a band from the Bands list to the icon of another style in the project tree.
  • Drag a groove or embellishment marker from the groove track of one segment to another.
  • Drag a pattern or motif from one style to another, or press CRTL and drag the pattern or motif within the same style to create a copy with a new name.
  • Drag a pattern in the project tree from the pattern folder to the motif folder of a style.
  • Drag selected notes in a pattern or a sequence to move them, or press CTRL and drag the notes to place a copy on a different beat or measure.
  • Drag selected chords in the Chord Path window of a chordmap to move them, or press CTRL and drag the chords to place a copy on a different beat or position in the Chord Path window.

When you click an item to drag it, a faint dragging icon appears; this icon moves with the cursor. The icon usually appears as a semitransparent rectangle with an icon or other symbol that represents the item you are dragging. For example, the following illustration shows the dragging cursor with the icon of a band being dragged in the project tree.

As you drag items around, you will recognize the appearance of the dragging icon as confirmation that you are moving the item you want to move. When you drag an item in the project tree, and hold the dragging cursor over another component, the internal icon and folders contained in the subcomponent are displayed in the tree.

You will also occasionally see a small plus (+) in the dragging icon rectangle. This indicates that a copy of the item will be made if you drop the item in the location beneath the cursor. For example, you might intend to drag a band from a style to a segment. Without querying you, DirectMusic Producer automatically creates a copy of the band and places it in the segment, exactly as if you had pressed CTRL while dragging the band.

If the icon or symbol for the item you are dragging changes to include a "not allowed" symbol, then the cursor is pointing to a destination that cannot accept the dragged item. For example, the following illustration shows a band being dragged onto the icon of a chordmap. A chordmap cannot contain a band, and so the icon of the band has a "not allowed" symbol over it.

To select an item and drag it

  1. Click an item in the project tree or editing window to select it.
  2. Click the item again, holding down the mouse button.
  3. Drag the item to the desired location. As you drag, a circle with a line through it appears over the cursor, indicating the cursor is not pointing to a location that can accept the item.
  4. Release the button when the cursor no longer shows a circle with a line.

    For additional information about sharing bands between components, see Dragging Bands.

    For additional information about copying notes by using the drag-and-drop feature, see Copying Notes Using the CTRL Key and Drag Feature.


Topic Not Found

No matching topic was found. Some possible reasons and remedies are as follows:

  • The file (.chm) that contains the destination topic is not in the expected location.

    Remedy: Rerun the MSDN Library Setup.

  • The file (.chm) that contains the current topic or destination topic is out-of-date and the link is no longer valid.

    Remedy: Install the latest version of the MSDN Library.

  • The MSDN Library CD is not in the CD-ROM drive.

    Remedy: Insert the MSDN Library CD into the CD-ROM drive.