add Circuit Playground-O-Phonor code
This commit is contained in:
parent
40fcafb795
commit
31e1f97b4d
6 changed files with 8351 additions and 0 deletions
58
Circuit_Playground_O_Phonor/freq_basic.py
Executable file
58
Circuit_Playground_O_Phonor/freq_basic.py
Executable file
|
|
@ -0,0 +1,58 @@
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
import array
|
||||||
|
import audiobusio
|
||||||
|
|
||||||
|
#---| User Configuration |---------------------------
|
||||||
|
SAMPLERATE = 16000
|
||||||
|
SAMPLES = 1024
|
||||||
|
THRESHOLD = 100
|
||||||
|
MIN_DELTAS = 5
|
||||||
|
DELAY = 0.2
|
||||||
|
#----------------------------------------------------
|
||||||
|
|
||||||
|
# Create a buffer to record into
|
||||||
|
samples = array.array('H', [0] * SAMPLES)
|
||||||
|
|
||||||
|
# Setup the mic input
|
||||||
|
mic = audiobusio.PDMIn(board.MICROPHONE_CLOCK,
|
||||||
|
board.MICROPHONE_DATA,
|
||||||
|
sample_rate=SAMPLERATE,
|
||||||
|
bit_depth=16)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Get raw mic data
|
||||||
|
mic.record(samples, SAMPLES)
|
||||||
|
|
||||||
|
# Compute DC offset (mean) and threshold level
|
||||||
|
mean = int(sum(samples) / len(samples) + 0.5)
|
||||||
|
threshold = mean + THRESHOLD
|
||||||
|
|
||||||
|
# Compute deltas between mean crossing points
|
||||||
|
# (this bit by Dan Halbert)
|
||||||
|
deltas = []
|
||||||
|
last_xing_point = None
|
||||||
|
crossed_threshold = False
|
||||||
|
for i in range(SAMPLES-1):
|
||||||
|
sample = samples[i]
|
||||||
|
if sample > threshold:
|
||||||
|
crossed_threshold = True
|
||||||
|
if crossed_threshold and sample < mean:
|
||||||
|
if last_xing_point:
|
||||||
|
deltas.append(i - last_xing_point)
|
||||||
|
last_xing_point = i
|
||||||
|
crossed_threshold = False
|
||||||
|
|
||||||
|
# Try again if not enough deltas
|
||||||
|
if len(deltas) < MIN_DELTAS:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Average the deltas
|
||||||
|
mean = sum(deltas) / len(deltas)
|
||||||
|
|
||||||
|
# Compute frequency
|
||||||
|
freq = SAMPLERATE / mean
|
||||||
|
|
||||||
|
print("crossings: {} mean: {} freq: {} ".format(len(deltas), mean, freq))
|
||||||
|
|
||||||
|
time.sleep(DELAY)
|
||||||
84
Circuit_Playground_O_Phonor/freq_neopixel.py
Executable file
84
Circuit_Playground_O_Phonor/freq_neopixel.py
Executable file
|
|
@ -0,0 +1,84 @@
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
import array
|
||||||
|
import audiobusio
|
||||||
|
import simpleio
|
||||||
|
import neopixel
|
||||||
|
|
||||||
|
#---| User Configuration |---------------------------
|
||||||
|
SAMPLERATE = 16000
|
||||||
|
SAMPLES = 1024
|
||||||
|
THRESHOLD = 100
|
||||||
|
MIN_DELTAS = 5
|
||||||
|
DELAY = 0.2
|
||||||
|
|
||||||
|
FREQ_LOW = 520
|
||||||
|
FREQ_HIGH = 990
|
||||||
|
COLORS = (
|
||||||
|
(0xFF, 0x00, 0x00) , # pixel 0
|
||||||
|
(0xFF, 0x71, 0x00) , # pixel 1
|
||||||
|
(0xFF, 0xE2, 0x00) , # pixel 2
|
||||||
|
(0xAA, 0xFF, 0x00) , # pixel 3
|
||||||
|
(0x38, 0xFF, 0x00) , # pixel 4
|
||||||
|
(0x00, 0xFF, 0x38) , # pixel 5
|
||||||
|
(0x00, 0xFF, 0xA9) , # pixel 6
|
||||||
|
(0x00, 0xE2, 0xFF) , # pixel 7
|
||||||
|
(0x00, 0x71, 0xFF) , # pixel 8
|
||||||
|
(0x00, 0x00, 0xFF) , # pixel 9
|
||||||
|
)
|
||||||
|
#----------------------------------------------------
|
||||||
|
|
||||||
|
# Create a buffer to record into
|
||||||
|
samples = array.array('H', [0] * SAMPLES)
|
||||||
|
|
||||||
|
# Setup the mic input
|
||||||
|
mic = audiobusio.PDMIn(board.MICROPHONE_CLOCK,
|
||||||
|
board.MICROPHONE_DATA,
|
||||||
|
sample_rate=SAMPLERATE,
|
||||||
|
bit_depth=16)
|
||||||
|
|
||||||
|
# Setup NeoPixels
|
||||||
|
pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, auto_write=False)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Get raw mic data
|
||||||
|
mic.record(samples, SAMPLES)
|
||||||
|
|
||||||
|
# Compute DC offset (mean) and threshold level
|
||||||
|
mean = int(sum(samples) / len(samples) + 0.5)
|
||||||
|
threshold = mean + THRESHOLD
|
||||||
|
|
||||||
|
# Compute deltas between mean crossing points
|
||||||
|
# (this bit by Dan Halbert)
|
||||||
|
deltas = []
|
||||||
|
last_xing_point = None
|
||||||
|
crossed_threshold = False
|
||||||
|
for i in range(SAMPLES-1):
|
||||||
|
sample = samples[i]
|
||||||
|
if sample > threshold:
|
||||||
|
crossed_threshold = True
|
||||||
|
if crossed_threshold and sample < mean:
|
||||||
|
if last_xing_point:
|
||||||
|
deltas.append(i - last_xing_point)
|
||||||
|
last_xing_point = i
|
||||||
|
crossed_threshold = False
|
||||||
|
|
||||||
|
# Try again if not enough deltas
|
||||||
|
if len(deltas) < MIN_DELTAS:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Average the deltas
|
||||||
|
mean = sum(deltas) / len(deltas)
|
||||||
|
|
||||||
|
# Compute frequency
|
||||||
|
freq = SAMPLERATE / mean
|
||||||
|
|
||||||
|
print("crossings: {} mean: {} freq: {} ".format(len(deltas), mean, freq))
|
||||||
|
|
||||||
|
# Show on NeoPixels
|
||||||
|
pixels.fill(0)
|
||||||
|
pixel = round(simpleio.map_range(freq, FREQ_LOW, FREQ_HIGH, 0, 9))
|
||||||
|
pixels[pixel] = COLORS[pixel]
|
||||||
|
pixels.show()
|
||||||
|
|
||||||
|
time.sleep(DELAY)
|
||||||
7156
Circuit_Playground_O_Phonor/monoMMM_5_24.bdf
Normal file
7156
Circuit_Playground_O_Phonor/monoMMM_5_24.bdf
Normal file
File diff suppressed because it is too large
Load diff
862
Circuit_Playground_O_Phonor/monoMMM_5_90.bdf
Normal file
862
Circuit_Playground_O_Phonor/monoMMM_5_90.bdf
Normal file
|
|
@ -0,0 +1,862 @@
|
||||||
|
STARTFONT 2.1
|
||||||
|
COMMENT
|
||||||
|
COMMENT Converted from OpenType font "monoMMM_5.ttf" by "otf2bdf 3.0".
|
||||||
|
COMMENT
|
||||||
|
FONT -FreeType-monoMMM_5-Medium-R-Normal--125-900-100-100-P-695-ISO10646-1
|
||||||
|
SIZE 90 100 100
|
||||||
|
FONTBOUNDINGBOX 69 97 0 0
|
||||||
|
STARTPROPERTIES 19
|
||||||
|
FOUNDRY "FreeType"
|
||||||
|
FAMILY_NAME "monoMMM_5"
|
||||||
|
WEIGHT_NAME "Medium"
|
||||||
|
SLANT "R"
|
||||||
|
SETWIDTH_NAME "Normal"
|
||||||
|
ADD_STYLE_NAME ""
|
||||||
|
PIXEL_SIZE 125
|
||||||
|
POINT_SIZE 900
|
||||||
|
RESOLUTION_X 100
|
||||||
|
RESOLUTION_Y 100
|
||||||
|
SPACING "P"
|
||||||
|
AVERAGE_WIDTH 695
|
||||||
|
CHARSET_REGISTRY "ISO10646"
|
||||||
|
CHARSET_ENCODING "1"
|
||||||
|
FONT_ASCENT 126
|
||||||
|
FONT_DESCENT 27
|
||||||
|
COPYRIGHT "Marcelo Magalh綟s Macedo - 2009"
|
||||||
|
_OTF_FONTFILE "monoMMM_5.ttf"
|
||||||
|
_OTF_PSNAME "monoMMM5-Regular"
|
||||||
|
ENDPROPERTIES
|
||||||
|
CHARS 8
|
||||||
|
STARTCHAR 0041
|
||||||
|
ENCODING 65
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
000007FFFFFF000000
|
||||||
|
00003FFFFFFFE00000
|
||||||
|
0000FFFFFFFFFC0000
|
||||||
|
0003FFFFFFFFFE0000
|
||||||
|
000FFFFFFFFFFF8000
|
||||||
|
001FFFFFFFFFFFC000
|
||||||
|
003FFFFFFFFFFFF000
|
||||||
|
007FFFFFFFFFFFF800
|
||||||
|
00FFFFFFFFFFFFFC00
|
||||||
|
01FFFFFFFFFFFFFE00
|
||||||
|
03FFFFFFFFFFFFFE00
|
||||||
|
07FFFFFFFFFFFFFF00
|
||||||
|
0FFFFFFFFFFFFFFF80
|
||||||
|
0FFFFFFFFFFFFFFFC0
|
||||||
|
1FFFFE000003FFFFC0
|
||||||
|
1FFFF8000000FFFFE0
|
||||||
|
3FFFE00000003FFFE0
|
||||||
|
3FFFC00000001FFFF0
|
||||||
|
7FFF800000000FFFF0
|
||||||
|
7FFF8000000007FFF0
|
||||||
|
7FFF0000000003FFF8
|
||||||
|
7FFE0000000003FFF8
|
||||||
|
FFFE0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
ENDCHAR
|
||||||
|
STARTCHAR 0042
|
||||||
|
ENCODING 66
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
FFFFFFFFFFFE000000
|
||||||
|
FFFFFFFFFFFFE00000
|
||||||
|
FFFFFFFFFFFFF80000
|
||||||
|
FFFFFFFFFFFFFE0000
|
||||||
|
FFFFFFFFFFFFFF8000
|
||||||
|
FFFFFFFFFFFFFFC000
|
||||||
|
FFFFFFFFFFFFFFF000
|
||||||
|
FFFFFFFFFFFFFFF800
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFF00
|
||||||
|
FFFFFFFFFFFFFFFF80
|
||||||
|
FFFFFFFFFFFFFFFFC0
|
||||||
|
FFFC00000007FFFFC0
|
||||||
|
FFFC00000000FFFFE0
|
||||||
|
FFFC000000003FFFE0
|
||||||
|
FFFC000000001FFFF0
|
||||||
|
FFFC000000000FFFF0
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC0000000007FFF8
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000003FFF0
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC000000000FFFF0
|
||||||
|
FFFC000000001FFFE0
|
||||||
|
FFFC000000003FFFE0
|
||||||
|
FFFC00000000FFFFC0
|
||||||
|
FFFC00000007FFFF80
|
||||||
|
FFFFFFFFFFFFFFFF80
|
||||||
|
FFFFFFFFFFFFFFFF00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFF800
|
||||||
|
FFFFFFFFFFFFFFF000
|
||||||
|
FFFFFFFFFFFFFFC000
|
||||||
|
FFFFFFFFFFFFFFC000
|
||||||
|
FFFFFFFFFFFFFFF000
|
||||||
|
FFFFFFFFFFFFFFF800
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFF00
|
||||||
|
FFFFFFFFFFFFFFFF00
|
||||||
|
FFFC00000007FFFF80
|
||||||
|
FFFC00000000FFFFC0
|
||||||
|
FFFC000000007FFFE0
|
||||||
|
FFFC000000001FFFE0
|
||||||
|
FFFC000000000FFFE0
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC000000000FFFF0
|
||||||
|
FFFC000000001FFFF0
|
||||||
|
FFFC000000003FFFE0
|
||||||
|
FFFC00000000FFFFE0
|
||||||
|
FFFC00000007FFFFC0
|
||||||
|
FFFFFFFFFFFFFFFFC0
|
||||||
|
FFFFFFFFFFFFFFFF80
|
||||||
|
FFFFFFFFFFFFFFFF00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFF800
|
||||||
|
FFFFFFFFFFFFFFF000
|
||||||
|
FFFFFFFFFFFFFFC000
|
||||||
|
FFFFFFFFFFFFFF8000
|
||||||
|
FFFFFFFFFFFFFE0000
|
||||||
|
FFFFFFFFFFFFF80000
|
||||||
|
FFFFFFFFFFFFE00000
|
||||||
|
FFFFFFFFFFFE000000
|
||||||
|
ENDCHAR
|
||||||
|
STARTCHAR 0043
|
||||||
|
ENCODING 67
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
000003FFFFFE000000
|
||||||
|
00001FFFFFFFE00000
|
||||||
|
0000FFFFFFFFF80000
|
||||||
|
0003FFFFFFFFFE0000
|
||||||
|
0007FFFFFFFFFF8000
|
||||||
|
001FFFFFFFFFFFC000
|
||||||
|
003FFFFFFFFFFFE000
|
||||||
|
007FFFFFFFFFFFF000
|
||||||
|
00FFFFFFFFFFFFF800
|
||||||
|
01FFFFFFFFFFFFFC00
|
||||||
|
03FFFFFFFFFFFFFE00
|
||||||
|
07FFFFFFFFFFFFFF00
|
||||||
|
07FFFFFFFFFFFFFF80
|
||||||
|
0FFFFFFFFFFFFFFF80
|
||||||
|
1FFFFF000007FFFFC0
|
||||||
|
1FFFFC000000FFFFE0
|
||||||
|
3FFFF00000003FFFE0
|
||||||
|
3FFFE00000001FFFE0
|
||||||
|
7FFFC00000000FFFF0
|
||||||
|
7FFF8000000007FFF0
|
||||||
|
7FFF0000000007FFF0
|
||||||
|
7FFE0000000003FFF8
|
||||||
|
FFFE0000000003FFF8
|
||||||
|
FFFE0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFE0000000001FFF8
|
||||||
|
FFFE0000000003FFF8
|
||||||
|
7FFE0000000003FFF8
|
||||||
|
7FFF0000000007FFF0
|
||||||
|
7FFF8000000007FFF0
|
||||||
|
7FFFC00000000FFFF0
|
||||||
|
3FFFE00000001FFFE0
|
||||||
|
3FFFF00000003FFFE0
|
||||||
|
1FFFF8000000FFFFE0
|
||||||
|
1FFFFF000007FFFFC0
|
||||||
|
0FFFFFFFFFFFFFFF80
|
||||||
|
07FFFFFFFFFFFFFF80
|
||||||
|
07FFFFFFFFFFFFFF00
|
||||||
|
03FFFFFFFFFFFFFE00
|
||||||
|
01FFFFFFFFFFFFFC00
|
||||||
|
00FFFFFFFFFFFFF800
|
||||||
|
007FFFFFFFFFFFF000
|
||||||
|
003FFFFFFFFFFFE000
|
||||||
|
001FFFFFFFFFFFC000
|
||||||
|
0007FFFFFFFFFF8000
|
||||||
|
0003FFFFFFFFFE0000
|
||||||
|
0000FFFFFFFFF80000
|
||||||
|
00003FFFFFFFE00000
|
||||||
|
000003FFFFFE000000
|
||||||
|
ENDCHAR
|
||||||
|
STARTCHAR 0044
|
||||||
|
ENCODING 68
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
FFFFFFFFFFFE000000
|
||||||
|
FFFFFFFFFFFFE00000
|
||||||
|
FFFFFFFFFFFFF80000
|
||||||
|
FFFFFFFFFFFFFE0000
|
||||||
|
FFFFFFFFFFFFFF8000
|
||||||
|
FFFFFFFFFFFFFFC000
|
||||||
|
FFFFFFFFFFFFFFE000
|
||||||
|
FFFFFFFFFFFFFFF800
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFF00
|
||||||
|
FFFFFFFFFFFFFFFF80
|
||||||
|
FFFFFFFFFFFFFFFF80
|
||||||
|
FFFC00000007FFFFC0
|
||||||
|
FFFC00000000FFFFE0
|
||||||
|
FFFC000000003FFFE0
|
||||||
|
FFFC000000001FFFE0
|
||||||
|
FFFC000000000FFFF0
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000003FFF8
|
||||||
|
FFFC0000000007FFF8
|
||||||
|
FFFC0000000007FFF0
|
||||||
|
FFFC000000000FFFF0
|
||||||
|
FFFC000000001FFFF0
|
||||||
|
FFFC000000003FFFE0
|
||||||
|
FFFC00000000FFFFE0
|
||||||
|
FFFC00000007FFFFC0
|
||||||
|
FFFFFFFFFFFFFFFFC0
|
||||||
|
FFFFFFFFFFFFFFFF80
|
||||||
|
FFFFFFFFFFFFFFFF00
|
||||||
|
FFFFFFFFFFFFFFFE00
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFFC00
|
||||||
|
FFFFFFFFFFFFFFF800
|
||||||
|
FFFFFFFFFFFFFFE000
|
||||||
|
FFFFFFFFFFFFFFC000
|
||||||
|
FFFFFFFFFFFFFF8000
|
||||||
|
FFFFFFFFFFFFFE0000
|
||||||
|
FFFFFFFFFFFFF80000
|
||||||
|
FFFFFFFFFFFFE00000
|
||||||
|
FFFFFFFFFFFE000000
|
||||||
|
ENDCHAR
|
||||||
|
STARTCHAR 0045
|
||||||
|
ENCODING 69
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
ENDCHAR
|
||||||
|
STARTCHAR 0046
|
||||||
|
ENCODING 70
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFFFFFFFFFFFFFFF8
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFFFFFFFFFFFF0000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
ENDCHAR
|
||||||
|
STARTCHAR 0047
|
||||||
|
ENCODING 71
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
000003FFFFFE000000
|
||||||
|
00001FFFFFFFE00000
|
||||||
|
0000FFFFFFFFF80000
|
||||||
|
0003FFFFFFFFFE0000
|
||||||
|
0007FFFFFFFFFF8000
|
||||||
|
001FFFFFFFFFFFC000
|
||||||
|
003FFFFFFFFFFFE000
|
||||||
|
007FFFFFFFFFFFF000
|
||||||
|
00FFFFFFFFFFFFF800
|
||||||
|
01FFFFFFFFFFFFFC00
|
||||||
|
03FFFFFFFFFFFFFE00
|
||||||
|
07FFFFFFFFFFFFFF00
|
||||||
|
07FFFFFFFFFFFFFF80
|
||||||
|
0FFFFFFFFFFFFFFF80
|
||||||
|
1FFFFF000007FFFFC0
|
||||||
|
1FFFFC000000FFFFE0
|
||||||
|
3FFFF00000003FFFE0
|
||||||
|
3FFFE00000001FFFE0
|
||||||
|
7FFFC00000000FFFF0
|
||||||
|
7FFF8000000007FFF0
|
||||||
|
7FFF0000000007FFF0
|
||||||
|
7FFE0000000003FFF8
|
||||||
|
FFFE0000000003FFF8
|
||||||
|
FFFE0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC00000000000000
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000003FFFFFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFE0000000001FFF8
|
||||||
|
FFFE0000000003FFF8
|
||||||
|
7FFE0000000003FFF8
|
||||||
|
7FFF0000000007FFF0
|
||||||
|
7FFF8000000007FFF0
|
||||||
|
7FFFC00000000FFFF0
|
||||||
|
3FFFE00000001FFFE0
|
||||||
|
3FFFF00000003FFFE0
|
||||||
|
1FFFF8000000FFFFE0
|
||||||
|
1FFFFF000007FFFFC0
|
||||||
|
0FFFFFFFFFFFFFFF80
|
||||||
|
07FFFFFFFFFFFFFF80
|
||||||
|
07FFFFFFFFFFFFFF00
|
||||||
|
03FFFFFFFFFFFFFE00
|
||||||
|
01FFFFFFFFFFFFFC00
|
||||||
|
00FFFFFFFFFFFFF800
|
||||||
|
007FFFFFFFFFFFF000
|
||||||
|
003FFFFFFFFFFFE000
|
||||||
|
001FFFFFFFFFFFC000
|
||||||
|
0007FFFFFFFFFF8000
|
||||||
|
0003FFFFFFFFFE0000
|
||||||
|
0000FFFFFFFFF80000
|
||||||
|
00003FFFFFFFE00000
|
||||||
|
000003FFFFFE000000
|
||||||
|
ENDCHAR
|
||||||
|
STARTCHAR 004D
|
||||||
|
ENCODING 77
|
||||||
|
SWIDTH 664 0
|
||||||
|
DWIDTH 83 0
|
||||||
|
BBX 69 97 0 0
|
||||||
|
BITMAP
|
||||||
|
FFFC0000000001FFF8
|
||||||
|
FFFE0000000001FFF8
|
||||||
|
FFFF0000000003FFF8
|
||||||
|
FFFF0000000007FFF8
|
||||||
|
FFFF8000000007FFF8
|
||||||
|
FFFF800000000FFFF8
|
||||||
|
FFFFC00000000FFFF8
|
||||||
|
FFFFE00000001FFFF8
|
||||||
|
FFFFE00000003FFFF8
|
||||||
|
FFFFF00000003FFFF8
|
||||||
|
FFFFF00000007FFFF8
|
||||||
|
FFFFF80000007FFFF8
|
||||||
|
FFFFFC000000FFFFF8
|
||||||
|
FFFFFC000001FFFFF8
|
||||||
|
FFFFFE000001FFFFF8
|
||||||
|
FFFFFE000003FFFFF8
|
||||||
|
FFFFFF000003FFFFF8
|
||||||
|
FFFFFF800007FFFFF8
|
||||||
|
FFFFFF80000FFFFFF8
|
||||||
|
FFFFFFC0000FFFFFF8
|
||||||
|
FFFFFFC0001FFFFFF8
|
||||||
|
FFFFFFE0001FFFFFF8
|
||||||
|
FFFFFFF0003FFFFFF8
|
||||||
|
FFFFFFF0007FFFFFF8
|
||||||
|
FFFFFFF8007FFFFFF8
|
||||||
|
FFFFFFF800FFFFFFF8
|
||||||
|
FFFFFFFC00FFFFFFF8
|
||||||
|
FFFFFFFE01FFFEFFF8
|
||||||
|
FFFDFFFE03FFFEFFF8
|
||||||
|
FFFCFFFF03FFFCFFF8
|
||||||
|
FFFCFFFF07FFF8FFF8
|
||||||
|
FFFC7FFF87FFF8FFF8
|
||||||
|
FFFC7FFFCFFFF0FFF8
|
||||||
|
FFFC3FFFDFFFF0FFF8
|
||||||
|
FFFC1FFFFFFFE0FFF8
|
||||||
|
FFFC1FFFFFFFC0FFF8
|
||||||
|
FFFC0FFFFFFFC0FFF8
|
||||||
|
FFFC0FFFFFFF80FFF8
|
||||||
|
FFFC07FFFFFF80FFF8
|
||||||
|
FFFC03FFFFFF00FFF8
|
||||||
|
FFFC03FFFFFE00FFF8
|
||||||
|
FFFC01FFFFFE00FFF8
|
||||||
|
FFFC01FFFFFC00FFF8
|
||||||
|
FFFC00FFFFFC00FFF8
|
||||||
|
FFFC007FFFF800FFF8
|
||||||
|
FFFC007FFFF000FFF8
|
||||||
|
FFFC003FFFF000FFF8
|
||||||
|
FFFC003FFFE000FFF8
|
||||||
|
FFFC001FFFE000FFF8
|
||||||
|
FFFC000FFFC000FFF8
|
||||||
|
FFFC000FFF8000FFF8
|
||||||
|
FFFC0007FF8000FFF8
|
||||||
|
FFFC0007FF0000FFF8
|
||||||
|
FFFC0003FF0000FFF8
|
||||||
|
FFFC0001FE0000FFF8
|
||||||
|
FFFC0001FC0000FFF8
|
||||||
|
FFFC0000FC0000FFF8
|
||||||
|
FFFC0000F80000FFF8
|
||||||
|
FFFC0000700000FFF8
|
||||||
|
FFFC0000300000FFF8
|
||||||
|
FFFC0000200000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
FFFC0000000000FFF8
|
||||||
|
ENDCHAR
|
||||||
|
ENDFONT
|
||||||
75
Circuit_Playground_O_Phonor/notes_basic.py
Executable file
75
Circuit_Playground_O_Phonor/notes_basic.py
Executable file
|
|
@ -0,0 +1,75 @@
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
import array
|
||||||
|
import audiobusio
|
||||||
|
|
||||||
|
#---| User Configuration |---------------------------
|
||||||
|
SAMPLERATE = 16000
|
||||||
|
SAMPLES = 1024
|
||||||
|
THRESHOLD = 100
|
||||||
|
MIN_DELTAS = 5
|
||||||
|
DELAY = 0.2
|
||||||
|
|
||||||
|
# octave = 1 2 3 4 5 6 7 8
|
||||||
|
NOTES = { "C" : (33, 65, 131, 262, 523, 1047, 2093, 4186),
|
||||||
|
"D" : (37, 73, 147, 294, 587, 1175, 2349, 4699),
|
||||||
|
"E" : (41, 82, 165, 330, 659, 1319, 2637, 5274),
|
||||||
|
"F" : (44, 87, 175, 349, 698, 1397, 2794, 5588),
|
||||||
|
"G" : (49, 98, 196, 392, 785, 1568, 3136, 6272),
|
||||||
|
"A" : (55, 110, 220, 440, 880, 1760, 3520, 7040),
|
||||||
|
"B" : (62, 123, 247, 494, 988, 1976, 3951, 7902)}
|
||||||
|
#----------------------------------------------------
|
||||||
|
|
||||||
|
# Create a buffer to record into
|
||||||
|
samples = array.array('H', [0] * SAMPLES)
|
||||||
|
|
||||||
|
# Setup the mic input
|
||||||
|
mic = audiobusio.PDMIn(board.MICROPHONE_CLOCK,
|
||||||
|
board.MICROPHONE_DATA,
|
||||||
|
sample_rate=SAMPLERATE,
|
||||||
|
bit_depth=16)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Get raw mic data
|
||||||
|
mic.record(samples, SAMPLES)
|
||||||
|
|
||||||
|
# Compute DC offset (mean) and threshold level
|
||||||
|
mean = int(sum(samples) / len(samples) + 0.5)
|
||||||
|
threshold = mean + THRESHOLD
|
||||||
|
|
||||||
|
# Compute deltas between mean crossing points
|
||||||
|
# (this bit by Dan Halbert)
|
||||||
|
deltas = []
|
||||||
|
last_xing_point = None
|
||||||
|
crossed_threshold = False
|
||||||
|
for i in range(SAMPLES-1):
|
||||||
|
sample = samples[i]
|
||||||
|
if sample > threshold:
|
||||||
|
crossed_threshold = True
|
||||||
|
if crossed_threshold and sample < mean:
|
||||||
|
if last_xing_point:
|
||||||
|
deltas.append(i - last_xing_point)
|
||||||
|
last_xing_point = i
|
||||||
|
crossed_threshold = False
|
||||||
|
|
||||||
|
# Try again if not enough deltas
|
||||||
|
if len(deltas) < MIN_DELTAS:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Average the deltas
|
||||||
|
mean = sum(deltas) / len(deltas)
|
||||||
|
|
||||||
|
# Compute frequency
|
||||||
|
freq = SAMPLERATE / mean
|
||||||
|
|
||||||
|
print("crossings: {} mean: {} freq: {} ".format(len(deltas), mean, freq))
|
||||||
|
|
||||||
|
# Find corresponding note
|
||||||
|
for note in NOTES:
|
||||||
|
for octave, note_freq in enumerate(NOTES[note]):
|
||||||
|
if note_freq * 0.97 <= freq <= note_freq * 1.03:
|
||||||
|
print("-"*10)
|
||||||
|
print("NOTE = {}{}".format(note, octave + 1))
|
||||||
|
print("-"*10)
|
||||||
|
|
||||||
|
time.sleep(DELAY)
|
||||||
116
Circuit_Playground_O_Phonor/notes_tft.py
Executable file
116
Circuit_Playground_O_Phonor/notes_tft.py
Executable file
|
|
@ -0,0 +1,116 @@
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
import busio
|
||||||
|
import array
|
||||||
|
import audiobusio
|
||||||
|
import displayio
|
||||||
|
from adafruit_st7789 import ST7789
|
||||||
|
from adafruit_bitmap_font import bitmap_font
|
||||||
|
from adafruit_display_text import label
|
||||||
|
|
||||||
|
#---| User Configuration |---------------------------
|
||||||
|
SAMPLERATE = 16000
|
||||||
|
SAMPLES = 1024
|
||||||
|
THRESHOLD = 100
|
||||||
|
MIN_DELTAS = 5
|
||||||
|
DELAY = 0.2
|
||||||
|
|
||||||
|
NOTES = { "C" : (33, 65, 131, 262, 523, 1047, 2093, 4186),
|
||||||
|
"D" : (37, 73, 147, 294, 587, 1175, 2349, 4699),
|
||||||
|
"E" : (41, 82, 165, 330, 659, 1319, 2637, 5274),
|
||||||
|
"F" : (44, 87, 175, 349, 698, 1397, 2794, 5588),
|
||||||
|
"G" : (49, 98, 196, 392, 785, 1568, 3136, 6272),
|
||||||
|
"A" : (55, 110, 220, 440, 880, 1760, 3520, 7040),
|
||||||
|
"B" : (62, 123, 247, 494, 988, 1976, 3951, 7902)}
|
||||||
|
#----------------------------------------------------
|
||||||
|
|
||||||
|
# Create a buffer to record into
|
||||||
|
samples = array.array('H', [0] * SAMPLES)
|
||||||
|
|
||||||
|
# Setup the mic input
|
||||||
|
mic = audiobusio.PDMIn(board.MICROPHONE_CLOCK,
|
||||||
|
board.MICROPHONE_DATA,
|
||||||
|
sample_rate=SAMPLERATE,
|
||||||
|
bit_depth=16)
|
||||||
|
|
||||||
|
# Setup TFT Gizmo
|
||||||
|
displayio.release_displays()
|
||||||
|
|
||||||
|
spi = busio.SPI(board.SCL, MOSI=board.SDA)
|
||||||
|
tft_cs = board.RX
|
||||||
|
tft_dc = board.TX
|
||||||
|
tft_backlight = board.A3
|
||||||
|
|
||||||
|
display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs)
|
||||||
|
|
||||||
|
display = ST7789(display_bus, width=240, height=240, rowstart=80,
|
||||||
|
backlight_pin=tft_backlight, rotation=180)
|
||||||
|
|
||||||
|
# Setup the various text labels
|
||||||
|
note_font = bitmap_font.load_font("/monoMMM_5_90.bdf")
|
||||||
|
note_text = label.Label(note_font, text="A", color=0xFFFFFF)
|
||||||
|
note_text.x = 90
|
||||||
|
note_text.y = 100
|
||||||
|
|
||||||
|
oct_font = bitmap_font.load_font("/monoMMM_5_24.bdf")
|
||||||
|
oct_text = label.Label(oct_font, text=" ", color=0x00FFFF)
|
||||||
|
oct_text.x = 180
|
||||||
|
oct_text.y = 150
|
||||||
|
|
||||||
|
freq_font = oct_font
|
||||||
|
freq_text = label.Label(freq_font, text="f = 1234.5", color=0xFFFF00)
|
||||||
|
freq_text.x = 20
|
||||||
|
freq_text.y = 220
|
||||||
|
|
||||||
|
# Add everything to the display group
|
||||||
|
splash = displayio.Group()
|
||||||
|
splash.append(note_text)
|
||||||
|
splash.append(oct_text)
|
||||||
|
splash.append(freq_text)
|
||||||
|
display.show(splash)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Get raw mic data
|
||||||
|
mic.record(samples, SAMPLES)
|
||||||
|
|
||||||
|
# Compute DC offset (mean) and threshold level
|
||||||
|
mean = int(sum(samples) / len(samples) + 0.5)
|
||||||
|
threshold = mean + THRESHOLD
|
||||||
|
|
||||||
|
# Compute deltas between mean crossing points
|
||||||
|
# (this bit by Dan Halbert)
|
||||||
|
deltas = []
|
||||||
|
last_xing_point = None
|
||||||
|
crossed_threshold = False
|
||||||
|
for i in range(SAMPLES-1):
|
||||||
|
sample = samples[i]
|
||||||
|
if sample > threshold:
|
||||||
|
crossed_threshold = True
|
||||||
|
if crossed_threshold and sample < mean:
|
||||||
|
if last_xing_point:
|
||||||
|
deltas.append(i - last_xing_point)
|
||||||
|
last_xing_point = i
|
||||||
|
crossed_threshold = False
|
||||||
|
|
||||||
|
# Try again if not enough deltas
|
||||||
|
if len(deltas) < MIN_DELTAS:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Average the deltas
|
||||||
|
mean = sum(deltas) / len(deltas)
|
||||||
|
|
||||||
|
# Compute frequency
|
||||||
|
freq = SAMPLERATE / mean
|
||||||
|
|
||||||
|
print("crossings: {} mean: {} freq: {} ".format(len(deltas), mean, freq))
|
||||||
|
freq_text.text = "f = {:6.1f}".format(freq)
|
||||||
|
|
||||||
|
# Find corresponding note
|
||||||
|
for note in NOTES:
|
||||||
|
for octave, note_freq in enumerate(NOTES[note]):
|
||||||
|
if note_freq * 0.97 <= freq <= note_freq * 1.03:
|
||||||
|
print("Note: {}{}".format(note, octave + 1))
|
||||||
|
note_text.text = note
|
||||||
|
oct_text.text = "{}".format(octave + 1)
|
||||||
|
|
||||||
|
time.sleep(DELAY)
|
||||||
Loading…
Reference in a new issue