Skip to main content

A multi-featured commandline interface MIDI step sequencer

Project description

pystepseq

A commandline musical step-sequencer with some advanced features.

TO INSTALL:


  • Make sure you have Python installed

  • Choose as install method, pip or git (pip is recommended if you have it)

From pip:

    pip install pystepseq

From git:

Either download from the 'dist' directory here, or:

    git clone https://github.com/akjmicro/pystepseq

Once downloaded, in the 'pystepseq' directory:

    python setup.py install

  • Files will be installed into a Python lib directory on your system. E.G., on a Linux system, something like /usr/local/lib/Python3.6

  • You may also want to edit the variables at the top of the 'constants.py' These will reflect what MIDI port you are using (e.g., on Linux, '/dev/snd/midiC1D0') and also the multicast port you will be broadcasting the metronome on (and the listeners listening on). Default is 8123.

Post-install SETUP:

  • YOU NEED TO SETUP YOUR COMPUTER FOR MULTICASTING VIA LOOPBACK.

Here's how it's done on Linux (I don't know about anywhere else, sorry):

    route add -net 224.0.0.0 netmask 240.0.0.0 dev lo

IF YOU DON'T DO THE ABOVE STEP, NO MIDI NOTES WILL BE TRIGGERED! The metronome (tempotrigger.py) is dependant on the network multicasting for functionality.

  • YOU NEED TO MAKE SURE YOUR MIDI INSTRUMENTS ARE RECEIVING.

Of course, set up your software (or hardware) synths to be listening on the same MIDI port you have set up pystepseq to push MIDI messages to. It is beyond the scope of this help to show you how to do that, since all synths differ. But as an example, you might set qjackctl to take the output of a virtual MIDI port (e.g. '/dev/snd/midiC1D0', which will show up in a tool like qjackctl as 'Virtual Raw Midi 1-0') and patch it to the MIDI input of the synth/sampler of your choice.

Running:

You should be fine simply starting the script and using the online help.

To start pystepseq, do the following from the commandline:

    pystepseq

You will see a prompt:

    pystepseq('h' for help)-->

This will create a new voice called 'a' if you type what is after the prompt:

    pystepseq('h' for help)--> =a

This will start 'a' playing after a brief pause until the clock is lined up to a certain beat start:

    pystepseq('h' for help)--> a/

This will stop 'a' playing after all its current cycle is exhausted:

    pystepseq('h' for help)--> a\

The online help will give you a hang of the rest of the commands. The system is designed to be succint, in that all the commands have been designed to minimize typing, and are usually a single character, or two-character mnemonic. So for instance, "Take voice 'a' and randomize its volume sequence" would be:

    pystepseq('h' for help)--> arv

...which stands for " 'a' random volumes "

Much more sense will be had once you play with it via the online help.

Enjoy!

Aaron Krister Johnson

Please report bugs and successes to akjmicro@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pystepseq-1.0.0.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

pystepseq-1.0.0-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file pystepseq-1.0.0.tar.gz.

File metadata

  • Download URL: pystepseq-1.0.0.tar.gz
  • Upload date:
  • Size: 25.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for pystepseq-1.0.0.tar.gz
Algorithm Hash digest
SHA256 19eb18c5d335ce7f7f22726f337edbc2ef5a98840132758710449c3578727ce5
MD5 e8a6f788be8f09a777a3b8aca885a8cb
BLAKE2b-256 dc7419aad234c15b41d8c2c3ff1c6e76410911817a48833ef3926ec7106952ed

See more details on using hashes here.

File details

Details for the file pystepseq-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pystepseq-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for pystepseq-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2fa4e1d74a82749f5092d5a1876b1b0e82132acbf0113ca3ef67c85ab3dc8225
MD5 8af54dcead415ccedab70c5656a4167f
BLAKE2b-256 4890ad7c9fda5ddbcda033d63be5ecd2a02cc4bbecf9494977ebe1742cb69f23

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page