From 40d4aac7ba1f08b3ff667913bc198b0f634689c5 Mon Sep 17 00:00:00 2001 From: Oleksiy H Date: Tue, 10 Mar 2026 22:03:37 +0200 Subject: [PATCH] clean up and going public --- .gitignore | 14 +- Extra/BPM_Calc_Test/BPM_Calc_Test.ino | 36 - Extra/CVTest/CVTest.ino | 164 -- .../Velvet Screen.bdf | 2220 ----------------- .../VelvetScreen.bdf | 2220 ----------------- Extra/Fonts/Velvet Screen Bitmap Font/bdfconv | Bin 130544 -> 0 bytes .../velvet-screen.fon | Bin 3440 -> 0 bytes .../Velvet Screen Bitmap Font/velvetscreen.c | 21 - Extra/Fonts/theory.fon | Bin 18960 -> 0 bytes Extra/MIDITest/MIDITest.ino | 106 - LICENSE | 674 +++++ README.MD | 29 +- {Software => src}/Gravity/Gravity.ino | 0 {Software => src}/Gravity/Interactions.ino | 0 {Software => src}/Gravity/UI.ino | 0 15 files changed, 682 insertions(+), 4802 deletions(-) delete mode 100644 Extra/BPM_Calc_Test/BPM_Calc_Test.ino delete mode 100644 Extra/CVTest/CVTest.ino delete mode 100644 Extra/Fonts/Velvet Screen Bitmap Font/Velvet Screen.bdf delete mode 100644 Extra/Fonts/Velvet Screen Bitmap Font/VelvetScreen.bdf delete mode 100755 Extra/Fonts/Velvet Screen Bitmap Font/bdfconv delete mode 100644 Extra/Fonts/Velvet Screen Bitmap Font/velvet-screen.fon delete mode 100644 Extra/Fonts/Velvet Screen Bitmap Font/velvetscreen.c delete mode 100644 Extra/Fonts/theory.fon delete mode 100644 Extra/MIDITest/MIDITest.ino create mode 100644 LICENSE rename {Software => src}/Gravity/Gravity.ino (100%) rename {Software => src}/Gravity/Interactions.ino (100%) rename {Software => src}/Gravity/UI.ino (100%) diff --git a/.gitignore b/.gitignore index 01dc6de..c9746fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,5 @@ -software/.DS_Store .DS_Store -Hardware/gtoe/gtoe-backups -Hardware/gtoe/fp-info-cache -Hardware/gtoe/#auto_saved_files# README.MD.backup -Hardware/gtoe/_autosave-gtoe.kicad_pcb -Hardware/gtoe/gtoe.kicad_sch-bak -Hardware/gtoe/_autosave-gtoe.kicad_sch -Software/Gravity/build/arduino.avr.nano -Software/Gravity/build/arduino.avr.nano -Hardware/gtoe/midi-backups -Hardware/gtoe/midi-panel-backups -Hardware/gtoe/MIDI Board REV1.zip -Hardware/gtoe/MIDI Panel REV1.zip \ No newline at end of file +src/Gravity/build/ \ No newline at end of file diff --git a/Extra/BPM_Calc_Test/BPM_Calc_Test.ino b/Extra/BPM_Calc_Test/BPM_Calc_Test.ino deleted file mode 100644 index 6187e83..0000000 --- a/Extra/BPM_Calc_Test/BPM_Calc_Test.ino +++ /dev/null @@ -1,36 +0,0 @@ -// -//Abel: at 120bpm the actual output is 119.3bpm (47.7Hz). Does this depend on each individual power supply? Would it be possible to calibrate 120bpm to 48Hz? -// -// in theory it should be 600000 / (120 * 24) = 208.333(3). 20.8ms should result in 48.076923076923 -#include -#include - - -//uint16_t pulsePeriod; //useful range of 0 to 65,535 ((2^16) - 1). -UFixed<7, 9> bpm = 120; //0-255 - -#define PPQN 24 -#define PULSE_LENGTH 120 //1/10ms resolution. 12ms was failing at 1ms resolution at higher bpm. 60000/200/24 = 12.5 the max pulse length at 1ms resolution for 200bpm is 11ms -#define MAXBPM 200 //250 at 24ppqn with 5ms pulse will be 50/50 square wave -#define MINBPM 20 - -void setup() { - Serial.begin(19200); - int pulsePeriod = 600000 / (bpm.getInteger() * PPQN); - Serial.print("original uint16_t: "); - Serial.println(pulsePeriod); - float floatperiod = 600000 / ((float)bpm * (float)PPQN); - Serial.print("float: "); - Serial.println(floatperiod); - // fpperiod = 600000 / (bpm * PPQN); - //Serial.print("UQ8x8: "); - //Serial.println((float)fpperiod); - UFixed<7, 9> fpperiodplus = 600000 / (bpm * PPQN); - Serial.print("UQ7x9: "); - Serial.println((float)fpperiodplus); -} - -void loop() { - // put your main code here, to run repeatedly: - -} \ No newline at end of file diff --git a/Extra/CVTest/CVTest.ino b/Extra/CVTest/CVTest.ino deleted file mode 100644 index 31239ae..0000000 --- a/Extra/CVTest/CVTest.ino +++ /dev/null @@ -1,164 +0,0 @@ -#include -#include -#include -#include - -#define SCREEN_ADDRESS 0x3C - -// Rev 2 and 3 Config -#define ENC_BTN_PIN 14 -#define ENC_D1_PIN 17 -#define ENC_D2_PIN 4 -#define START_STOP_BTN_PIN 5 -#define SHIFT_BTN_PIN 12 -#define EXT_INPUT_PIN 2 //needs to be an interrupt pin -#define ANALOGUE_INPUT_1_PIN A7 -#define ANALOGUE_INPUT_2_PIN A6 -const byte outsPins[6] = { 7, 8, 10, 6, 9, 11 }; -const byte clockOutPin = 3; - -int CV1Calibration = 512; -int CV2Calibration = 512; -bool rotateScreen = false; - - -int a1Input = 0; -int a2Input = 0; - - -U8G2_SSD1306_128X64_NONAME_2_HW_I2C u8g2(U8G2_R2, SCL, SDA, U8X8_PIN_NONE); - -//Font -const uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") = - "\64\0\2\2\3\3\2\3\4\5\5\0\0\5\0\5\0\0\221\0\0\1\230 \4\200\134%\11\255tT" - "R\271RI(\6\252\334T\31)\7\252\134bJ\12+\7\233\345\322J\0,\5\221T\4-\5\213" - "f\6.\5\211T\2/\6\244\354c\33\60\10\254\354T\64\223\2\61\7\353\354\222\254\6\62\11\254l" - "\66J*\217\0\63\11\254l\66J\32\215\4\64\10\254l\242\34\272\0\65\11\254l\206\336h$\0\66" - "\11\254\354T^\61)\0\67\10\254lF\216u\4\70\11\254\354TL*&\5\71\11\254\354TL;" - ")\0:\6\231UR\0A\10\254\354T\34S\6B\11\254lV\34)\216\4C\11\254\354T\324\61" - ")\0D\10\254lV\64G\2E\10\254l\206\36z\4F\10\254l\206^\71\3G\11\254\354TN" - "\63)\0H\10\254l\242\34S\6I\6\251T\206\0J\10\254\354k\231\24\0K\11\254l\242J\62" - "\225\1L\7\254lr{\4M\11\255t\362ZI\353\0N\11\255t\362TI\356\0O\10\254\354T" - "\64\223\2P\11\254lV\34)g\0Q\10\254\354T\264b\12R\10\254lV\34\251\31S\11\254\354" - "FF\32\215\4T\7\253dVl\1U\10\254l\242\63)\0V\11\255t\262Ne\312\21W\12\255" - "t\262J*\251.\0X\11\254l\242L*\312\0Y\12\255tr\252\63\312(\2Z\7\253df*" - "\7p\10\255\364V\266\323\2q\7\255\364\216\257\5r\10\253d\242\32*\2t\6\255t\376#w\11" - "\255\364V\245FN\13x\6\233dR\7\0\0\0\4\377\377\0"; - -const uint8_t fabryka[450] U8G2_FONT_SECTION("fabryka") = - "\17\0\4\4\4\5\2\1\6\17\30\1\0\30\0\0\0\1K\0\0\1\245%'\17\37\313\330R#&" - "\32!F\14\211I\310\24!\65\204(MF\21)Cd\304\10\62b\14\215\60Vb\334\20\0/\15" - "\376\36\357\244$\351\77\35;\26\0\60$\216\37\17*\65,\210\35\264\335\61T\42\14\11\61#\306\210" - " \23\242\220\235\63h\303c$\330\250B\3\0\61\27\216\37\27\311\202\346\216\221\30Ed\324\230Q\202" - "\306\316\377\263\26\35\62\33\216\37\17*\65,\210\35\64\70v\246\344\316h\203\252$\321\261s\373\340\1" - "\3\63\35\216\37\17*\65,\210\35\64\70v(IZZKv\266\6\15\36#\301F\25\32\0\64\37" - "\216\37\227\240\331\20\32Bj\310\260\21\304F\214\33\61n\304\70\203\366\360\301\203\20m\347\3\65\32\216" - "\37\7\213.\306\316'\205\326\60!E\226\354\334\32 (CV1Calibration)) { - a1Input = map(analogRead(ANALOGUE_INPUT_1_PIN), CV1Calibration, 1023, 512, 1023); - } else if (analogRead(ANALOGUE_INPUT_1_PIN) < (CV1Calibration)) { - a1Input = map(analogRead(ANALOGUE_INPUT_1_PIN), 0, CV1Calibration, 0, 512); - } else { - a1Input = 512; - } - - if (analogRead(ANALOGUE_INPUT_2_PIN) > (CV1Calibration)) { - a2Input = map(analogRead(ANALOGUE_INPUT_2_PIN), CV1Calibration, 1023, 512, 1023); - } else if (analogRead(ANALOGUE_INPUT_2_PIN) < (CV1Calibration)) { - a2Input = map(analogRead(ANALOGUE_INPUT_2_PIN), 0, CV1Calibration, 0, 512); - } else { - a2Input = 512; - } -} - -void updateScreen() { - - u8g2.firstPage(); - do { - u8g2.setFont(velvetscreen); - String valueStr = String(analogRead(ANALOGUE_INPUT_1_PIN)); - char valueChar[16]; - - u8g2.drawStr(10, 8, "CV1:"); - valueStr.toCharArray(valueChar, 16); - u8g2.drawStr(32, 8, valueChar); - - u8g2.drawStr(64, 8, "CAL:"); - valueStr = String(a1Input); - valueStr.toCharArray(valueChar, 16); - u8g2.drawStr(86, 8, valueChar); - - u8g2.drawStr(10, 16, "MAP:"); - valueStr = String(map(a1Input, 5, 1024, -5, 6)); - valueStr.toCharArray(valueChar, 16); - u8g2.drawStr(32, 16, valueChar); - - - u8g2.drawStr(10, 40, "CV2:"); - valueStr = String(analogRead(ANALOGUE_INPUT_2_PIN)); - valueStr.toCharArray(valueChar, 16); - u8g2.drawStr(32, 40, valueChar); - - u8g2.drawStr(64, 40, "CAL:"); - valueStr = String(a2Input); - valueStr.toCharArray(valueChar, 16); - u8g2.drawStr(86, 40, valueChar); - - u8g2.drawStr(10, 48, "MAP:"); - valueStr = String(map(a2Input, 5, 1024, -5, 6)); - valueStr.toCharArray(valueChar, 16); - u8g2.drawStr(32, 48, valueChar); - - - if (!digitalRead(SHIFT_BTN_PIN)) { - calibrateCVs(); - u8g2.drawStr(40, 64, "CALIBRATING"); - } - - } while ( u8g2.nextPage() ); -} - -void calibrateCVs() { - CV1Calibration = analogRead(ANALOGUE_INPUT_1_PIN); - CV2Calibration = analogRead(ANALOGUE_INPUT_2_PIN); - //CV1Calibration = 255 - (analogRead(ANALOGUE_INPUT_1_PIN) / 2); - //CV2Calibration = 255 - (analogRead(ANALOGUE_INPUT_2_PIN) / 2); -} - -void checkScreenRotation() { - if (rotateScreen) { - u8g2.setDisplayRotation(U8G2_R0); - } else { - u8g2.setDisplayRotation(U8G2_R2); - } -} \ No newline at end of file diff --git a/Extra/Fonts/Velvet Screen Bitmap Font/Velvet Screen.bdf b/Extra/Fonts/Velvet Screen Bitmap Font/Velvet Screen.bdf deleted file mode 100644 index 672d514..0000000 --- a/Extra/Fonts/Velvet Screen Bitmap Font/Velvet Screen.bdf +++ /dev/null @@ -1,2220 +0,0 @@ -STARTFONT 2.1 -COMMENT Exported by Fony v1.4.7 -FONT Velvet Screen -SIZE 5 96 96 -FONTBOUNDINGBOX 6 4 0 0 -STARTPROPERTIES 6 -COPYRIGHT "Created with Fony 1.4.7" -RESOLUTION_X 96 -RESOLUTION_Y 96 -FONT_ASCENT 5 -FONT_DESCENT 0 -DEFAULT_CHAR 0 -ENDPROPERTIES -CHARS 256 -STARTCHAR 000 -ENCODING 0 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 001 -ENCODING 1 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 002 -ENCODING 2 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 003 -ENCODING 3 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 004 -ENCODING 4 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 005 -ENCODING 5 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 006 -ENCODING 6 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 007 -ENCODING 7 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 008 -ENCODING 8 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 009 -ENCODING 9 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 010 -ENCODING 10 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 011 -ENCODING 11 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 012 -ENCODING 12 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 013 -ENCODING 13 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 014 -ENCODING 14 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 015 -ENCODING 15 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 016 -ENCODING 16 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 017 -ENCODING 17 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 018 -ENCODING 18 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 019 -ENCODING 19 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 020 -ENCODING 20 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 021 -ENCODING 21 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 022 -ENCODING 22 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 023 -ENCODING 23 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 024 -ENCODING 24 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 025 -ENCODING 25 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 026 -ENCODING 26 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 027 -ENCODING 27 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 028 -ENCODING 28 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 029 -ENCODING 29 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 030 -ENCODING 30 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 031 -ENCODING 31 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 032 -ENCODING 32 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 033 -ENCODING 33 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 5 0 0 -BITMAP -80 -80 -80 -00 -80 -ENDCHAR -STARTCHAR 034 -ENCODING 34 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 2 0 3 -BITMAP -A0 -A0 -ENDCHAR -STARTCHAR 035 -ENCODING 35 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -50 -F8 -50 -F8 -50 -ENDCHAR -STARTCHAR 036 -ENCODING 36 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -A0 -70 -28 -70 -ENDCHAR -STARTCHAR 037 -ENCODING 37 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -D0 -D0 -20 -58 -58 -ENDCHAR -STARTCHAR 038 -ENCODING 38 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -60 -40 -A8 -90 -68 -ENDCHAR -STARTCHAR 039 -ENCODING 39 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 2 0 3 -BITMAP -80 -80 -ENDCHAR -STARTCHAR 040 -ENCODING 40 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -40 -80 -80 -80 -40 -ENDCHAR -STARTCHAR 041 -ENCODING 41 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -80 -40 -40 -40 -80 -ENDCHAR -STARTCHAR 042 -ENCODING 42 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -20 -A8 -70 -A8 -20 -ENDCHAR -STARTCHAR 043 -ENCODING 43 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 1 -BITMAP -40 -E0 -40 -ENDCHAR -STARTCHAR 044 -ENCODING 44 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 2 0 0 -BITMAP -80 -80 -ENDCHAR -STARTCHAR 045 -ENCODING 45 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 1 0 2 -BITMAP -E0 -ENDCHAR -STARTCHAR 046 -ENCODING 46 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 1 0 0 -BITMAP -80 -ENDCHAR -STARTCHAR 047 -ENCODING 47 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 4 0 0 -BITMAP -10 -20 -40 -80 -ENDCHAR -STARTCHAR 048 -ENCODING 48 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -90 -90 -60 -ENDCHAR -STARTCHAR 049 -ENCODING 49 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 3 5 1 0 -BITMAP -40 -C0 -40 -40 -E0 -ENDCHAR -STARTCHAR 050 -ENCODING 50 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -10 -60 -80 -F0 -ENDCHAR -STARTCHAR 051 -ENCODING 51 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -10 -60 -10 -E0 -ENDCHAR -STARTCHAR 052 -ENCODING 52 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -F0 -10 -10 -ENDCHAR -STARTCHAR 053 -ENCODING 53 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -80 -E0 -10 -E0 -ENDCHAR -STARTCHAR 054 -ENCODING 54 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -80 -E0 -90 -60 -ENDCHAR -STARTCHAR 055 -ENCODING 55 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -10 -20 -40 -40 -ENDCHAR -STARTCHAR 056 -ENCODING 56 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -60 -90 -60 -ENDCHAR -STARTCHAR 057 -ENCODING 57 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -70 -10 -60 -ENDCHAR -STARTCHAR 058 -ENCODING 58 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 3 0 1 -BITMAP -80 -00 -80 -ENDCHAR -STARTCHAR 059 -ENCODING 59 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 4 0 0 -BITMAP -80 -00 -80 -80 -ENDCHAR -STARTCHAR 060 -ENCODING 60 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -20 -40 -80 -40 -20 -ENDCHAR -STARTCHAR 061 -ENCODING 61 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 1 -BITMAP -E0 -00 -E0 -ENDCHAR -STARTCHAR 062 -ENCODING 62 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -80 -40 -20 -40 -80 -ENDCHAR -STARTCHAR 063 -ENCODING 63 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -10 -60 -00 -40 -ENDCHAR -STARTCHAR 064 -ENCODING 64 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -A8 -B8 -80 -70 -ENDCHAR -STARTCHAR 065 -ENCODING 65 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -F0 -90 -90 -ENDCHAR -STARTCHAR 066 -ENCODING 66 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -E0 -90 -E0 -ENDCHAR -STARTCHAR 067 -ENCODING 67 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -80 -90 -60 -ENDCHAR -STARTCHAR 068 -ENCODING 68 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -90 -90 -E0 -ENDCHAR -STARTCHAR 069 -ENCODING 69 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -80 -F0 -80 -F0 -ENDCHAR -STARTCHAR 070 -ENCODING 70 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -80 -E0 -80 -80 -ENDCHAR -STARTCHAR 071 -ENCODING 71 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -80 -B0 -90 -60 -ENDCHAR -STARTCHAR 072 -ENCODING 72 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -F0 -90 -90 -ENDCHAR -STARTCHAR 073 -ENCODING 73 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 5 0 0 -BITMAP -80 -80 -80 -80 -80 -ENDCHAR -STARTCHAR 074 -ENCODING 74 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -10 -10 -10 -90 -60 -ENDCHAR -STARTCHAR 075 -ENCODING 75 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -A0 -C0 -A0 -90 -ENDCHAR -STARTCHAR 076 -ENCODING 76 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -80 -80 -80 -80 -F0 -ENDCHAR -STARTCHAR 077 -ENCODING 77 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -D8 -A8 -88 -88 -ENDCHAR -STARTCHAR 078 -ENCODING 78 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -C8 -A8 -98 -88 -ENDCHAR -STARTCHAR 079 -ENCODING 79 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -90 -90 -60 -ENDCHAR -STARTCHAR 080 -ENCODING 80 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -E0 -80 -80 -ENDCHAR -STARTCHAR 081 -ENCODING 81 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -90 -A0 -50 -ENDCHAR -STARTCHAR 082 -ENCODING 82 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -E0 -A0 -90 -ENDCHAR -STARTCHAR 083 -ENCODING 83 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -70 -80 -60 -10 -E0 -ENDCHAR -STARTCHAR 084 -ENCODING 84 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -E0 -40 -40 -40 -40 -ENDCHAR -STARTCHAR 085 -ENCODING 85 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -90 -90 -60 -ENDCHAR -STARTCHAR 086 -ENCODING 86 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -88 -50 -50 -20 -ENDCHAR -STARTCHAR 087 -ENCODING 87 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -A8 -A8 -A8 -50 -ENDCHAR -STARTCHAR 088 -ENCODING 88 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -60 -90 -90 -ENDCHAR -STARTCHAR 089 -ENCODING 89 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -50 -20 -20 -20 -ENDCHAR -STARTCHAR 090 -ENCODING 90 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -E0 -20 -40 -80 -E0 -ENDCHAR -STARTCHAR 091 -ENCODING 91 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -C0 -80 -80 -80 -C0 -ENDCHAR -STARTCHAR 092 -ENCODING 92 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 4 0 0 -BITMAP -80 -40 -20 -10 -ENDCHAR -STARTCHAR 093 -ENCODING 93 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -C0 -40 -40 -40 -C0 -ENDCHAR -STARTCHAR 094 -ENCODING 94 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 2 0 3 -BITMAP -40 -A0 -ENDCHAR -STARTCHAR 095 -ENCODING 95 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 1 0 0 -BITMAP -F0 -ENDCHAR -STARTCHAR 096 -ENCODING 96 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 2 0 3 -BITMAP -80 -40 -ENDCHAR -STARTCHAR 097 -ENCODING 97 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 098 -ENCODING 98 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 099 -ENCODING 99 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 100 -ENCODING 100 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 101 -ENCODING 101 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 102 -ENCODING 102 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 103 -ENCODING 103 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 104 -ENCODING 104 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 105 -ENCODING 105 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 106 -ENCODING 106 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 107 -ENCODING 107 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 108 -ENCODING 108 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 109 -ENCODING 109 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 110 -ENCODING 110 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 111 -ENCODING 111 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 3 3 1 1 -BITMAP -E0 -A0 -E0 -ENDCHAR -STARTCHAR 112 -ENCODING 112 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -88 -88 -88 -70 -ENDCHAR -STARTCHAR 113 -ENCODING 113 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -F8 -F8 -F8 -70 -ENDCHAR -STARTCHAR 114 -ENCODING 114 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -80 -C0 -E0 -C0 -80 -ENDCHAR -STARTCHAR 115 -ENCODING 115 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -88 -88 -88 -F8 -ENDCHAR -STARTCHAR 116 -ENCODING 116 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -F8 -F8 -F8 -F8 -ENDCHAR -STARTCHAR 117 -ENCODING 117 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -88 -A8 -88 -F8 -ENDCHAR -STARTCHAR 118 -ENCODING 118 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 1 1 2 2 -BITMAP -80 -ENDCHAR -STARTCHAR 119 -ENCODING 119 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -A8 -B8 -88 -70 -ENDCHAR -STARTCHAR 120 -ENCODING 120 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 0 -BITMAP -A0 -40 -A0 -ENDCHAR -STARTCHAR 121 -ENCODING 121 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 122 -ENCODING 122 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 123 -ENCODING 123 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -60 -40 -C0 -40 -60 -ENDCHAR -STARTCHAR 124 -ENCODING 124 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 5 0 0 -BITMAP -80 -80 -80 -80 -80 -ENDCHAR -STARTCHAR 125 -ENCODING 125 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -C0 -40 -60 -40 -C0 -ENDCHAR -STARTCHAR 126 -ENCODING 126 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 3 0 1 -BITMAP -40 -A8 -10 -ENDCHAR -STARTCHAR 127 -ENCODING 127 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 128 -ENCODING 128 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 129 -ENCODING 129 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 130 -ENCODING 130 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 131 -ENCODING 131 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 132 -ENCODING 132 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 133 -ENCODING 133 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 134 -ENCODING 134 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 135 -ENCODING 135 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 136 -ENCODING 136 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 137 -ENCODING 137 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 138 -ENCODING 138 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 139 -ENCODING 139 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 140 -ENCODING 140 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 141 -ENCODING 141 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 142 -ENCODING 142 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 143 -ENCODING 143 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 144 -ENCODING 144 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 145 -ENCODING 145 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 146 -ENCODING 146 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 147 -ENCODING 147 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 148 -ENCODING 148 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 149 -ENCODING 149 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 150 -ENCODING 150 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 151 -ENCODING 151 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 152 -ENCODING 152 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 153 -ENCODING 153 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 154 -ENCODING 154 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 155 -ENCODING 155 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 156 -ENCODING 156 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 157 -ENCODING 157 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 158 -ENCODING 158 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 159 -ENCODING 159 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 160 -ENCODING 160 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 161 -ENCODING 161 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 162 -ENCODING 162 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -20 -70 -80 -70 -20 -ENDCHAR -STARTCHAR 163 -ENCODING 163 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -20 -40 -E0 -40 -F0 -ENDCHAR -STARTCHAR 164 -ENCODING 164 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -70 -50 -70 -88 -ENDCHAR -STARTCHAR 165 -ENCODING 165 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -50 -20 -F8 -20 -ENDCHAR -STARTCHAR 166 -ENCODING 166 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 167 -ENCODING 167 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 4 5 0 0 -BITMAP -70 -E0 -90 -70 -E0 -ENDCHAR -STARTCHAR 168 -ENCODING 168 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 169 -ENCODING 169 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -B8 -C8 -B8 -70 -ENDCHAR -STARTCHAR 170 -ENCODING 170 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 171 -ENCODING 171 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -28 -50 -A0 -50 -28 -ENDCHAR -STARTCHAR 172 -ENCODING 172 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 173 -ENCODING 173 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 174 -ENCODING 174 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 175 -ENCODING 175 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 176 -ENCODING 176 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 2 -BITMAP -40 -A0 -40 -ENDCHAR -STARTCHAR 177 -ENCODING 177 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 4 0 0 -BITMAP -40 -E0 -40 -E0 -ENDCHAR -STARTCHAR 178 -ENCODING 178 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 179 -ENCODING 179 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 180 -ENCODING 180 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 2 0 3 -BITMAP -40 -80 -ENDCHAR -STARTCHAR 181 -ENCODING 181 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -90 -90 -F0 -98 -80 -ENDCHAR -STARTCHAR 182 -ENCODING 182 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -D0 -50 -50 -50 -ENDCHAR -STARTCHAR 183 -ENCODING 183 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 184 -ENCODING 184 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 185 -ENCODING 185 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 186 -ENCODING 186 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 187 -ENCODING 187 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -A0 -50 -28 -50 -A0 -ENDCHAR -STARTCHAR 188 -ENCODING 188 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 189 -ENCODING 189 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 190 -ENCODING 190 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 191 -ENCODING 191 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -20 -00 -60 -80 -70 -ENDCHAR -STARTCHAR 192 -ENCODING 192 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 193 -ENCODING 193 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 194 -ENCODING 194 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 195 -ENCODING 195 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 196 -ENCODING 196 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 197 -ENCODING 197 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 198 -ENCODING 198 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -38 -50 -58 -70 -98 -ENDCHAR -STARTCHAR 199 -ENCODING 199 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 200 -ENCODING 200 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 201 -ENCODING 201 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 202 -ENCODING 202 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 203 -ENCODING 203 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 204 -ENCODING 204 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 205 -ENCODING 205 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 206 -ENCODING 206 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 207 -ENCODING 207 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 208 -ENCODING 208 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 209 -ENCODING 209 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 210 -ENCODING 210 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 211 -ENCODING 211 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 212 -ENCODING 212 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 213 -ENCODING 213 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 214 -ENCODING 214 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 215 -ENCODING 215 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 216 -ENCODING 216 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 217 -ENCODING 217 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 218 -ENCODING 218 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 219 -ENCODING 219 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 220 -ENCODING 220 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 221 -ENCODING 221 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 222 -ENCODING 222 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 223 -ENCODING 223 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 224 -ENCODING 224 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 225 -ENCODING 225 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 226 -ENCODING 226 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 227 -ENCODING 227 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 228 -ENCODING 228 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 229 -ENCODING 229 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 230 -ENCODING 230 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 231 -ENCODING 231 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 232 -ENCODING 232 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 233 -ENCODING 233 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 234 -ENCODING 234 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 235 -ENCODING 235 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 236 -ENCODING 236 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 237 -ENCODING 237 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 238 -ENCODING 238 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 239 -ENCODING 239 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 240 -ENCODING 240 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 241 -ENCODING 241 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 242 -ENCODING 242 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 243 -ENCODING 243 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 244 -ENCODING 244 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 245 -ENCODING 245 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 246 -ENCODING 246 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 247 -ENCODING 247 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 248 -ENCODING 248 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 249 -ENCODING 249 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 250 -ENCODING 250 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 251 -ENCODING 251 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 252 -ENCODING 252 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 253 -ENCODING 253 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 254 -ENCODING 254 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 255 -ENCODING 255 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -ENDFONT diff --git a/Extra/Fonts/Velvet Screen Bitmap Font/VelvetScreen.bdf b/Extra/Fonts/Velvet Screen Bitmap Font/VelvetScreen.bdf deleted file mode 100644 index 672d514..0000000 --- a/Extra/Fonts/Velvet Screen Bitmap Font/VelvetScreen.bdf +++ /dev/null @@ -1,2220 +0,0 @@ -STARTFONT 2.1 -COMMENT Exported by Fony v1.4.7 -FONT Velvet Screen -SIZE 5 96 96 -FONTBOUNDINGBOX 6 4 0 0 -STARTPROPERTIES 6 -COPYRIGHT "Created with Fony 1.4.7" -RESOLUTION_X 96 -RESOLUTION_Y 96 -FONT_ASCENT 5 -FONT_DESCENT 0 -DEFAULT_CHAR 0 -ENDPROPERTIES -CHARS 256 -STARTCHAR 000 -ENCODING 0 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 001 -ENCODING 1 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 002 -ENCODING 2 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 003 -ENCODING 3 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 004 -ENCODING 4 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 005 -ENCODING 5 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 006 -ENCODING 6 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 007 -ENCODING 7 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 008 -ENCODING 8 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 009 -ENCODING 9 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 010 -ENCODING 10 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 011 -ENCODING 11 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 012 -ENCODING 12 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 013 -ENCODING 13 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 014 -ENCODING 14 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 015 -ENCODING 15 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 016 -ENCODING 16 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 017 -ENCODING 17 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 018 -ENCODING 18 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 019 -ENCODING 19 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 020 -ENCODING 20 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 021 -ENCODING 21 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 022 -ENCODING 22 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 023 -ENCODING 23 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 024 -ENCODING 24 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 025 -ENCODING 25 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 026 -ENCODING 26 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 027 -ENCODING 27 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 028 -ENCODING 28 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 029 -ENCODING 29 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 030 -ENCODING 30 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 031 -ENCODING 31 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 032 -ENCODING 32 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 033 -ENCODING 33 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 5 0 0 -BITMAP -80 -80 -80 -00 -80 -ENDCHAR -STARTCHAR 034 -ENCODING 34 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 2 0 3 -BITMAP -A0 -A0 -ENDCHAR -STARTCHAR 035 -ENCODING 35 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -50 -F8 -50 -F8 -50 -ENDCHAR -STARTCHAR 036 -ENCODING 36 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -A0 -70 -28 -70 -ENDCHAR -STARTCHAR 037 -ENCODING 37 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -D0 -D0 -20 -58 -58 -ENDCHAR -STARTCHAR 038 -ENCODING 38 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -60 -40 -A8 -90 -68 -ENDCHAR -STARTCHAR 039 -ENCODING 39 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 2 0 3 -BITMAP -80 -80 -ENDCHAR -STARTCHAR 040 -ENCODING 40 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -40 -80 -80 -80 -40 -ENDCHAR -STARTCHAR 041 -ENCODING 41 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -80 -40 -40 -40 -80 -ENDCHAR -STARTCHAR 042 -ENCODING 42 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -20 -A8 -70 -A8 -20 -ENDCHAR -STARTCHAR 043 -ENCODING 43 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 1 -BITMAP -40 -E0 -40 -ENDCHAR -STARTCHAR 044 -ENCODING 44 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 2 0 0 -BITMAP -80 -80 -ENDCHAR -STARTCHAR 045 -ENCODING 45 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 1 0 2 -BITMAP -E0 -ENDCHAR -STARTCHAR 046 -ENCODING 46 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 1 0 0 -BITMAP -80 -ENDCHAR -STARTCHAR 047 -ENCODING 47 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 4 0 0 -BITMAP -10 -20 -40 -80 -ENDCHAR -STARTCHAR 048 -ENCODING 48 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -90 -90 -60 -ENDCHAR -STARTCHAR 049 -ENCODING 49 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 3 5 1 0 -BITMAP -40 -C0 -40 -40 -E0 -ENDCHAR -STARTCHAR 050 -ENCODING 50 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -10 -60 -80 -F0 -ENDCHAR -STARTCHAR 051 -ENCODING 51 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -10 -60 -10 -E0 -ENDCHAR -STARTCHAR 052 -ENCODING 52 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -F0 -10 -10 -ENDCHAR -STARTCHAR 053 -ENCODING 53 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -80 -E0 -10 -E0 -ENDCHAR -STARTCHAR 054 -ENCODING 54 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -80 -E0 -90 -60 -ENDCHAR -STARTCHAR 055 -ENCODING 55 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -10 -20 -40 -40 -ENDCHAR -STARTCHAR 056 -ENCODING 56 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -60 -90 -60 -ENDCHAR -STARTCHAR 057 -ENCODING 57 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -70 -10 -60 -ENDCHAR -STARTCHAR 058 -ENCODING 58 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 3 0 1 -BITMAP -80 -00 -80 -ENDCHAR -STARTCHAR 059 -ENCODING 59 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 4 0 0 -BITMAP -80 -00 -80 -80 -ENDCHAR -STARTCHAR 060 -ENCODING 60 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -20 -40 -80 -40 -20 -ENDCHAR -STARTCHAR 061 -ENCODING 61 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 1 -BITMAP -E0 -00 -E0 -ENDCHAR -STARTCHAR 062 -ENCODING 62 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -80 -40 -20 -40 -80 -ENDCHAR -STARTCHAR 063 -ENCODING 63 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -10 -60 -00 -40 -ENDCHAR -STARTCHAR 064 -ENCODING 64 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -A8 -B8 -80 -70 -ENDCHAR -STARTCHAR 065 -ENCODING 65 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -F0 -90 -90 -ENDCHAR -STARTCHAR 066 -ENCODING 66 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -E0 -90 -E0 -ENDCHAR -STARTCHAR 067 -ENCODING 67 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -80 -90 -60 -ENDCHAR -STARTCHAR 068 -ENCODING 68 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -90 -90 -E0 -ENDCHAR -STARTCHAR 069 -ENCODING 69 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -80 -F0 -80 -F0 -ENDCHAR -STARTCHAR 070 -ENCODING 70 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -F0 -80 -E0 -80 -80 -ENDCHAR -STARTCHAR 071 -ENCODING 71 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -80 -B0 -90 -60 -ENDCHAR -STARTCHAR 072 -ENCODING 72 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -F0 -90 -90 -ENDCHAR -STARTCHAR 073 -ENCODING 73 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 5 0 0 -BITMAP -80 -80 -80 -80 -80 -ENDCHAR -STARTCHAR 074 -ENCODING 74 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -10 -10 -10 -90 -60 -ENDCHAR -STARTCHAR 075 -ENCODING 75 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -A0 -C0 -A0 -90 -ENDCHAR -STARTCHAR 076 -ENCODING 76 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -80 -80 -80 -80 -F0 -ENDCHAR -STARTCHAR 077 -ENCODING 77 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -D8 -A8 -88 -88 -ENDCHAR -STARTCHAR 078 -ENCODING 78 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -C8 -A8 -98 -88 -ENDCHAR -STARTCHAR 079 -ENCODING 79 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -90 -90 -60 -ENDCHAR -STARTCHAR 080 -ENCODING 80 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -E0 -80 -80 -ENDCHAR -STARTCHAR 081 -ENCODING 81 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -60 -90 -90 -A0 -50 -ENDCHAR -STARTCHAR 082 -ENCODING 82 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -E0 -90 -E0 -A0 -90 -ENDCHAR -STARTCHAR 083 -ENCODING 83 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -70 -80 -60 -10 -E0 -ENDCHAR -STARTCHAR 084 -ENCODING 84 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -E0 -40 -40 -40 -40 -ENDCHAR -STARTCHAR 085 -ENCODING 85 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -90 -90 -60 -ENDCHAR -STARTCHAR 086 -ENCODING 86 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -88 -50 -50 -20 -ENDCHAR -STARTCHAR 087 -ENCODING 87 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -A8 -A8 -A8 -50 -ENDCHAR -STARTCHAR 088 -ENCODING 88 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -90 -90 -60 -90 -90 -ENDCHAR -STARTCHAR 089 -ENCODING 89 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -50 -20 -20 -20 -ENDCHAR -STARTCHAR 090 -ENCODING 90 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -E0 -20 -40 -80 -E0 -ENDCHAR -STARTCHAR 091 -ENCODING 91 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -C0 -80 -80 -80 -C0 -ENDCHAR -STARTCHAR 092 -ENCODING 92 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 4 0 0 -BITMAP -80 -40 -20 -10 -ENDCHAR -STARTCHAR 093 -ENCODING 93 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 5 0 0 -BITMAP -C0 -40 -40 -40 -C0 -ENDCHAR -STARTCHAR 094 -ENCODING 94 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 2 0 3 -BITMAP -40 -A0 -ENDCHAR -STARTCHAR 095 -ENCODING 95 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 1 0 0 -BITMAP -F0 -ENDCHAR -STARTCHAR 096 -ENCODING 96 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 2 0 3 -BITMAP -80 -40 -ENDCHAR -STARTCHAR 097 -ENCODING 97 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 098 -ENCODING 98 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 099 -ENCODING 99 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 100 -ENCODING 100 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 101 -ENCODING 101 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 102 -ENCODING 102 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 103 -ENCODING 103 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 104 -ENCODING 104 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 105 -ENCODING 105 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 106 -ENCODING 106 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 107 -ENCODING 107 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 108 -ENCODING 108 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 109 -ENCODING 109 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 110 -ENCODING 110 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 111 -ENCODING 111 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 3 3 1 1 -BITMAP -E0 -A0 -E0 -ENDCHAR -STARTCHAR 112 -ENCODING 112 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -88 -88 -88 -70 -ENDCHAR -STARTCHAR 113 -ENCODING 113 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -F8 -F8 -F8 -70 -ENDCHAR -STARTCHAR 114 -ENCODING 114 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -80 -C0 -E0 -C0 -80 -ENDCHAR -STARTCHAR 115 -ENCODING 115 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -88 -88 -88 -F8 -ENDCHAR -STARTCHAR 116 -ENCODING 116 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -F8 -F8 -F8 -F8 -ENDCHAR -STARTCHAR 117 -ENCODING 117 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -88 -A8 -88 -F8 -ENDCHAR -STARTCHAR 118 -ENCODING 118 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 1 1 2 2 -BITMAP -80 -ENDCHAR -STARTCHAR 119 -ENCODING 119 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -A8 -B8 -88 -70 -ENDCHAR -STARTCHAR 120 -ENCODING 120 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 0 -BITMAP -A0 -40 -A0 -ENDCHAR -STARTCHAR 121 -ENCODING 121 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 122 -ENCODING 122 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 123 -ENCODING 123 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -60 -40 -C0 -40 -60 -ENDCHAR -STARTCHAR 124 -ENCODING 124 -SWIDTH 144 0 -DWIDTH 2 0 -BBX 1 5 0 0 -BITMAP -80 -80 -80 -80 -80 -ENDCHAR -STARTCHAR 125 -ENCODING 125 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 5 0 0 -BITMAP -C0 -40 -60 -40 -C0 -ENDCHAR -STARTCHAR 126 -ENCODING 126 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 3 0 1 -BITMAP -40 -A8 -10 -ENDCHAR -STARTCHAR 127 -ENCODING 127 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 128 -ENCODING 128 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 129 -ENCODING 129 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 130 -ENCODING 130 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 131 -ENCODING 131 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 132 -ENCODING 132 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 133 -ENCODING 133 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 134 -ENCODING 134 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 135 -ENCODING 135 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 136 -ENCODING 136 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 137 -ENCODING 137 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 138 -ENCODING 138 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 139 -ENCODING 139 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 140 -ENCODING 140 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 141 -ENCODING 141 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 142 -ENCODING 142 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 143 -ENCODING 143 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 144 -ENCODING 144 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 145 -ENCODING 145 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 146 -ENCODING 146 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 147 -ENCODING 147 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 148 -ENCODING 148 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 149 -ENCODING 149 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 150 -ENCODING 150 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 151 -ENCODING 151 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 152 -ENCODING 152 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 153 -ENCODING 153 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 154 -ENCODING 154 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 155 -ENCODING 155 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 156 -ENCODING 156 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 157 -ENCODING 157 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 158 -ENCODING 158 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 159 -ENCODING 159 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 160 -ENCODING 160 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 161 -ENCODING 161 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 162 -ENCODING 162 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -20 -70 -80 -70 -20 -ENDCHAR -STARTCHAR 163 -ENCODING 163 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -20 -40 -E0 -40 -F0 -ENDCHAR -STARTCHAR 164 -ENCODING 164 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -70 -50 -70 -88 -ENDCHAR -STARTCHAR 165 -ENCODING 165 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -88 -50 -20 -F8 -20 -ENDCHAR -STARTCHAR 166 -ENCODING 166 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 167 -ENCODING 167 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 4 5 0 0 -BITMAP -70 -E0 -90 -70 -E0 -ENDCHAR -STARTCHAR 168 -ENCODING 168 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 169 -ENCODING 169 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -70 -B8 -C8 -B8 -70 -ENDCHAR -STARTCHAR 170 -ENCODING 170 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 171 -ENCODING 171 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -28 -50 -A0 -50 -28 -ENDCHAR -STARTCHAR 172 -ENCODING 172 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 173 -ENCODING 173 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 174 -ENCODING 174 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 175 -ENCODING 175 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 176 -ENCODING 176 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 3 0 2 -BITMAP -40 -A0 -40 -ENDCHAR -STARTCHAR 177 -ENCODING 177 -SWIDTH 288 0 -DWIDTH 4 0 -BBX 3 4 0 0 -BITMAP -40 -E0 -40 -E0 -ENDCHAR -STARTCHAR 178 -ENCODING 178 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 179 -ENCODING 179 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 180 -ENCODING 180 -SWIDTH 216 0 -DWIDTH 3 0 -BBX 2 2 0 3 -BITMAP -40 -80 -ENDCHAR -STARTCHAR 181 -ENCODING 181 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -90 -90 -F0 -98 -80 -ENDCHAR -STARTCHAR 182 -ENCODING 182 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -F8 -D0 -50 -50 -50 -ENDCHAR -STARTCHAR 183 -ENCODING 183 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 184 -ENCODING 184 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 185 -ENCODING 185 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 186 -ENCODING 186 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 187 -ENCODING 187 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -A0 -50 -28 -50 -A0 -ENDCHAR -STARTCHAR 188 -ENCODING 188 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 189 -ENCODING 189 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 190 -ENCODING 190 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 191 -ENCODING 191 -SWIDTH 360 0 -DWIDTH 5 0 -BBX 4 5 0 0 -BITMAP -20 -00 -60 -80 -70 -ENDCHAR -STARTCHAR 192 -ENCODING 192 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 193 -ENCODING 193 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 194 -ENCODING 194 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 195 -ENCODING 195 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 196 -ENCODING 196 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 197 -ENCODING 197 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 198 -ENCODING 198 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 5 5 0 0 -BITMAP -38 -50 -58 -70 -98 -ENDCHAR -STARTCHAR 199 -ENCODING 199 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 200 -ENCODING 200 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 201 -ENCODING 201 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 202 -ENCODING 202 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 203 -ENCODING 203 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 204 -ENCODING 204 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 205 -ENCODING 205 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 206 -ENCODING 206 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 207 -ENCODING 207 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 208 -ENCODING 208 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 209 -ENCODING 209 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 210 -ENCODING 210 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 211 -ENCODING 211 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 212 -ENCODING 212 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 213 -ENCODING 213 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 214 -ENCODING 214 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 215 -ENCODING 215 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 216 -ENCODING 216 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 217 -ENCODING 217 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 218 -ENCODING 218 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 219 -ENCODING 219 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 220 -ENCODING 220 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 221 -ENCODING 221 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 222 -ENCODING 222 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 223 -ENCODING 223 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 224 -ENCODING 224 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 225 -ENCODING 225 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 226 -ENCODING 226 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 227 -ENCODING 227 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 228 -ENCODING 228 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 229 -ENCODING 229 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 230 -ENCODING 230 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 231 -ENCODING 231 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 232 -ENCODING 232 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 233 -ENCODING 233 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 234 -ENCODING 234 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 235 -ENCODING 235 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 236 -ENCODING 236 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 237 -ENCODING 237 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 238 -ENCODING 238 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 239 -ENCODING 239 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 240 -ENCODING 240 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 241 -ENCODING 241 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 242 -ENCODING 242 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 243 -ENCODING 243 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 244 -ENCODING 244 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 245 -ENCODING 245 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 246 -ENCODING 246 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 247 -ENCODING 247 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 248 -ENCODING 248 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 249 -ENCODING 249 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 250 -ENCODING 250 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 251 -ENCODING 251 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 252 -ENCODING 252 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 253 -ENCODING 253 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 254 -ENCODING 254 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -STARTCHAR 255 -ENCODING 255 -SWIDTH 432 0 -DWIDTH 6 0 -BBX 0 0 0 0 -BITMAP -ENDCHAR -ENDFONT diff --git a/Extra/Fonts/Velvet Screen Bitmap Font/bdfconv b/Extra/Fonts/Velvet Screen Bitmap Font/bdfconv deleted file mode 100755 index d3e5695a19feb9ceb96a78a3b2b032caed6e42dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130544 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
QuFi%*!S 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�YB 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 diff --git a/Extra/MIDITest/MIDITest.ino b/Extra/MIDITest/MIDITest.ino deleted file mode 100644 index fe945a7..0000000 --- a/Extra/MIDITest/MIDITest.ino +++ /dev/null @@ -1,106 +0,0 @@ -#include -#include - -#define SCREEN_ADDRESS 0x3C - -// Rev 2 and 3 Config -#define ENC_BTN_PIN 14 -#define ENC_D1_PIN 17 -#define ENC_D2_PIN 4 -#define START_STOP_BTN_PIN 5 -#define SHIFT_BTN_PIN 12 -#define EXT_INPUT_PIN 2 //needs to be an interrupt pin -#define ANALOGUE_INPUT_1_PIN A7 -#define ANALOGUE_INPUT_2_PIN A6 -const byte outsPins[6] = { 7, 8, 10, 6, 9, 11 }; -const byte clockOutPin = 3; - -int CV1Calibration = 512; -int CV2Calibration = 512; -bool rotateScreen = false; - - -int a1Input = 0; -int a2Input = 0; - - -U8G2_SSD1306_128X64_NONAME_2_HW_I2C u8g2(U8G2_R2, SCL, SDA, U8X8_PIN_NONE); - -bool MIDIClockRecived = false; - -//Font -const uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") = - "\64\0\2\2\3\3\2\3\4\5\5\0\0\5\0\5\0\0\221\0\0\1\230 \4\200\134%\11\255tT" - "R\271RI(\6\252\334T\31)\7\252\134bJ\12+\7\233\345\322J\0,\5\221T\4-\5\213" - "f\6.\5\211T\2/\6\244\354c\33\60\10\254\354T\64\223\2\61\7\353\354\222\254\6\62\11\254l" - "\66J*\217\0\63\11\254l\66J\32\215\4\64\10\254l\242\34\272\0\65\11\254l\206\336h$\0\66" - "\11\254\354T^\61)\0\67\10\254lF\216u\4\70\11\254\354TL*&\5\71\11\254\354TL;" - ")\0:\6\231UR\0A\10\254\354T\34S\6B\11\254lV\34)\216\4C\11\254\354T\324\61" - ")\0D\10\254lV\64G\2E\10\254l\206\36z\4F\10\254l\206^\71\3G\11\254\354TN" - "\63)\0H\10\254l\242\34S\6I\6\251T\206\0J\10\254\354k\231\24\0K\11\254l\242J\62" - "\225\1L\7\254lr{\4M\11\255t\362ZI\353\0N\11\255t\362TI\356\0O\10\254\354T" - "\64\223\2P\11\254lV\34)g\0Q\10\254\354T\264b\12R\10\254lV\34\251\31S\11\254\354" - "FF\32\215\4T\7\253dVl\1U\10\254l\242\63)\0V\11\255t\262Ne\312\21W\12\255" - "t\262J*\251.\0X\11\254l\242L*\312\0Y\12\255tr\252\63\312(\2Z\7\253df*" - "\7p\10\255\364V\266\323\2q\7\255\364\216\257\5r\10\253d\242\32*\2t\6\255t\376#w\11" - "\255\364V\245FN\13x\6\233dR\7\0\0\0\4\377\377\0"; - - -void setup() { - //Serial.begin(9600); - Serial.begin(31250); - - //pinMode(EXT_INPUT_PIN, INPUT_PULLUP); - pinMode(SHIFT_BTN_PIN, INPUT_PULLUP); - - u8g2.begin(); - checkScreenRotation(); - updateScreen(); - -} - -void loop() { - //receiveMIDI(); - updateScreen(); - Serial.println(Serial.read()); - delay(500); -} - - -void receiveMIDI() { - if(Serial.available() > 0) { - if (Serial.read() == 0xF8) { //Clock - MIDIClockRecived = true; - //} else if (Serial.read() == 0xFA || Serial.read() == 0xFB) { //start and continue - // isPlaying = true; - //} else if (Serial.read() == 0xFC) { //stop - // isPlaying = false; - } - } -} - - -void updateScreen() { - - u8g2.firstPage(); - do { - u8g2.setFont(velvetscreen); - String valueStr = String(analogRead(ANALOGUE_INPUT_1_PIN)); - char valueChar[16]; - if (Serial.available() > 0) { - u8g2.drawStr(10, 8, Serial.available()); - } else { - u8g2.drawStr(10, 8, "HI"); - } - - } while ( u8g2.nextPage() ); -} - - -void checkScreenRotation() { - if (rotateScreen) { - u8g2.setDisplayRotation(U8G2_R0); - } else { - u8g2.setDisplayRotation(U8G2_R2); - } -} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.MD b/README.MD index e1c34d1..6456e32 100644 --- a/README.MD +++ b/README.MD @@ -1,25 +1,10 @@ -6hp multichannel eurorack clock and trigger utility designed to be low cost and DIY friendly. +# Sitka Instruments Gravity Firmware +Arduino project of [Sitka Instruments Gravity](https://sitkainstruments.com/gravity/) eurorack clock module firmware. -> It is like a "Pamela's 'very light' Workout" ;) -> -> —u/BBougre +Designed and developed by Oleksiy Hrachov. -### Features: -- 24ppqn internal clock with master BPM -- 6 output channels -- Separate divider or multiplier per chennel (from /32 to x24) -- Per-channel random pulse skip probability setting -- Per-channel offset setting -- 2 inputs for external modulation (assignable per channel) -- All channel settings and bpm are saved on play/pause and recalled on power up -- 2 external clock modes (24ppqn and beat) - -### TODO: -- swing -- settings (pulse length, display timeout) -- expanders with midi/tap tempo etc - -### Acknowlidgements -Timer library available here -https://github.com/PaulStoffregen/FlexiTimer2 +Licence: GPLv3 +Related repos: +- [Gravity Hardware](https://git.sitkainstruments.com/Oleksiy/GravityHW) +- [Gravity MIDI Expander Hardware](https://git.sitkainstruments.com/Oleksiy/GravityMIDIExpanderHW) diff --git a/Software/Gravity/Gravity.ino b/src/Gravity/Gravity.ino similarity index 100% rename from Software/Gravity/Gravity.ino rename to src/Gravity/Gravity.ino diff --git a/Software/Gravity/Interactions.ino b/src/Gravity/Interactions.ino similarity index 100% rename from Software/Gravity/Interactions.ino rename to src/Gravity/Interactions.ino diff --git a/Software/Gravity/UI.ino b/src/Gravity/UI.ino similarity index 100% rename from Software/Gravity/UI.ino rename to src/Gravity/UI.ino