Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
!/modules/appkit/
!/modules/controlpanel/
!/modules/sayso/
!/modules/synthstation/
!/modules/audioinstruments/
!/modules/audioeffects/
!/modules/audiocomponents/
Expand Down
10 changes: 6 additions & 4 deletions docs/guides/choose-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ A name is one of three things:
- **A path**, to a module of your own: a directory with a `manifest.py`, or a
C module with its `micropython.mk` or `micropython.cmake`.
- **`all`**: every module except the opt-in ones. `picotts`, `tflite` and
`vision` are opt-in (each has an `OPT_IN` file saying why), so name them to
get them: `--modules all,picotts`, and for the other two
`vision` are opt-in, and so is `synthstation` (each has an `OPT_IN` file
saying why), so name them to get them: `--modules all,picotts` or
`--modules all,synthstation`, and for tflite and vision
[Use esp-vision's modules](use-esp-vision-modules.md).

A module never brings another, and nothing checks dependencies. If you name
Expand All @@ -23,9 +24,10 @@ A module never brings another, and nothing checks dependencies. If you name
## Python packages from omnipython-lib

Our Python-only packages come from omnipython-lib: `pydevices`, `palettes`,
`pdwidgets`, `appkit`, `controlpanel`, `sayso`, `audioinstruments` and
`pdwidgets`, `appkit`, `controlpanel`, `synthstation`, `sayso`, `audioinstruments` and
`audioeffects` are modules whose manifest requires them from it. `sayso`, the
Spotify controller, freezes only into desktop and web builds. Any other package
Spotify controller, freezes only into desktop and web builds, and
`synthstation`, an app, only when you name it: `all` leaves it out. Any other package
of it, such as a board config, can be named too.

## The desktop board config
Expand Down
5 changes: 3 additions & 2 deletions docs/reference/modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ tracked here or linked from a sibling checkout or cloned at the commit in
|---|---|
| `audiodsp`, `pygraphics`, `ulab` | Cloned at the commit in `modules.lock` when `modules/<name>` is missing, or linked from a sibling checkout. |
| `lvgl` | [omnipython-lvgl](https://github.com/PyDevices/omnipython-lvgl), fetched at the commit in `modules.lock` into `modules/.omnipython-lvgl`, or linked from a sibling checkout. A build compiles its `ports/micropython` or `ports/circuitpython`, whichever the interpreter is, and `all` includes it. |
| `pydevices`, `palettes`, `pdwidgets`, `appkit`, `controlpanel`, `sayso`, `audioinstruments`, `audioeffects` | Manifests here that require the Python packages from omnipython-lib. `audiocomponents` is the old name for the last two together and still builds both. |
| `pydevices`, `palettes`, `pdwidgets`, `appkit`, `controlpanel`, `synthstation`, `sayso`, `audioinstruments`, `audioeffects` | Manifests here that require the Python packages from omnipython-lib. `audiocomponents` is the old name for the last two together and still builds both. |
| `micropython-lib` | MicroPython's own upstream packages, frozen from the checkout the MicroPython tree carries. |
| `tflite`, `vision` | [esp-vision's modules](../guides/use-esp-vision-modules.md), opt-in: `all` leaves them out. |

[`modules/all`](https://github.com/PyDevices/micropython-pydevices/tree/main/modules/all) is not a module but the rule behind `all`: every module beside it
except those with an `OPT_IN` file: `picotts`, `tflite` and `vision`.
except those with an `OPT_IN` file: `picotts`, `synthstation`, `tflite` and `vision`.

## Which modules build on CircuitPython

Expand Down Expand Up @@ -63,6 +63,7 @@ it is. "Unix" is CircuitPython's unix port, built and imported in
| lvgl | yes | all five | One name for both interpreters: a CircuitPython build compiles omnipython-lvgl's `ports/circuitpython`. A board build needs `CIRCUITPY_GIFIO=0`, since LVGL links its own AnimatedGIF decoder; our boards set it. |
| micropython-lib | no | no | MicroPython's own upstream packages. |
| appkit, controlpanel | frozen | frozen | Python only. controlpanel draws with LVGL. |
| synthstation | when named | when named | Python only, and opt-in: `all` leaves it out. The app that plays an instrument on controlpanel from a MIDI keyboard; it needs LVGL, audiodsp, controlpanel and audioinstruments. |
| sayso | desktop and web only | desktop and web only | Python only: the Spotify controller. A board build that names it freezes nothing. |
| pydevices, palettes, pdwidgets | frozen | frozen | Python only. On unix, pydevices also freezes its desktop files (the boards drop them), and pdwidgets and palettes with it: together their names pass CircuitPython's 64 KB frozen-string pool, so [`build_mp.py`](https://github.com/PyDevices/micropython-pydevices/blob/main/build_mp.py) builds the unix port with four-byte qstr offsets (patches 0001 and 0010). Boards keep two-byte offsets. |

Expand Down
2 changes: 1 addition & 1 deletion modules.lock
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ audiodsp https://github.com/PyDevices/audiodsp.git 733b44b63f
omnipython-lvgl https://github.com/PyDevices/omnipython-lvgl.git e6f88b7737e3c5252e92a6e717142875127816ca
pygraphics https://github.com/PyDevices/pygraphics.git ecc4eb2348b3289f4383d51c6f401e922621e724
ulab https://github.com/v923z/micropython-ulab.git 1d3ddd8f5228e2c7335dac71f4846e6abb0ec9f9
omnipython-lib https://github.com/PyDevices/pydevices.git 6390b79d1754cf980a803568a1d58b5fd4efc144
omnipython-lib https://github.com/PyDevices/pydevices.git 3d7c92d183adfd08cc10d4c6b93d7672a27a1167
2 changes: 2 additions & 0 deletions modules/synthstation/OPT_IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Opt-in: name synthstation to build it; --modules all leaves it out.
It's an app rather than a library: install it with mip on the board that runs it, or freeze it into a build made for that board.
7 changes: 7 additions & 0 deletions modules/synthstation/manifest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# synthstation, from omnipython-lib: the app that plays an audioinstruments
# instrument from a MIDI keyboard on controlpanel's panel. It needs LVGL,
# audiodsp, controlpanel and audioinstruments, so name them too (or use
# all,synthstation); the library brings midiports with it. Opt-in: all leaves
# it out (OPT_IN). Frozen at opt=3.
include("../library.py")
require("synthstation", library="omnipython-lib", opt=3)
Loading