Skip to main content

eyesy simulator

Project description

eyesim

This is a simulator for the eyesy visual synth. Its purpose is to allow you to develop new eyesy visualization modes when you're too lazy to get out of bed and plug in audio, video, and power cables.

The simulator is a command line tool. As input, you give it a path to the mode folder containing a main.py file conforming to the eyesy API. You can also give it a path to an audio file to use. Currently, only 16 bit WAV are usable. The audio file input is optional.

Install

pip install eyesim

Usage

You can run a test mode by supplying "test" as the path.

eyesim --mode-folder test

However, normally you would invoke it like:

eyesim --mode-folder "/path/to/S - Nice Mode/" --audio-file "/path/to/song.wav"

When the simulator is running, pressing the space bar to toggle visibility of the sliders and buttons that simulate the knobs on the physical eyesy device.

The full command line usage is:

$ eyesim --help
usage: eyesim [-h] -m MODE_FOLDER [-a AUDIO_FILE] [-w WIDTH] [-t HEIGHT]

Start eyesy simulation

optional arguments:
  -h, --help            show this help message and exit
  -m MODE_FOLDER, --mode-folder MODE_FOLDER
                        path to folder containing mode's main.py script
  -a AUDIO_FILE, --audio-file AUDIO_FILE
                        path to audio file to play (optional)
  -w WIDTH, --width WIDTH
                        window width in pixels
  -t HEIGHT, --height HEIGHT
                        window height in pixels

Caveats

The eyesy code runs Python 2, and all the stock modes are Python 2. But, this package is written in Python 3. I did this in order to use the pygame widgets package and to use the latest scipy for reading wav files. The result is that you might find your mode or a stock mode breaks. In my experience, this is almost always due to one of two things:

  1. a Python 2 style print statement, i.e., print "foo" rather than print("foo")
  2. assumed integer division, i.e., assuming 1/2 results in an integer

The latter is easily fixed by explicitly using integer division (the // operator), which is compatible with both Python 2 and 3. Or, you can explicitly convert to int by int(1/2).

References

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

eyesim-0.0.3.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

eyesim-0.0.3-py3-none-any.whl (4.9 MB view details)

Uploaded Python 3

File details

Details for the file eyesim-0.0.3.tar.gz.

File metadata

  • Download URL: eyesim-0.0.3.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for eyesim-0.0.3.tar.gz
Algorithm Hash digest
SHA256 0ef0dc9d165c08722b0fd86af4b472b65560c63e68bb0f1eb5982ca32baa9bbc
MD5 f3ac8fab9d132f1b9901f8c82566b505
BLAKE2b-256 e1392ce83287f64b4d1d11c4d6a4927593e775e6a124c197c3c4e6b3701e4f23

See more details on using hashes here.

File details

Details for the file eyesim-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: eyesim-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for eyesim-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 30901a372be9cd85b2cfc4eee00fc7bc294258a608697e9cadb57c53fbee7397
MD5 f98990cd15529e314f48ede087a0e37d
BLAKE2b-256 4a0b92ee3a6a1c38dd29cb402a41ca09cd13a7ab5b257a71014a32105d75a70f

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