Tables



KSPROPERTY - SET

Value Description
GUID_DMUS_PROP_DLS1 Item 0 is a Boolean indicating whether or not this port supports downloading DLS level 1 samples.
GUID_DMUS_PROP_DLS2 Item 0 is a Boolean indicating whether or not this port supports downloading DLS level 2 samples.
GUID_DMUS_PROP_Effects Item 0 contains DMUS_EFFECT_NONE or one or more effects flags (see the dwEffectFlags member of DMUS_PORTCAPS). This property is used to set or retrieve the current state of the effects.
GUID_DMUS_PROP_GM_Hardware Item 0 is a Boolean indicating whether or not this port supports GM in hardware.
GUID_DMUS_PROP_GS_Capable Item 0 is a Boolean indicating whether or not this port supports the minimum Requirements for Roland GS extensions.
GUID_DMUS_PROP_GS_Hardware Item 0 is a Boolean indicating whether or not this port supports Roland GS extensions in hardware.
GUID_DMUS_PROP_INSTRUMENT2 Item 0 is a Boolean indicating whether or not this port supports downloading samples using the DMUS_ARTICULATION2 structure.
GUID_DMUS_PROP_LegacyCaps Item 0 is the MIDIINCAPS or MIDIOUTCAPS structure that describes the underlying Windows multimedia device implementing this port. A MIDIINCAPS structure is returned if dwClass is DMUS_PC_INPUTCLASS in this port's capabilities structure. Otherwise, a MIDIOUTCAPS structure is returned.
GUID_DMUS_PROP_MemorySize Item 0 is the number of bytes of sample RAM free on this device.
GUID_DMUS_PROP_SampleMemorySize Item 0 is the number of bytes of sample RAM, both free and used, available on this device.
GUID_DMUS_PROP_SamplePlaybackRate Item 0 is the synthesizer's sample rate. The DLS level 2 file format supports conditional chunks to determine whether a region or articulation should be downloaded. This allows authors to create optional waveforms intended for different sample rates. Setting a sample rate of 96 kHz or greater may cause reverberation effects to fail.
GUID_DMUS_PROP_SynthSink_DSOUND Item 0 is a Boolean indicating whether or not this port supports DirectSound.
GUID_DMUS_PROP_SynthSink_WAVE Item 0 is a Boolean indicating whether or not this port supports waveform output using the waveOut functions.
GUID_DMUS_PROP_Volume Item 1 (DMUS_ITEM_Volume) is a LONG in the range from DMUS_VOLUME_MAX through DMUS_VOLUME_MIN. This is the signed value, in hundredths of a decibel, which is added to the gain of all voices after all DLS articulation has been performed. By default, when a port is added to the performance, this property is set to the master volume.
GUID_DMUS_PROP_WavesReverb Item 0 is a DMUS_WAVES_REVERB_PARAMS structure containing reverb parameters.
GUID_DMUS_PROP_WriteLatency Item 0 is a user-defined value in milliseconds (in the range 0 to 100) that is added to the latency of a user-mode synthesizer that sends its output to DirectSound. The default value is 55. The latency is the delay between when the synthesizer writes data to a buffer and when the data is sent to the device. Increasing the latency can solve some sound breakup problems. The property must be reset each time the port is activated.
GUID_DMUS_PROP_WritePeriod Item 0 is the period, in milliseconds (in the range 2 to 100), at which the processing thread runs when the synthesizer is a user-mode synthesizer that sends its output to DirectSound. The default value is 10. If your application requires the absolute lowest latency possible, you can set this property to values smaller than the default value of 10 to process data more often, but performance will suffer because of frequent context switching. To reduce CPU consumption at the expense of latency, set this property to more than 10. The value is the same for all port instances that use the standard DirectSound sink. The property must be set each time the port is activated.
GUID_DMUS_PROP_XG_Capable Item 0 is a Boolean indicating whether or not this port supports the minimum Requirements for Yamaha XG extensions.
GUID_DMUS_PROP_XG_Hardware Item 0 is a Boolean indicating whether or not this port supports Yamaha XG extensions in hardware.

Top    Index

KSPROPERTY - FLAGS

