1
0
Fork 0
baconscript/README.md

106 lines
2.9 KiB
Markdown
Raw Normal View History

2018-10-17 20:56:59 -04:00
# Bacon Script
2018-10-21 01:27:18 -04:00
A theoretical exersise to control a Hog 4 via OSC, with comment macros.
The comment macro grammer described in `CommentMacro.g4` is based upon the Hog 3.9 manual, Chapter 22.4. The python3 implementation in `OscMacroDefinitions.py` is based on Chapter 24.2 in the same manual.
2018-10-21 01:27:18 -04:00
2018-10-21 01:32:53 -04:00
Some macros are unsupported/unsupportable with this method. Some macro freatures, like timing, are not yet implemented. Refer to the **Features** table for specific notes.
2018-10-17 20:56:59 -04:00
## Installing
2018-10-17 21:09:16 -04:00
Install Python-OSC for output.
2018-10-21 01:32:53 -04:00
```bash
2018-10-21 01:27:18 -04:00
$ pip install python-osc
```
2018-10-17 20:56:59 -04:00
2018-10-17 21:09:16 -04:00
Install Antlr4 for input.
2018-10-21 01:32:53 -04:00
```bash
2018-10-21 01:27:18 -04:00
$ pip install antlr4-python3-runtime
```
2018-10-17 21:09:16 -04:00
2018-10-21 01:32:53 -04:00
Use git to retrieve a copy of the code.
```bash
$ git clone http://company235.com/git/kevin/baconscript.git
$ cd baconscript
```
2018-10-21 01:27:18 -04:00
## Testing
2018-10-20 18:27:10 -04:00
2018-10-21 01:27:18 -04:00
Edit `server.cfg` to the correct values for your Hog4.
2018-10-17 21:09:16 -04:00
2018-10-21 01:27:18 -04:00
`comment.py` will accept macros on the command line, or will run an interactive prompt.
2018-10-17 21:09:16 -04:00
2018-10-21 01:32:53 -04:00
```bash
2018-10-21 01:27:18 -04:00
$ ./comment.py
comment#
```
2018-10-17 20:56:59 -04:00
2018-10-21 01:27:18 -04:00
Use the builtin command `exit` to quit the interacive prompt.
2018-10-17 20:56:59 -04:00
2018-10-21 01:27:18 -04:00
## Developing
2018-10-17 20:56:59 -04:00
2018-10-21 01:27:18 -04:00
You must also install the ANTLR tool. On a mac with homebrew, do:
2018-10-21 01:32:53 -04:00
```bash
2018-10-21 01:27:18 -04:00
$ brew install antlr
```
2018-10-17 20:56:59 -04:00
2018-10-21 01:27:18 -04:00
Update the lexer and parser for Python3
2018-10-21 01:32:53 -04:00
```bash
2018-10-21 01:27:18 -04:00
$ antlr -Dlanguage=Python3 CommentMacro.g4
```
## Features
Only features that are supported in both OSC and Comment Macros are able to be implimented in baconscript. This table lists all comment macros (as of 3.9) that are implimented in python.
| Grammar Feature | eg. | Supported |
| ----------------|-----|-----------|
| fade times | t5 | no |
| multiple targets | 1,2 | Yes |
| ranges | 1>4 | Yes, intigers only |
2018-10-21 01:27:18 -04:00
| multiple macros | GM1:GL3 | Yes |
| network devies | h4 | Yes, H devies only |
2018-10-21 01:27:18 -04:00
| Macro | Function | Supported | Notes |
|-------|----------|-----------|-------|
| GM | Go Master | Yes | |
| HM | Halt Master | Yes | |
2018-10-22 17:33:38 -04:00
| AM | Assert Master | Yes | on current master only |
2018-10-22 17:36:10 -04:00
| RM | Release Master | Yes | on current master only |
2018-10-22 17:27:39 -04:00
| RA | Relase All | Yes | |
2018-10-21 01:27:18 -04:00
| RO | Release Others | no | |
2018-10-22 17:36:10 -04:00
| FM | Fade Master | Yes | no times, no * |
| FGM | Fade Grand Master | Yes | no times |
2018-10-21 01:27:18 -04:00
| CM | Choose Master | Yes | |
| GL | Go List | Yes | |
| HL | Halt List | Yes | |
| AL | Assert List | no | |
| RL | Release List | Yes | |
| GB | Go Batch | no | |
| HB | Halt Batch | no | |
| AB | Assert Batch | no | |
| RB | Release Batch | no | |
| GS | Go Scene | Yes | |
| HS | Halt Scene | Yes | |
| AS | Assert Scene | no | |
| RS | Release Scene | Yes | |
| CP | Change Page | no | |
| RV | Recall View | no | |
| ET | Enable Timecode | no | |
| DT | Disable Timecode | no | |
| OT | Open Timecode Toolbar | no | |
| MS | Midi String | no | possible? |
| MN | Midi Note | no | |
| RN | Reset Node | no | |
| GK | Go Keystroke Macro | no | |
| HK | Pause Keystroke Macro | no | |
| RK | Stop Keystroke Macro | no | . |
2018-10-17 20:56:59 -04:00
## Future Work
Pleas feel welcome to submit pull requests or patches that enable support for:
2018-10-21 01:27:18 -04:00
* Sending target ranges as OSC batches
* Send multi-macro line as an OSC batch
2018-10-17 20:56:59 -04:00
* Timing on master fades