Positron Compiler Documentation

Sound

Source: Positron8 Compiler User Manual, PDF page 193

Syntax

Sound Pin, [ Note,Duration {,Note,Duration...} ]

Overview

Generates tone and/or white noise on the specified Pin. Pin is automatically made an output.

Parameters

Pin is a Port.Pin constant that specifies the output pin on the device. Note can be an 8-bit variable or constant. 0 is silence. Notes 1-127 are tones. Notes 128-255 are white noise. Tones and white noises are in ascending order (i.e. 1 and 128 are the lowest frequencies, 127 and 255 are the highest). Note 1 is approx 78.74Hz and Note 127 is approx 10,000Hz. Duration can be an 8-bit variable or constant that determines how long the Note is played in approx 10ms increments.

Example

' Star Trek The Next Generation...Theme and ship take-off
  Device = 16F1829
  Declare Xtal = 20 ' Tell the compiler the device will be operating at 20MHz
  Dim bMyLoop as Byte
  Symbol MyPin = PORTB.0
  Do
     Sound MyPin,[50,60,70,20,85,120,83,40,70,20,50,20,70,20,90,120,90,20,98,160]
     DelayMs 500
     For bMyLoop = 128 to 255
                                     ' Ascending white noises
       Sound MyPin, [bMyLoop,2]
                                     ' For warp drive sound
     Next
     Sound MyPin, [43,80,63,20,77,20,71,80,51,20,_
                    90,20,85,140,77,20,80,20,85,20,_
                   90,20,80,20,85,60,90,60,92,60,87,_
                   60,96,70,0,10,96,10,0,10,96,10,0,_
                   10,96,30,0,10,92,30,0,10,87,30,0,_
                   10,96,40,0,20,63,10,0,10,63,10,0,_
                   10,63,10,0,10,63,20]
     DelayMs 10000
  Loop

Notes

With the excellent I/O characteristics of the microcontroller, a speaker can be driven through a capacitor directly from a pin. The value of the capacitor should be determined based on the frequencies of interest and the speaker load. Piezo speakers can be driven directly.

See also

Freqout, DTMFout, Sound2.