-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlibtrackerboy.nim
96 lines (76 loc) · 3.67 KB
/
libtrackerboy.nim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
##[
libtrackerboy is a utility library used by trackerboy, a Game Boy tracker. This
library provides the core functionality needed by the UI, and is also known as
the backend.
Looking for trackerboy?
* The repository for the desktop application is [here](https://github.com/stoneface86/trackerboy)
* Click [here](https://trackerboy.org/manual) for the user manual.
This library handles:
* Game Boy APU emulation and sound synthesis
* Manipulating module data
* Module playback and exports
* Reading/Writing module files
## Usage
```nim
import libtrackerboy # import everything
import libtrackerboy/[data, io] # import specific modules (Recommended)
```
### Available modules
| Module | Description |
|-----------------------------------------|------------------------------------------------|
| [apu](libtrackerboy/apu.html) | Game Boy APU emulation |
| [apuio](libtrackerboy/apuio.html) | APU I/O access, provides ApuIo concept |
| [common](libtrackerboy/common.html) | Common types/procs used throughout the library |
| [data](libtrackerboy/data.html) | Data model |
| [editing](libtrackerboy/editing.html) | Utilities for editing pattern data |
| [engine](libtrackerboy/engine.html) | Song playback, or driver implementation |
| [io](libtrackerboy/io.html) | Module serialization/deserialization |
| [ir](libtrackerboy/ir.html) | Intermediate representation for import/export |
| [notes](libtrackerboy/notes.html) | Note lookup procs, note values |
| [text](libtrackerboy/text.html) | Text conversion and parsing |
| [tracking](libtrackerboy/tracking.html) | Music tracking and pathing |
| [version](libtrackerboy/version.html) | Version type and consts |
### Exporter modules
Modules that provide exporting to other formats are located in the exports
subfolder, `libtrackerboy/exports`.
| Module | Description |
|---------------------------------------|------------------------------------------------|
| [wav](libtrackerboy/exports/wav.html) | Wav file exporter |
### Engine modules
These modules are mostly only used by the engine module, but can be imported
if low-level details of the engine are needed.
| Module | Description |
|----------------------------------------------------------|-------------------------------|
| [apucontrol](libtrackerboy/engine/apucontrol.html) | APU Register writes |
| [enginecontrol](libtrackerboy/engine/enginecontrol.html) | Core components of the Engine |
| [enginestate](libtrackerboy/engine/enginestate.html) | Current state of the Engine |
| [frequency](libtrackerboy/engine/frequency.html) | Frequency effects |
.. note:: Modules in the private folder (libtrackerboy/private) are private to
the library and should not be imported by users of the library.
## See also
* [Module file format specification](module-file-format-spec.html)
]##
import
./libtrackerboy/apu,
./libtrackerboy/common,
./libtrackerboy/data,
./libtrackerboy/editing,
./libtrackerboy/engine,
./libtrackerboy/io,
./libtrackerboy/notes,
./libtrackerboy/text,
./libtrackerboy/tracking,
./libtrackerboy/version,
./libtrackerboy/exports/wav
export
apu,
common,
data,
editing,
engine,
io,
notes,
text,
tracking,
version,
wav