├── .gitignore
├── Articles 1-3
├── Documentation
│ ├── YM3812_RegisterMap.pdf
│ ├── YM3812_RegisterMap.png
│ └── YM3812_TimingChart.png
├── README.md
├── Schematic
│ └── Schematic.png
└── YM3812_Breadboard
│ ├── YM3812.cpp
│ ├── YM3812.h
│ └── YM3812_Breadboard.ino
├── Articles 10_PitchWheel
└── YM3812_PitchWheel
│ ├── YM3812.cpp
│ ├── YM3812.h
│ ├── YM3812_PitchWheel.ino
│ ├── YMDefs.h
│ └── instruments.h
├── Articles 4
├── .DS_Store
├── MidiBreakout
│ ├── .DS_Store
│ ├── MidiBreakout-cache.lib
│ ├── MidiBreakout.kicad_pcb
│ ├── MidiBreakout.kicad_prl
│ ├── MidiBreakout.kicad_pro
│ ├── MidiBreakout.kicad_sch
│ └── Panelized_MIDI_Breakout.zip
├── README.md
├── Schematic
│ ├── BeatStepPro_back_1200x1200.png
│ ├── YM3812_Breadboard_w_MIDI.pdf
│ └── YM3812_Breadboard_w_MIDI.png
└── YM3812_Breadboard
│ ├── YM3812.cpp
│ ├── YM3812.h
│ └── YM3812_Breadboard.ino
├── Articles 5
├── YM3812_Mono
│ ├── YM3812.cpp
│ ├── YM3812.h
│ └── YM3812_Mono.ino
├── YM3812_PolyRotate
│ ├── YM3812.cpp
│ ├── YM3812.h
│ └── YM3812_PolyRotate.ino
└── YM3812_PolySmart
│ ├── YM3812.cpp
│ ├── YM3812.h
│ └── YM3812_PolySmart.ino
├── Articles 6
├── InstrumentConverter
│ ├── GENMIDI.op2
│ ├── README.md
│ ├── instruments.h
│ ├── lib
│ │ └── jsdb.js
│ ├── node_modules
│ │ ├── boolbase
│ │ │ ├── README.md
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── css-select
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── lib
│ │ │ │ ├── attributes.d.ts
│ │ │ │ ├── attributes.d.ts.map
│ │ │ │ ├── attributes.js
│ │ │ │ ├── compile.d.ts
│ │ │ │ ├── compile.d.ts.map
│ │ │ │ ├── compile.js
│ │ │ │ ├── general.d.ts
│ │ │ │ ├── general.d.ts.map
│ │ │ │ ├── general.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── procedure.d.ts
│ │ │ │ ├── procedure.d.ts.map
│ │ │ │ ├── procedure.js
│ │ │ │ ├── pseudo-selectors
│ │ │ │ │ ├── filters.d.ts
│ │ │ │ │ ├── filters.d.ts.map
│ │ │ │ │ ├── filters.js
│ │ │ │ │ ├── index.d.ts
│ │ │ │ │ ├── index.d.ts.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── pseudos.d.ts
│ │ │ │ │ ├── pseudos.d.ts.map
│ │ │ │ │ ├── pseudos.js
│ │ │ │ │ ├── subselects.d.ts
│ │ │ │ │ ├── subselects.d.ts.map
│ │ │ │ │ └── subselects.js
│ │ │ │ ├── sort.d.ts
│ │ │ │ ├── sort.d.ts.map
│ │ │ │ ├── sort.js
│ │ │ │ ├── types.d.ts
│ │ │ │ ├── types.d.ts.map
│ │ │ │ └── types.js
│ │ │ └── package.json
│ │ ├── css-what
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── parse.d.ts
│ │ │ │ ├── parse.d.ts.map
│ │ │ │ ├── parse.js
│ │ │ │ ├── stringify.d.ts
│ │ │ │ ├── stringify.d.ts.map
│ │ │ │ └── stringify.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── csv-parser
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bin
│ │ │ │ └── csv-parser
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── dom-serializer
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── lib
│ │ │ │ ├── foreignNames.d.ts
│ │ │ │ ├── foreignNames.d.ts.map
│ │ │ │ ├── foreignNames.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ └── index.js
│ │ │ └── package.json
│ │ ├── domelementtype
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ └── index.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── domhandler
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── node.d.ts
│ │ │ │ ├── node.d.ts.map
│ │ │ │ └── node.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── domutils
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── helpers.d.ts
│ │ │ │ ├── helpers.d.ts.map
│ │ │ │ ├── helpers.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── legacy.d.ts
│ │ │ │ ├── legacy.d.ts.map
│ │ │ │ ├── legacy.js
│ │ │ │ ├── manipulation.d.ts
│ │ │ │ ├── manipulation.d.ts.map
│ │ │ │ ├── manipulation.js
│ │ │ │ ├── querying.d.ts
│ │ │ │ ├── querying.d.ts.map
│ │ │ │ ├── querying.js
│ │ │ │ ├── stringify.d.ts
│ │ │ │ ├── stringify.d.ts.map
│ │ │ │ ├── stringify.js
│ │ │ │ ├── traversal.d.ts
│ │ │ │ ├── traversal.d.ts.map
│ │ │ │ └── traversal.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── entities
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── decode.d.ts
│ │ │ │ ├── decode.d.ts.map
│ │ │ │ ├── decode.js
│ │ │ │ ├── decode_codepoint.d.ts
│ │ │ │ ├── decode_codepoint.d.ts.map
│ │ │ │ ├── decode_codepoint.js
│ │ │ │ ├── encode.d.ts
│ │ │ │ ├── encode.d.ts.map
│ │ │ │ ├── encode.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ └── maps
│ │ │ │ │ ├── decode.json
│ │ │ │ │ ├── entities.json
│ │ │ │ │ ├── legacy.json
│ │ │ │ │ └── xml.json
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── he
│ │ │ ├── LICENSE-MIT.txt
│ │ │ ├── README.md
│ │ │ ├── bin
│ │ │ │ └── he
│ │ │ ├── he.js
│ │ │ ├── man
│ │ │ │ └── he.1
│ │ │ └── package.json
│ │ ├── minimist
│ │ │ ├── LICENSE
│ │ │ ├── example
│ │ │ │ └── parse.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ ├── readme.markdown
│ │ │ └── test
│ │ │ │ ├── all_bool.js
│ │ │ │ ├── bool.js
│ │ │ │ ├── dash.js
│ │ │ │ ├── default_bool.js
│ │ │ │ ├── dotted.js
│ │ │ │ ├── kv_short.js
│ │ │ │ ├── long.js
│ │ │ │ ├── num.js
│ │ │ │ ├── parse.js
│ │ │ │ ├── parse_modified.js
│ │ │ │ ├── proto.js
│ │ │ │ ├── short.js
│ │ │ │ ├── stop_early.js
│ │ │ │ ├── unknown.js
│ │ │ │ └── whitespace.js
│ │ └── nth-check
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── lib
│ │ │ ├── compile.d.ts
│ │ │ ├── compile.d.ts.map
│ │ │ ├── compile.js
│ │ │ ├── index.d.ts
│ │ │ ├── index.d.ts.map
│ │ │ ├── index.js
│ │ │ ├── parse.d.ts
│ │ │ ├── parse.d.ts.map
│ │ │ └── parse.js
│ │ │ └── package.json
│ └── op2.js
└── YM3812_Patches
│ ├── YM3812.cpp
│ ├── YM3812.h
│ ├── YM3812_Patches.ino
│ ├── YMDefs.h
│ └── instruments.h
├── Articles 7
├── .DS_Store
├── InstrumentConverter
│ ├── .DS_Store
│ ├── data
│ │ ├── .DS_Store
│ │ ├── AdvancedCivilization.op2
│ │ ├── DMXOPL-by-sneakernets-old.op2
│ │ ├── DeathGate.op2
│ │ ├── GENMIDI.op2
│ │ ├── doom1.op2
│ │ ├── doom2.op2
│ │ ├── heretic.op2
│ │ ├── raptor.op2
│ │ └── strife.op2
│ ├── lib
│ │ └── jsdb.js
│ ├── node_modules
│ │ ├── .DS_Store
│ │ ├── .bin
│ │ │ ├── csv-parser
│ │ │ └── he
│ │ ├── .package-lock.json
│ │ ├── boolbase
│ │ │ ├── README.md
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── css-select
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── lib
│ │ │ │ ├── attributes.d.ts
│ │ │ │ ├── attributes.d.ts.map
│ │ │ │ ├── attributes.js
│ │ │ │ ├── compile.d.ts
│ │ │ │ ├── compile.d.ts.map
│ │ │ │ ├── compile.js
│ │ │ │ ├── general.d.ts
│ │ │ │ ├── general.d.ts.map
│ │ │ │ ├── general.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── procedure.d.ts
│ │ │ │ ├── procedure.d.ts.map
│ │ │ │ ├── procedure.js
│ │ │ │ ├── pseudo-selectors
│ │ │ │ │ ├── filters.d.ts
│ │ │ │ │ ├── filters.d.ts.map
│ │ │ │ │ ├── filters.js
│ │ │ │ │ ├── index.d.ts
│ │ │ │ │ ├── index.d.ts.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── pseudos.d.ts
│ │ │ │ │ ├── pseudos.d.ts.map
│ │ │ │ │ ├── pseudos.js
│ │ │ │ │ ├── subselects.d.ts
│ │ │ │ │ ├── subselects.d.ts.map
│ │ │ │ │ └── subselects.js
│ │ │ │ ├── sort.d.ts
│ │ │ │ ├── sort.d.ts.map
│ │ │ │ ├── sort.js
│ │ │ │ ├── types.d.ts
│ │ │ │ ├── types.d.ts.map
│ │ │ │ └── types.js
│ │ │ └── package.json
│ │ ├── css-what
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── parse.d.ts
│ │ │ │ ├── parse.d.ts.map
│ │ │ │ ├── parse.js
│ │ │ │ ├── stringify.d.ts
│ │ │ │ ├── stringify.d.ts.map
│ │ │ │ └── stringify.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── csv-parser
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bin
│ │ │ │ └── csv-parser
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── dom-serializer
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── lib
│ │ │ │ ├── foreignNames.d.ts
│ │ │ │ ├── foreignNames.d.ts.map
│ │ │ │ ├── foreignNames.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ └── index.js
│ │ │ └── package.json
│ │ ├── domelementtype
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ └── index.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── domhandler
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── node.d.ts
│ │ │ │ ├── node.d.ts.map
│ │ │ │ └── node.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── domutils
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── helpers.d.ts
│ │ │ │ ├── helpers.d.ts.map
│ │ │ │ ├── helpers.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ ├── legacy.d.ts
│ │ │ │ ├── legacy.d.ts.map
│ │ │ │ ├── legacy.js
│ │ │ │ ├── manipulation.d.ts
│ │ │ │ ├── manipulation.d.ts.map
│ │ │ │ ├── manipulation.js
│ │ │ │ ├── querying.d.ts
│ │ │ │ ├── querying.d.ts.map
│ │ │ │ ├── querying.js
│ │ │ │ ├── stringify.d.ts
│ │ │ │ ├── stringify.d.ts.map
│ │ │ │ ├── stringify.js
│ │ │ │ ├── traversal.d.ts
│ │ │ │ ├── traversal.d.ts.map
│ │ │ │ └── traversal.js
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── entities
│ │ │ ├── LICENSE
│ │ │ ├── lib
│ │ │ │ ├── decode.d.ts
│ │ │ │ ├── decode.d.ts.map
│ │ │ │ ├── decode.js
│ │ │ │ ├── decode_codepoint.d.ts
│ │ │ │ ├── decode_codepoint.d.ts.map
│ │ │ │ ├── decode_codepoint.js
│ │ │ │ ├── encode.d.ts
│ │ │ │ ├── encode.d.ts.map
│ │ │ │ ├── encode.js
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.d.ts.map
│ │ │ │ ├── index.js
│ │ │ │ └── maps
│ │ │ │ │ ├── decode.json
│ │ │ │ │ ├── entities.json
│ │ │ │ │ ├── legacy.json
│ │ │ │ │ └── xml.json
│ │ │ ├── package.json
│ │ │ └── readme.md
│ │ ├── he
│ │ │ ├── .DS_Store
│ │ │ ├── LICENSE-MIT.txt
│ │ │ ├── README.md
│ │ │ ├── bin
│ │ │ │ └── he
│ │ │ ├── he.js
│ │ │ ├── man
│ │ │ │ └── he.1
│ │ │ └── package.json
│ │ ├── minimist
│ │ │ ├── .DS_Store
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── example
│ │ │ │ └── parse.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ ├── readme.markdown
│ │ │ └── test
│ │ │ │ ├── all_bool.js
│ │ │ │ ├── bool.js
│ │ │ │ ├── dash.js
│ │ │ │ ├── default_bool.js
│ │ │ │ ├── dotted.js
│ │ │ │ ├── kv_short.js
│ │ │ │ ├── long.js
│ │ │ │ ├── num.js
│ │ │ │ ├── parse.js
│ │ │ │ ├── parse_modified.js
│ │ │ │ ├── proto.js
│ │ │ │ ├── short.js
│ │ │ │ ├── stop_early.js
│ │ │ │ ├── unknown.js
│ │ │ │ └── whitespace.js
│ │ └── nth-check
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── lib
│ │ │ ├── compile.d.ts
│ │ │ ├── compile.d.ts.map
│ │ │ ├── compile.js
│ │ │ ├── index.d.ts
│ │ │ ├── index.d.ts.map
│ │ │ ├── index.js
│ │ │ ├── parse.d.ts
│ │ │ ├── parse.d.ts.map
│ │ │ └── parse.js
│ │ │ └── package.json
│ └── op2.js
└── YM3812_Drums
│ ├── .DS_Store
│ ├── YM3812.cpp
│ ├── YM3812.h
│ ├── YM3812_Drums.ino
│ ├── YMDefs.h
│ └── instruments.h
├── Articles 8
└── YM3812_Velocity
│ ├── YM3812.cpp
│ ├── YM3812.h
│ ├── YM3812_Velocity.ino
│ ├── YMDefs.h
│ └── instruments.h
├── Articles 9_SynthCard
├── .DS_Store
├── SynthCard_YM3812-backups
│ └── SynthCard_YM3812-2023-08-02_151157.zip
├── SynthCard_YM3812.kicad_prl
├── SynthCard_YM3812.kicad_pro
├── SynthCard_YM3812.kicad_sch
├── SynthCard_YM3812.zip
└── SynthCard_YM3812_Schematic.pdf
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | Articles 8/.DS_Store
3 | Articles 8/YM3812_Velocity/.DS_Store
4 | .DS_Store
5 | .DS_Store
6 |
--------------------------------------------------------------------------------
/Articles 1-3/Documentation/YM3812_RegisterMap.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 1-3/Documentation/YM3812_RegisterMap.pdf
--------------------------------------------------------------------------------
/Articles 1-3/Documentation/YM3812_RegisterMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 1-3/Documentation/YM3812_RegisterMap.png
--------------------------------------------------------------------------------
/Articles 1-3/Documentation/YM3812_TimingChart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 1-3/Documentation/YM3812_TimingChart.png
--------------------------------------------------------------------------------
/Articles 1-3/README.md:
--------------------------------------------------------------------------------
1 | # Articles 1-3
2 | The first three articles provide an introduction to the YM3812 sound processor as well as the basic schematic and code necessary to get things up and running.
3 |
4 |
5 |
6 | ## Current Articles
7 |
8 | ### YM3812 Part 1: Register Basics
9 | Focuses on FM Synthesis basics, the YM3812's register map and electrically controlling the chip's pins. You can find the register map and timing diagrams below (or in the Documentation folder).
10 |
11 | ### YM3812 Part 2: FACE Reveal
12 | Introduces a basic implementation of the YM3812 circuit controlled by an AVR128DA28 microcontroller that we will build upon in future articles. Think of it as a "Hello World"-like starting point that ensures the circuit works and that we can upload code into the microcontroller. We cover the function of each IC, the schematic, and after building it on breadboard, how to program it through the Arduino IDE.
13 |
14 | ### YM3812 Part 3: Getting Classy (Coming Soon)
15 | Walks through the implementation of the YM3812 class and other code that we used (but didn't discuss) in the second article. We cover the sendData and reset functions as well as the bit manipulation function that inserts sub-8-bit numbers into 8-bit registers. Then with these building blocks in place, we implement the register manipulation functions for all of the global, channel and operator level settings.
16 |
17 |
18 |
19 | ## Documentation:
20 | The documentation folder contains a couple of helpful charts:
21 | ### Register Map
22 | The register map shows where each setting is located on the chip.
23 |
24 |
25 | ### Timing Chart
26 | The Timing Chart visually describes the order of events used to update a register on the YM3812.
27 |
28 |
29 | ### Schematic
30 | The schematic folder includes a basic schematic used to get the YM3812 up and running.
31 |
32 |
--------------------------------------------------------------------------------
/Articles 1-3/Schematic/Schematic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 1-3/Schematic/Schematic.png
--------------------------------------------------------------------------------
/Articles 4/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 4/.DS_Store
--------------------------------------------------------------------------------
/Articles 4/MidiBreakout/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 4/MidiBreakout/.DS_Store
--------------------------------------------------------------------------------
/Articles 4/MidiBreakout/MidiBreakout.kicad_prl:
--------------------------------------------------------------------------------
1 | {
2 | "board": {
3 | "active_layer": 0,
4 | "active_layer_preset": "",
5 | "auto_track_width": true,
6 | "hidden_nets": [],
7 | "high_contrast_mode": 0,
8 | "net_color_mode": 1,
9 | "opacity": {
10 | "pads": 1.0,
11 | "tracks": 1.0,
12 | "vias": 1.0,
13 | "zones": 0.6
14 | },
15 | "ratsnest_display_mode": 0,
16 | "selection_filter": {
17 | "dimensions": true,
18 | "footprints": true,
19 | "graphics": true,
20 | "keepouts": true,
21 | "lockedItems": true,
22 | "otherItems": true,
23 | "pads": true,
24 | "text": true,
25 | "tracks": true,
26 | "vias": true,
27 | "zones": true
28 | },
29 | "visible_items": [
30 | 0,
31 | 1,
32 | 2,
33 | 3,
34 | 4,
35 | 5,
36 | 8,
37 | 9,
38 | 10,
39 | 11,
40 | 12,
41 | 13,
42 | 14,
43 | 15,
44 | 16,
45 | 17,
46 | 18,
47 | 19,
48 | 20,
49 | 21,
50 | 22,
51 | 23,
52 | 24,
53 | 25,
54 | 26,
55 | 27,
56 | 28,
57 | 29,
58 | 30,
59 | 32,
60 | 33,
61 | 34,
62 | 35,
63 | 36
64 | ],
65 | "visible_layers": "fffffff_ffffffff",
66 | "zone_display_mode": 0
67 | },
68 | "meta": {
69 | "filename": "MidiBreakout.kicad_prl",
70 | "version": 3
71 | },
72 | "project": {
73 | "files": []
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/Articles 4/MidiBreakout/Panelized_MIDI_Breakout.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 4/MidiBreakout/Panelized_MIDI_Breakout.zip
--------------------------------------------------------------------------------
/Articles 4/README.md:
--------------------------------------------------------------------------------
1 | ### YM3812 Part 4: MIDI Journey
2 | This article introduces the circuitry and functionality necessary to implement MIDI on the YM3812 module. This article especially focuses on translating note frequencies between MIDI note codes and the block / F-Number properties used by the YM3812. To demonstrate how the translation function and basic MIDI handlers work, this code implements a monophonic midi algorithm that plays all incoming notes on channel zero of the YM3812.
3 |
4 |
5 |
6 |
7 | ### Schematic
8 | The schematic folder includes adds MIDI functionality to the basic schematic used in articles 1-3.
9 |
10 |
--------------------------------------------------------------------------------
/Articles 4/Schematic/BeatStepPro_back_1200x1200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 4/Schematic/BeatStepPro_back_1200x1200.png
--------------------------------------------------------------------------------
/Articles 4/Schematic/YM3812_Breadboard_w_MIDI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 4/Schematic/YM3812_Breadboard_w_MIDI.pdf
--------------------------------------------------------------------------------
/Articles 4/Schematic/YM3812_Breadboard_w_MIDI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 4/Schematic/YM3812_Breadboard_w_MIDI.png
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/GENMIDI.op2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TylerK07/YM3812-Module/67d2dec919d038700d1ac39ac7f7471318abd33b/Articles 6/InstrumentConverter/GENMIDI.op2
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/README.md:
--------------------------------------------------------------------------------
1 | # InstrumentConverter
2 | This nodejs code extracts sound patch settings from .op2 files and converts them into the instruments.h file
3 |
4 | ## Usage:
5 | node op2.js GENMIDI.op2 instruments.h
6 |
7 | This will extract any sound patches from GENMIDI.op2 and output a new file called instruments.h.
8 |
9 | Once you have the instruments.h file, copy it into the folder with your .ino file to compile it into the program.
10 |
11 |
12 | op2 files can be created and manipulated using another opensource project——the OPL3 Bank Editor:
13 | https://github.com/Wohlstand/OPL3BankEditor
14 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/boolbase/README.md:
--------------------------------------------------------------------------------
1 | #boolbase
2 | This very simple module provides two basic functions, one that always returns true (`trueFunc`) and one that always returns false (`falseFunc`).
3 |
4 | ###WTF?
5 |
6 | By having only a single instance of these functions around, it's possible to do some nice optimizations. Eg. [`CSSselect`](https://github.com/fb55/CSSselect) uses these functions to determine whether a selector won't match any elements. If that's the case, the DOM doesn't even have to be touched.
7 |
8 | ###And why is this a separate module?
9 |
10 | I'm trying to modularize `CSSselect` and most modules depend on these functions. IMHO, having a separate module is the easiest solution to this problem.
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/boolbase/index.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | trueFunc: function trueFunc(){
3 | return true;
4 | },
5 | falseFunc: function falseFunc(){
6 | return false;
7 | }
8 | };
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/boolbase/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "boolbase",
3 | "version": "1.0.0",
4 | "description": "two functions: One that returns true, one that returns false",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/fb55/boolbase"
12 | },
13 | "keywords": [
14 | "boolean",
15 | "function"
16 | ],
17 | "author": "Felix Boehm ",
18 | "license": "ISC",
19 | "bugs": {
20 | "url": "https://github.com/fb55/boolbase/issues"
21 | },
22 | "homepage": "https://github.com/fb55/boolbase"
23 | }
24 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) Felix Böhm
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 |
8 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 |
10 | THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
11 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/attributes.d.ts:
--------------------------------------------------------------------------------
1 | import { CompiledQuery, InternalOptions } from "./types";
2 | import type { AttributeSelector, AttributeAction } from "css-what";
3 | /**
4 | * Attribute selectors
5 | */
6 | export declare const attributeRules: Record(next: CompiledQuery, data: AttributeSelector, options: InternalOptions) => CompiledQuery>;
7 | //# sourceMappingURL=attributes.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/attributes.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAanE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAC/B,eAAe,EACf,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC3B,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,KAC1C,aAAa,CAAC,WAAW,CAAC,CA0JlC,CAAC"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/compile.d.ts:
--------------------------------------------------------------------------------
1 | import { InternalSelector } from "./types";
2 | import type { CompiledQuery, InternalOptions } from "./types";
3 | /**
4 | * Compiles a selector to an executable function.
5 | *
6 | * @param selector Selector to compile.
7 | * @param options Compilation options.
8 | * @param context Optional context for the selector.
9 | */
10 | export declare function compile(selector: string, options: InternalOptions, context?: ElementNode[]): CompiledQuery;
11 | export declare function compileUnsafe(selector: string, options: InternalOptions, context?: ElementNode[] | ElementNode): CompiledQuery;
12 | export declare function compileToken(token: InternalSelector[][], options: InternalOptions, context?: ElementNode[] | ElementNode): CompiledQuery;
13 | //# sourceMappingURL=compile.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/compile.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAU3C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAClD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,WAAW,EAAE,GACxB,aAAa,CAAC,WAAW,CAAC,CAG5B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACxD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,WAAW,GACtC,aAAa,CAAC,WAAW,CAAC,CAG5B;AA6CD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACvD,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAC3B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,WAAW,GACtC,aAAa,CAAC,WAAW,CAAC,CA2C5B"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/general.d.ts:
--------------------------------------------------------------------------------
1 | import type { CompiledQuery, InternalOptions, InternalSelector, CompileToken } from "./types";
2 | export declare function compileGeneralSelector(next: CompiledQuery, selector: InternalSelector, options: InternalOptions, context: ElementNode[] | undefined, compileToken: CompileToken): CompiledQuery;
3 | //# sourceMappingURL=general.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/general.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../src/general.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACf,MAAM,SAAS,CAAC;AAMjB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACjE,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,EAClC,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAC9C,aAAa,CAAC,WAAW,CAAC,CAmI5B"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/index.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,aAAa,EACb,OAAO,EAEP,KAAK,EACL,OAAO,EAEV,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,OAAO,EAAE,CAAC;AA0CxB;;GAEG;AACH,eAAO,MAAM,OAAO,oLAA0B,CAAC;AAC/C,eAAO,MAAM,cAAc,oLAA6B,CAAC;AACzD,eAAO,MAAM,aAAa,oNAA4B,CAAC;AA6BvD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACzD,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,EAClC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EACnC,sBAAsB,UAAQ,GAC/B,IAAI,EAAE,CAYR;AAgBD;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,6KASrB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,kLASrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,EAAE,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC7C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACrC,OAAO,CAKT;AAED;;;GAGG;AACH,eAAe,SAAS,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/procedure.d.ts:
--------------------------------------------------------------------------------
1 | import type { Traversal } from "css-what";
2 | import type { InternalSelector } from "./types";
3 | export declare const procedure: Record;
4 | export declare function isTraversal(t: InternalSelector): t is Traversal;
5 | //# sourceMappingURL=procedure.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/procedure.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../src/procedure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,CAY9D,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,IAAI,SAAS,CAE/D"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/procedure.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.isTraversal = exports.procedure = void 0;
4 | exports.procedure = {
5 | universal: 50,
6 | tag: 30,
7 | attribute: 1,
8 | pseudo: 0,
9 | "pseudo-element": 0,
10 | descendant: -1,
11 | child: -1,
12 | parent: -1,
13 | sibling: -1,
14 | adjacent: -1,
15 | _flexibleDescendant: -1,
16 | };
17 | function isTraversal(t) {
18 | return exports.procedure[t.type] < 0;
19 | }
20 | exports.isTraversal = isTraversal;
21 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/filters.d.ts:
--------------------------------------------------------------------------------
1 | import type { CompiledQuery, InternalOptions } from "../types";
2 | export declare type Filter = (next: CompiledQuery, text: string, options: InternalOptions, context?: ElementNode[]) => CompiledQuery;
3 | export declare const filters: Record;
4 | //# sourceMappingURL=filters.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/filters.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/pseudo-selectors/filters.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAW,MAAM,UAAU,CAAC;AAGxE,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,WAAW,EAAE,KACtB,aAAa,CAAC,WAAW,CAAC,CAAC;AA6BhC,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgL1C,CAAC"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/index.d.ts:
--------------------------------------------------------------------------------
1 | import type { CompiledQuery, InternalOptions, CompileToken } from "../types";
2 | import type { PseudoSelector } from "css-what";
3 | import { filters } from "./filters";
4 | import { pseudos } from "./pseudos";
5 | export { filters, pseudos };
6 | export declare function compilePseudoSelector(next: CompiledQuery, selector: PseudoSelector, options: InternalOptions, context: ElementNode[] | undefined, compileToken: CompileToken): CompiledQuery;
7 | //# sourceMappingURL=index.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/index.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pseudo-selectors/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAoB,MAAM,WAAW,CAAC;AAGtD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAK5B,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChE,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,EAClC,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAC9C,aAAa,CAAC,WAAW,CAAC,CAwB5B"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts:
--------------------------------------------------------------------------------
1 | import { PseudoSelector } from "css-what";
2 | import type { InternalOptions } from "../types";
3 | export declare type Pseudo = (elem: ElementNode, options: InternalOptions, subselect?: ElementNode | string | null) => boolean;
4 | export declare const pseudos: Record;
5 | export declare function verifyPseudoArgs(func: Pseudo, name: string, subselect: PseudoSelector["data"]): void;
6 | //# sourceMappingURL=pseudos.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"pseudos.d.ts","sourceRoot":"","sources":["../../src/pseudo-selectors/pseudos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChD,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,KACtC,OAAO,CAAC;AAKb,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+L1C,CAAC;AAYF,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,GAClC,IAAI,CAYN"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts:
--------------------------------------------------------------------------------
1 | import { CompileToken } from "./../types";
2 | import type { Selector } from "css-what";
3 | import type { CompiledQuery, InternalOptions, Adapter } from "../types";
4 | /** Used as a placeholder for :has. Will be replaced with the actual element. */
5 | export declare const PLACEHOLDER_ELEMENT: {};
6 | export declare function ensureIsTag(next: CompiledQuery, adapter: Adapter): CompiledQuery;
7 | export declare type Subselect = (next: CompiledQuery, subselect: Selector[][], options: InternalOptions, context: ElementNode[] | undefined, compileToken: CompileToken) => CompiledQuery;
8 | export declare function getNextSiblings(elem: Node, adapter: Adapter): ElementNode[];
9 | export declare const subselects: Record;
10 | //# sourceMappingURL=subselects.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"subselects.d.ts","sourceRoot":"","sources":["../../src/pseudo-selectors/subselects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxE,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAMtC,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACtD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACpC,aAAa,CAAC,WAAW,CAAC,CAG5B;AAED,oBAAY,SAAS,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACnD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,SAAS,EAAE,QAAQ,EAAE,EAAE,EACvB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,EAClC,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,KAC5C,aAAa,CAAC,WAAW,CAAC,CAAC;AAEhC,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC1D,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACpC,WAAW,EAAE,CAMf;AAOD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAkGhD,CAAC"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/sort.d.ts:
--------------------------------------------------------------------------------
1 | import type { InternalSelector } from "./types";
2 | /**
3 | * Sort the parts of the passed selector,
4 | * as there is potential for optimization
5 | * (some types of selectors are faster than others)
6 | *
7 | * @param arr Selector to sort
8 | */
9 | export default function sortByProcedure(arr: InternalSelector[]): void;
10 | //# sourceMappingURL=sort.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/sort.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAehD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAerE"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-select/lib/types.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) Felix Böhm
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 |
8 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 |
10 | THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
11 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/lib/index.d.ts:
--------------------------------------------------------------------------------
1 | export * from "./parse";
2 | export { default as parse } from "./parse";
3 | export { default as stringify } from "./stringify";
4 | //# sourceMappingURL=index.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/lib/index.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/lib/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 | if (k2 === undefined) k2 = k;
4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5 | }) : (function(o, m, k, k2) {
6 | if (k2 === undefined) k2 = k;
7 | o[k2] = m[k];
8 | }));
9 | var __exportStar = (this && this.__exportStar) || function(m, exports) {
10 | for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11 | };
12 | var __importDefault = (this && this.__importDefault) || function (mod) {
13 | return (mod && mod.__esModule) ? mod : { "default": mod };
14 | };
15 | Object.defineProperty(exports, "__esModule", { value: true });
16 | exports.stringify = exports.parse = void 0;
17 | __exportStar(require("./parse"), exports);
18 | var parse_1 = require("./parse");
19 | Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return __importDefault(parse_1).default; } });
20 | var stringify_1 = require("./stringify");
21 | Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return __importDefault(stringify_1).default; } });
22 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/lib/parse.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,oBAAY,QAAQ,GACd,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,SAAS,CAAC;AAEhB,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,aAAK,QAAQ,GAAG,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,aAAa,CAAC;CACvB;AAED,oBAAY,eAAe,GACrB,KAAK,GACL,SAAS,GACT,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,OAAO,CAAC;AAEd,oBAAY,aAAa,GACnB,UAAU,GACV,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,SAAS,CAAC;AA6ChB;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,IAAI,SAAS,CAErE;AA4BD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAClB,QAAQ,EAAE,EAAE,CAUd"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/lib/stringify.d.ts:
--------------------------------------------------------------------------------
1 | import { Selector } from "./parse";
2 | /**
3 | * Turns `selector` back into a string.
4 | *
5 | * @param selector Selector to stringify.
6 | */
7 | export default function stringify(selector: Selector[][]): string;
8 | //# sourceMappingURL=stringify.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/lib/stringify.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"stringify.d.ts","sourceRoot":"","sources":["../src/stringify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAyBnC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,CAEhE"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/css-what/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "author": "Felix Böhm (http://feedic.com)",
3 | "name": "css-what",
4 | "description": "a CSS selector parser",
5 | "version": "4.0.0",
6 | "funding": "https://github.com/sponsors/fb55",
7 | "repository": {
8 | "url": "https://github.com/fb55/css-what"
9 | },
10 | "main": "lib/index.js",
11 | "types": "lib/index.d.ts",
12 | "files": [
13 | "lib/**/*"
14 | ],
15 | "scripts": {
16 | "test": "jest --coverage -u && npm run lint",
17 | "coverage": "cat coverage/lcov.info | coveralls",
18 | "lint": "npm run lint:es && npm run lint:prettier",
19 | "lint:es": "eslint src",
20 | "lint:prettier": "npm run prettier -- --check",
21 | "format": "npm run format:es && npm run format:prettier",
22 | "format:es": "npm run lint:es -- --fix",
23 | "format:prettier": "npm run prettier -- --write",
24 | "prettier": "prettier '**/*.{ts,md,json,yml}'",
25 | "build": "tsc",
26 | "prepare": "npm run build"
27 | },
28 | "dependencies": {},
29 | "devDependencies": {
30 | "@types/jest": "^26.0.3",
31 | "@types/node": "^14.0.5",
32 | "@typescript-eslint/eslint-plugin": "^4.1.0",
33 | "@typescript-eslint/parser": "^4.1.0",
34 | "coveralls": "^3.0.5",
35 | "eslint": "^7.0.0",
36 | "eslint-config-prettier": "^6.0.0",
37 | "eslint-plugin-node": "^11.1.0",
38 | "jest": "^26.0.1",
39 | "prettier": "^2.0.5",
40 | "ts-jest": "^26.0.0",
41 | "typescript": "^4.0.2"
42 | },
43 | "optionalDependencies": {},
44 | "engines": {
45 | "node": ">= 6"
46 | },
47 | "license": "BSD-2-Clause",
48 | "jest": {
49 | "preset": "ts-jest",
50 | "testEnvironment": "node"
51 | },
52 | "prettier": {
53 | "tabWidth": 4
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/csv-parser/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Mathias Buus
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/dom-serializer/LICENSE:
--------------------------------------------------------------------------------
1 | License
2 |
3 | (The MIT License)
4 |
5 | Copyright (c) 2014 The cheeriojs contributors
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8 |
9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10 |
11 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/dom-serializer/lib/foreignNames.d.ts:
--------------------------------------------------------------------------------
1 | export declare const elementNames: Map;
2 | export declare const attributeNames: Map;
3 | //# sourceMappingURL=foreignNames.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/dom-serializer/lib/foreignNames.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"foreignNames.d.ts","sourceRoot":"","sources":["../src/foreignNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,qBAsCvB,CAAC;AACH,eAAO,MAAM,cAAc,qBA4DzB,CAAC"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/dom-serializer/lib/index.d.ts:
--------------------------------------------------------------------------------
1 | import type { Node } from "domhandler";
2 | export interface DomSerializerOptions {
3 | /**
4 | * Print an empty attribute's value.
5 | *
6 | * @default xmlMode
7 | * @example With emptyAttrs: false
: <input checked>
8 | * @example With emptyAttrs: true
: <input checked="">
9 | */
10 | emptyAttrs?: boolean;
11 | /**
12 | * Print self-closing tags for tags without contents.
13 | *
14 | * @default xmlMode
15 | * @example With selfClosingTags: false
: <foo></foo>
16 | * @example With selfClosingTags: true
: <foo />
17 | */
18 | selfClosingTags?: boolean;
19 | /**
20 | * Treat the input as an XML document; enables the `emptyAttrs` and `selfClosingTags` options.
21 | *
22 | * If the value is `"foreign"`, it will try to correct mixed-case attribute names.
23 | *
24 | * @default false
25 | */
26 | xmlMode?: boolean | "foreign";
27 | /**
28 | * Encode characters that are either reserved in HTML or XML, or are outside of the ASCII range.
29 | *
30 | * @default true
31 | */
32 | decodeEntities?: boolean;
33 | }
34 | /**
35 | * Renders a DOM node or an array of DOM nodes to a string.
36 | *
37 | * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
38 | *
39 | * @param node Node to be rendered.
40 | * @param options Changes serialization behavior
41 | */
42 | export default function render(node: Node | ArrayLike, options?: DomSerializerOptions): string;
43 | //# sourceMappingURL=index.d.ts.map
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/dom-serializer/lib/index.d.ts.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAuC,MAAM,YAAY,CAAC;AAW5E,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAqED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAC5B,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAUR"}
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/dom-serializer/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dom-serializer",
3 | "version": "1.3.2",
4 | "description": "render domhandler DOM nodes to a string",
5 | "author": "Felix Boehm ",
6 | "sideEffects": false,
7 | "keywords": [
8 | "html",
9 | "xml",
10 | "render"
11 | ],
12 | "repository": {
13 | "type": "git",
14 | "url": "git://github.com/cheeriojs/dom-renderer.git"
15 | },
16 | "main": "lib/index.js",
17 | "types": "lib/index.d.ts",
18 | "files": [
19 | "lib/**/*"
20 | ],
21 | "dependencies": {
22 | "domelementtype": "^2.0.1",
23 | "domhandler": "^4.2.0",
24 | "entities": "^2.0.0"
25 | },
26 | "devDependencies": {
27 | "@types/jest": "^26.0.23",
28 | "@types/node": "^15.3.0",
29 | "@typescript-eslint/eslint-plugin": "^4.23.0",
30 | "@typescript-eslint/parser": "^4.23.0",
31 | "cheerio": "^1.0.0-rc.9",
32 | "coveralls": "^3.0.5",
33 | "eslint": "^7.26.0",
34 | "eslint-config-prettier": "^8.3.0",
35 | "htmlparser2": "^6.1.0",
36 | "jest": "^26.0.1",
37 | "prettier": "^2.3.0",
38 | "ts-jest": "^26.5.6",
39 | "typescript": "^4.0.2"
40 | },
41 | "scripts": {
42 | "test": "jest --coverage && npm run lint",
43 | "coverage": "cat coverage/lcov.info | coveralls",
44 | "lint": "eslint src",
45 | "format": "prettier --write '**/*.{ts,md,json}'",
46 | "build": "tsc",
47 | "prepare": "npm run build"
48 | },
49 | "jest": {
50 | "preset": "ts-jest",
51 | "testEnvironment": "node"
52 | },
53 | "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1",
54 | "license": "MIT"
55 | }
56 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/domelementtype/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) Felix Böhm
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 |
8 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 |
10 | THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
11 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12 |
--------------------------------------------------------------------------------
/Articles 6/InstrumentConverter/node_modules/domelementtype/lib/index.d.ts:
--------------------------------------------------------------------------------
1 | /** Types of elements found in htmlparser2's DOM */
2 | export declare enum ElementType {
3 | /** Type for the root element of a document */
4 | Root = "root",
5 | /** Type for Text */
6 | Text = "text",
7 | /** Type for ... ?> */
8 | Directive = "directive",
9 | /** Type for */
10 | Comment = "comment",
11 | /** Type for