Skip to main content

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.8

  • Set an environment variable called PYSTEPSEQ_MIDI_PORT for a default midi device/port. For example, in Linux, using the bash shell, you could add the following to your ~/.bashrc:

    export PYSTEPSEQ_MIDI_PORT=/dev/snd/midiC1D0

Use a tool like amidi -l to find which particular device on your system should be the target of pystepseq's output. For example, hw:1,0 would correspond to /dev/snd/midiC1D0

  • 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

Release files for pystepseq 2.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pystepseq 2.0.2
File Size Uploaded
pystepseq-2.0.2.tar.gz 20.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pystepseq 2.0.2
File Interpreter ABI Platform
pystepseq-2.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 41.9 kB

Release files / pystepseq-2.0.2.tar.gz

Download URL pystepseq-2.0.2.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9169ede390263297433e1565123c2b7f25a5fb3e795619ac929b3ec18a35c4ec
BLAKE2b-256 checksum
How to use checksums
2816231dd2c245905f9a6b891a031094b0d47a69f0fd8d85dcf8a8f398fb01ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3

Release files / pystepseq-2.0.2-py3-none-any.whl

Download URL pystepseq-2.0.2-py3-none-any.whl
Size 21.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3cd7a5a9f89a6f93cd98a1175d253e3f6f3383585f5fcccb867f27bb11ef1e4a
BLAKE2b-256 checksum
How to use checksums
83138e4bf8af7c7bba90af560229d04bbc47e2ee04d6a5b1ccb4b9e5cf620bc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

2.0.2 This release

2 release files

2.0.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page