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

https://github.com/schollz/teoperator

Make OP-1 and OP-Z drum and synth patches from any sound. :musical_keyboard:
https://github.com/schollz/teoperator

audio audiowaveform ffmpeg golang op1 opz sample teenage-engineering

Last synced: about 2 months ago
JSON representation

Make OP-1 and OP-Z drum and synth patches from any sound. :musical_keyboard:

Awesome Lists containing this project

README

        

# teoperator

*teoperator* lets you easily make drum and synth patches for the op-1 or op-z. You don't need this software to use *teoperator* - you can use most of the functionality via [teoperator.com](https://teoperator.com). You can also use this software via a command-line program that gives you more functionality - to create a variety of patches from any number of music files (wav, aif, mp3, flac all supported). I did a [write-up of how it works](https://schollz.com/blog/op1/), basically I had to reverse engineer pieces of the metadata in the op-1 and op-z patches.

## Installation

*teoperator* requires ffmpeg. First, [install ffmpeg](https://ffmpeg.org/download.html).

To use as a command line program you first need to [install Go](https://golang.org/doc/install) and then in a terminal run:

```
go get -v github.com/schollz/teoperator@latest
```

That will install `teoperator` on your system.

## Usage

You can use *teoperator* to create drum patches or sample-based synth patches for the op-1 or op-z. The resulting file is a `.aif` converted to mono 44.1khz with metadata representing key-assignment information for the op-1 or op-z. You can use any kind of input music file (wav, aif, mp3, flac, etc.).

### Make synth sample patches

To make a synth patch just type:

```
teoperator synth piano.wav
```

Optionally, you can include the base frequency information which can be used on the op-1/opz to convert to the right pitch:

```
teoperator synth --freq 220 piano.wav
```

### Make a drum kit patch

To make a drumkit patch you can convert multiple files and splice points will be set at the boundaries of each individual file:

```
teoperator drum kick.wav snare.wav openhat.wav closedhat.wav
```

### Make a drum sample patch

To make a sample patch you can convert one sample and splice points will be automatically determined by transients:

```
teoperator drum vocals.wav
```

### Make a drum loop patch

To make a drum loop patch you can convert one sample and define splice points to be equally spaced along the sample:

```
teoperator drum --slices 16 drumloop.wav
```

## Web server ([teoperator.com](https://teoperator.com))



The webserver requires a few more dependencies. You can install them via `apt`:

```
$ sudo apt install imagemagick
$ sudo add-apt-repository ppa:chris-needham/ppa
$ sudo apt-get update
$ sudo apt-get install audiowaveform
$ sudo -H python3 -m pip install youtube-dl
```

And then you can run the server via

```
$ git clone https://github.com/schollz/teoperator
$ cd teoperator && go build -v
$ teoperator server
```

Then open a browser to `localhost:8053`!

# License

MIT license

Please note THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.