GithubHelp home page GithubHelp logo

playtronica-tools's Introduction

Background

I recieved the Playtron as a gift and quickly fell in love with the device. I noticed that the out-of-the-box MIDI synth solutions offered by the manufacturers were missing an option to quantize the device's MIDI signals, often resulting in laggy, awkward beats when trying to play on tempo.

I decided to have a crack at building a simple tool for loading samples and playing within quantized guardrails.

Features to come

I will be adding an option to quickly package audio files into a new sample pack.

Quantizer

This class enables the user to apply (albeit rough) quantization to the signals received from their Playtronica "Playtron" device. The Player class receives the following arguments:

tempo             # tempo in BPM (60 is passed by default)
metronome         # Boolean value indicating whether to play a metronome click at the start of every measure (True by default)
sample_pack_path  # If no sample pack is chosen via "Load Sample Pack", the default will be a folder called "samples" in the main directory
quantize          # Boolean value indicating whether to quantize or not

The user should place 16 samples in the samples folder. The names are irrelevant, as long as the file types are .mp3 or .wav.

The samples will be loaded from the "bottom up", starting with the connection marked C1 and upward. Currently there is no support for specifying which connection will play a particular sample.

Hit space at any time to end session.

How to Use

Check requirements

This has been tested on Windows 10 and Mac OS 10.12.6 using Python 3.9.2 but should work for other recent versions.

As for modules, you will need:

pygame
keyboard
PyQt5

Which can all be installed via pip.

Download or clone this repository

Either clone using Git or download .zip folder to your system.

Run main.py

Navigate to the host directory and run using python main.py (You can do this by opening command prompt and entering python C:\path\to\host\directory\main.py). You should see the interface below.

NOTE that on Mac you may need to run as administrator using sudo python3 main.py. A better idea would be to check if you are a member of the audio group: grep audio /etc/group and if not, add your USER to it: sudo adduser USER audio.

Interface

Load Sample Pack

Click the "SAMPLES" button and navigate to a folder with 16 audio files (that end with .mp3 or .wav). At the moment it needs to be 16 files, but if you have fewer than that just copy and paste them until you have 16. Ha.

Tempo

Select your tempo in BPM.

Options

Quantize and Metronome are selected by default. If you are inclined to go unquantized, the metronome will also be turned off (at the moment).

Play

Hit PLAYTRON. When you're done be sure to hit 'space' confidently. :)

The app itself is incomplete, but should be enough to get you going. Please contact me with any issues.

Demo Video

IMAGE ALT TEXT HERE

playtronica-tools's People

Contributors

avibrown avatar inktrap avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

inktrap

playtronica-tools's Issues

Help

Friend, hello!
Thank you for you work.
I am not a programmer. I don't know python. But I figured it out.
I launch the program by double clicking on main.py.
I select a folder, press a button "playtron"... and the program closes.

image

Could you log the midi output of playtron please?

Hi! I was just wondering if you could log the midi output of the playtron so that I have a clearer picture how I would have to remap it to work with e.g. a volca fm. The playtronica website just says that the names of the notes are on the back.

playtron

could you mkae this work for ios? :):):):)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.