# SetPIMapEntry

Specifies the instrument to use when a MIDI program change occurs.

### Synopsis

`Err SetPIMapEntry( ScoreContext *scon, int32 ProgramNum,Item InsTemplate, int32 MaxVoices, int32 Priority )`

### Description

This function specifies the instrument type to use when a MIDI program change occurs.

This function directly sets a PIMap entry, assigning an instrument template, a maximum voice value, and an instrument priority to a MIDI program number. When a MIDI program change occurs, a new instrument specified by the instrument template is used for notes played after the program change.

The variable "ProgramNum" ranges from 0 to 127 (unlike some synthesizers, which range program numbers from 1 to 128). It must not exceed the number of programs allocated in `CreateScoreContext()`.

Note that it's easier to create a full PIMap using `LoadPIMap()`.

### Arguments

scon
  A pointer to the ScoreContext data structure whose PIMap is to be changed.

ProgramNum
  Value indicating a program number, ranging from 0127; not to exceed the maximum number allocated in `CreateScoreContext()`.

InsTemplate
  The item number of an instrument template.

MaxVoices
  The maximum number of voices that can play simultaneously for this program.

Priority
  An instrument priority value from 0 to 200.

### Return Value

This function returns 0 if all went well; or an error code (less then 0) indicating that an error occurred.

### Implementation

Library call implemented in music.lib V20.

### Associated Files

score.h, music.lib

### See Also

``LoadPIMap`(), UnloadPIMap()`