Flags Description
KSPROPERTY_TYPE_GET Retrieve the given property item's value.
KSPROPERTY_TYPE_SET Set the given property item's value.
KSPROPERTY_TYPE_BASICSUPPORT Ascertain the type of support available for the property set. The data returned by IKsControl::KsProperty in *pvPropertyData is a DWORD containing one or both of KSPROPERTY_TYPE_GET and KSPROPERTY_TYPE_SET, indicating which operations are possible.

Top    Index

Segment - FLAGS

DMUS_SEGF_REFTIME Time parameter is in reference time
DMUS_SEGF_SECONDARY Secondary segment
DMUS_SEGF_QUEUE For a primary segment, play at the end of the primary segment queue. For a secondary segment, play at the end of the secondary segment specified in the pFrom parameter of IDirectMusicPerformance8::PlaySegmentEx
DMUS_SEGF_CONTROL Play as a control segment. Valid for secondary segments only. See Remarks
DMUS_SEGF_AFTERPREPARETIME Resolve time to a time after the prepare time. 
DMUS_SEGF_GRID Resolve time to a grid boundary
DMUS_SEGF_BEAT Resolve time to a beat boundary
DMUS_SEGF_MEASURE Resolve time to a measure boundary
DMUS_SEGF_DEFAULT Use flags embedded in the segment. This resolves the time to the segment's default boundary and also causes the segment to play on its embedded audiopath, if it was configured to do so in the authoring application
DMUS_SEGF_NOINVALIDATE Setting this flag in IDirectMusicPerformance8::PlaySegment or IDirectMusicPerformance8::PlaySegmentEx for a primary or control segment causes the new segment not to cause an invalidation. Without this flag, an invalidation occurs, cutting off and resetting any currently playing curve or note. This flag should be combined with DMUS_SEGF_AFTERPREPARETIME so that notes in the new segment do not play over notes played by the old segment.
DMUS_SEGF_ALIGN The beginning of the segment can be aligned with a boundary, such as measure or beat, that has already passed. For this to happen, the segment must have a valid start point that falls before the next boundary. Start points can be defined in the segment, or one of the DMUS_SEGF_VALID_START_* flags can be used to define the granularity of valid start points. Any DMUS_SEGF_VALID_START_* flag takes effect only if a valid start point is not defined in the segment
DMUS_SEGF_VALID_START_BEAT Allow the start to occur on any beat. Used in combination with DMUS_SEGF_ALIGN
DMUS_SEGF_VALID_START_GRID Allow the start to occur on any grid. Used in combination with DMUS_SEGF_ALIGN
DMUS_SEGF_VALID_START_TICK Allow the start to occur at any time. Used in combination with DMUS_SEGF_ALIGN
DMUS_SEGF_AUTOTRANSITION Compose and play a transition segment, using the transition template
DMUS_SEGF_AFTERQUEUETIME Resolve time to a time after the queue time. This is the default for primary segments. Ignored if DMUS_SEGF_AFTERPREPARETIME is also set
DMUS_SEGF_AFTERLATENCYTIME Resolve time to a time after the latency time. This is true for all segments, so this flag currently has no effect
DMUS_SEGF_SEGMENTEND Play at the end of the primary segment that is playing at the start time. If the new segment is being played as a primary segment, any primary segments already queued after the currently playing primary segment are flushed. If no primary segment is playing, use other resolution flags. When combined with DMUS_SEGF_ALIGN, this flag causes the beginning of the cued segment to be aligned with the beginning of the current primary segment
DMUS_SEGF_MARKER Resolve time to the next marker in the primary segment. If there are no markers, use other resolution flags
DMUS_SEGF_TIMESIG_ALWAYS Align start time with current time signature, even if there is no primary segment
DMUS_SEGF_USE_AUDIOPA Use the audiopath embedded in the segment. Automatic downloading of bands must be enabled to ensure that the segment plays correctly
DMUS_SEGF_VALID_START_MEASURE Allow the start to occur at the beginning of a measure. Used in combination with DMUS_SEGF_ALIGN
DMUS_SEGF_INVALIDATE_PRI Invalidate only the primary segment when transitioning to a new segment

Remarks

The primary segment is the default control segment. The DMUS_SEGF_CONTROL flag can be used to make a secondary segment the control segment. If the DMUS_SEGF_CONTROL flag is set, DMUS_SEGF_SECONDARY is assumed. For more information, see Control Segments.

Top    Index