https://github.com/shakfu/xtgen
A tool to generate skeleton puredata & Max/MSP external files.
https://github.com/shakfu/xtgen
c max maxmsp puredata python3
Last synced: 7 months ago
JSON representation
A tool to generate skeleton puredata & Max/MSP external files.
- Host: GitHub
- URL: https://github.com/shakfu/xtgen
- Owner: shakfu
- License: cc0-1.0
- Created: 2021-12-12T10:55:27.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-08-22T04:19:35.000Z (about 2 years ago)
- Last Synced: 2025-01-12T16:12:08.919Z (9 months ago)
- Topics: c, max, maxmsp, puredata, python3
- Language: C
- Homepage:
- Size: 1.88 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# xtgen
A tool to generate skeleton puredata and Max/MSP external files.
Has two intended purposes:
1. Generate skeleton puredata and Max/MSP external code
2. Generate related puredata and Max/MSP patch code
The idea is that an external is generically specified in a `.yml` file, and then this file is used to generate one of several target formats {Max, PD, Hybrid, ...}
The external model is roughly sketched in the `model.py` file.
## Requirements
```bash
pip3 install mako
```## Status
Can generate a basic external skeleton from a `.yml` specification file (see `counter.yml`)
Run the following for a demo
```bash
python3 xtgen.py
```A pd external project will be created in `output/counter` which should be compilable:
```bash
make -C output/counter
````## TODO
### Templates
- [ ] create hybrid dual Max/PD template
- [ ] create hybrid dual Max/PD template for audio### Support
- [ ] Add `xtgen.h` for common helper functions
### Generator
- [ ] create/generate inlets
- [ ] create/generate outlets
- [ ] params: should be either 'anything' or alternatives.
- [ ] populate variables (switch statement)
- [ ] fixed inconsistencies in `external.yml`, especially `arg` vs `param` configuration
- [ ] rulecheck: `anything` method vs. others (especially list), can be redundant.### Puredata
- [ ] generate pd help code
- [ ] generate pd project
- [ ] generate signal-based external
- [ ] add utility library for builtin scaling, clamp, ..., dsp functions?