ISD2100 DATA SHEET
- 17 -
Revision 1.8, Aug 21, 2013
action of this VM is to change the trigger VM to VM#8, thus if GPIO4 is re-triggered while the Voice
Macro is running it will execute the power down voice macro rather than start the play sequence again.
The next command sets the LRMP bit of REG1, under normal operation the compressor ramps signal
level to zero after a sound sample is played to prevent a DC voltage appearing on the output. The
LRMP bit prevents this from happening while a sample is looping allowing continuous audio. To loop a
sound sample, the audio should be edited such that the last sample loops smoothly to the first. To do
this, create the sample in a sound editor at the sample rate desired for storage then find the first
sample that returns to the initial condition and cut back audio to one before this sample. Note that
tones require different lengths to fulfill these conditions at a given sample rate and thus loop numbers
vary to produce the same length of output audio.
At the end of the VM REG1 is reset and the trigger is re-enabled back to VM#7 before powering down.
VM#7: R4_PlayLoop (GPIO4)
a. CFG(R4, 0x08) ; Configure GPIO4 to execute VM# 8 on next trigger.
b. CFG(REG1, 0x20) ; Configure LRMP bit in REG1
c. LOOP_VP(Do,20) ; LOOP “Do” 20 times.
d. LOOP_VP(Re,250) ; LOOP “Re” 250 times.
e. LOOP_VP(Mi,5) ; LOOP “Mi” 5 times.
f. LOOP_VP(Fa,33) ; LOOP “Fa” 33 times.
g. LOOP_VP(So,10) ; LOOP “So” 10 times
h. LOOP_VP(La,10) ; LOOP “La” 10 times
i. LOOP_VP(Si,7) ; LOOP “Si” 7 times.
j. Silence (128 ms) ; Insert 128ms of silence
k. CFG(REG1, 0x00) ; Reset REG1
l. CFG(R4, 0x07) ; Configure GPIO4 to execute VM#7 on next trigger.
m. PD ; Power Down
VM#8: PD_R4
a. CFG(REG1, 0x00) ; Configure Register one to its default value 00
b. CFG(R4, 0x07) ; Configure GPIO4 to execute VM#7 on next trigger.
c. PD ; Power Down
10.1.4 Example: Uninterruptable Trigger, smooth audio.
In this example a single trigger on GPIO3 will sequence through several messages until all messages
are played the playback cannot be interrupted by any other trigger. The example also demonstrates
how to use begin and end segments to create smooth playback. Each “note” consists of concatenating
three voice prompts, for instance “So_begin” “So” and “So_end”. The begin and end prompts ramp
the audio smoothly to avoid sudden transients in sound level. The middle, full amplitude, section is
created by looping a short sample.
At the beginning of the Voice Macro, all triggers are disabled so that Voice Macro cannot be
interrupted from any source. The NRMP bit of REG1 is set so that concatenation of audio occurs
without any ramp down between prompts. At the end of the macro, interrupts are re-enabled and
device is powered down.
VM#9: R3_Non-Int_Smooth (GPIO3)
a. CFG(REG_GPIO_AF1, 0x00) ; Disable all triggers.
b. CFG(REG1, 0x04) ; Set NRMP bit