axvpb.pb.update

C Specification

typedef struct _AXPBUPDATE
{
    
u16 updNum[3];  // number of updates per 1ms step
u16 dataHi;     // location of update data in main memory
u16 dataLo;

} AXPBUPDATE;

Description

The UPDATE member describes a list of parameter changes that the DSP must execute while processing the current voice.

The updNum[] array contains the number of parameter changes that the DSP must execute before processing each millisecond of audio for the current voice. Thus if updNum[2] is equal to 3, then the DSP must change three parameters before processing the last millisecond of audio for this voice.
Note: Updates for the first millisecond (updNum[0]) are ignored.

The dataHi and dataLo values specify the main memory address of the buffer containing the actual parameter update directives specific to the current voice. The DSP will use DMA on this buffer from main memory before voice processing starts.

The directives must be formatted as follows:

    // example of update buffer
#define MAX_NUM_UPDATES_PER_FRAME 32
    
typedef struct
    {
    
u16 offset;
u16 value;

} sUPDATE_FORMAT;
    
sUPDATE_FORMAT update_block[MAX_NUM_UPDATES_PER_FRAME];

The offset variable specifies the parameter that the DSP must change. It also addresses the PB in 16-bit words. The value variable specifies the new value that the DSP must write into the parameter addressed by offset.

Currently, the DSP supports up to 32 parameter updates per voice, per frame. If no updates are required for a given millisecond n, then set updNum[n] to zero.
Note: This feature allows one-millisecond precision for MIDI sequencer events.

AX provides convenient functions for generating an update block. See AXSetVoiceUpdateIncrement() and AXSetVoiceUpdateWrite().

Note: Because the current version of the AX library is not fully updated, update blocks created using the above function will not be reflected in DSP operation.

Your application must assert the AX_SYNC_USER_UPDATE bit to the axvpb.sync word when the update block is changed.

See Also

axvpb.sync
AXSetVoiceUpdateIncrement
AXSetVoiceUpdateWrite

Revision History

03/01/2006 Initial version.