monome eurorack module
http://monome.org/docs/modular/teletype
src: source code for the teletype algorithmmodule:main.cand additional code for the Eurorack module (e.g. IO and UI)tests: algorithm testssimulator: a (very) simple teletype command parser and simulatordocs: files used to generate the teletype manual
See the libavr32 repo for more detailed instructions. You will also need ragel installed and on the path, see below.
Make sure that the libavr32 submodule is correctly checked out
cd module
make clean
make
./flash.shTo run the tests:
cd tests
make clean # only needed if you've built the module code
make testThe Ragel state machine compiler is required to build the firmware. It needs to be installed and on the path:
brew install ragel # Homebrew (OSX)
apt install ragel # Debian / Ubuntu / WSL (Windows 10)
pacman -Sy ragel # Arch Linux / MSYS2 (Windows)Version 6.9 is known to work.
See section 6.3 in the Ragel manual for information on the => scanner constructor used.
If you want to add a new OP or MOD, please create the relevant tele_op_t or tele_mod_t in the src/ops directory. You will then need to reference it in the following places:
src/ops/op.c: add a reference to your struct to the relevant table,tele_opsortele_mods. Ideally grouped with other ops from the same file.src/ops/op_enum.h: please runutils/op_enums.pyto generate this file using Python3.src/match_token.rl: add an entry to the Ragel list to match the token to the struct. Again, please try to keep the order in the list sensible.
There is a test that checks to see if the above have all been entered correctly. (See above to run tests.)
To format the code using clang-format, run make format in the project's root directory. This shouldn't format any code in the libavr32 submodule.
In order to build the documentation you will need Python 3.6 or greater, Pandoc, as well as the Python libraries specified in the requirements.pip file. In addition, to generate the PDF output you will also require TexLive (or MacTex).
On OSX the dependencies can be installed with brew.
brew install python3
brew install pandoc
brew cask install mactex # warning, MacTex is a very large install!
cd utils
pip3 install -r requirements.pipOn Linux I would suggest using virtualenv to install all the Python dependencies (including those in the requirements.pip file), and to ensure that the python3 binary is version 3.6 or greater instead of the default of your distro.
To generate the documentation:
cd docs
make # build both teletype.pdf and teletype.html
make teletype.pdf # build just teletype.pdf (requires TexLive or MacTex)
make teletype.html # build just teletype.htmlTo create a teletype.zip file containing:
teletype.hexflash.shupdate_firmware.commandteletype.pdf
Run make release in the project's root directory