Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/john-kurkowski/music

Tasks for publishing my music.
https://github.com/john-kurkowski/music

daw music reaper

Last synced: 2 months ago
JSON representation

Tasks for publishing my music.

Awesome Lists containing this project

README

        

# music

Tasks for publishing my music.

The code is idiosyncratic with my music project conventions and therefore
applicable mainly to me. However, the code may be a useful example for using
[Reaper](https://reaper.fm)'s Python API.

## Prerequisites

1. A Python install _with framework_. For example, with
[pyenv](https://github.com/pyenv/pyenv):
```zsh
PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install
```
1. [SWS Extension](https://www.sws-extension.org/)

## Install

1. ```zsh
pip install .
```
1. Open Reaper
1. Configure Reaper for Python (per
[reapy's README](https://github.com/RomeoDespres/reapy/blob/0.10.0/README.md#installation))
```zsh
python -c "import reapy; reapy.configure_reaper()"
```
1. Restart Reaper

## Usage

```zsh
music --help
```

For example:

```zsh
music render
```

Which renders the current project in Reaper, with terminal output like the
following.

[![asciicast](https://asciinema.org/a/630914.svg)](https://asciinema.org/a/630914)

## Contribute

Install for local development:

```sh
pip install --editable '.[testing]'
pre-commit install
```

### Tests

```sh
pytest
```

Besides tests, checks are run on commit, after installing the pre-commit hook
above, and on push. You can also run them manually.

```sh
pre-commit run --all-files
```

### Debug

When using `breakpoint()`, you'll probably want to disable
[rich](https://github.com/Textualize/rich) output, via the `TERM=dumb`
environment variable. That will make the Python interactive debugger easier to
see.