Skip to content
Snippets Groups Projects
Select Git revision
  • development
  • master default protected
  • voluxcontroller-0.1.0a2
  • voluxcontroller-0.1.0a1
  • voluxexamplemodule-0.11.1
  • voluxcli-0.3.1
  • volux-0.11.2
  • voluxexamplemodule-0.11.0
  • voluxcli-0.3.0
  • volux-0.11.0
  • voluxcli-0.2.0
  • voluxexamplemodule-0.10.0
12 results

volux

  • Clone with SSH
  • Clone with HTTPS
  • Volux

    Volux is a modular system for creating entertainment workflows with local, attached or network devices.

    It's modular, extensible and both developer and end-user friendly!


    Let me know what neat stuff you make with it!

    🐦 Twitter @DrTexx

    📨 Email denver.opensource@tutanota.com


    My goal for Volux is to create something like IFTTT or Node-RED, but for local, attached or network devices.

    Table of Contents

    Installation

    pip install voluxcli  # for everyone
    # OR
    pip install volux  # for developers

    Demos

    COMMAND MODULES REQUIRED DESCRIPTION
    volux demo basic
    • voluxexamplemodule
    A simple source, transformer and destination working together.
    volux demo audio
    • voluxaudio
    • voluxexamplemodule
    Visualize the loudness of your default recording device in the terminal.
    volux demo hue
    • voluxlight
    Slowly animates the hue of a LIFX device in a cycle.

    note: more complex, module-specific demos can be found in the repositories of modules themselves 🙂

    Official Modules

    NAME DESCRIPTION
    voluxaudio source: VoluxAudioStream
    • Simple interface to read audio streams on your computer.
    • No configuration required.
    • Supports computer/desktop audio 🔊
    • Supports external microphones 🎙️
    voluxcli CLI for Volux
    • Easy way to run demos
    voluxexamplemodule source: VoluxNumber
    • Returns a randomly generated number.
    transformer: VoluxMultiply
    • Multiplies a number.
    destination: VoluxCliBar
    • Prints a bar to the terminal.
    voluxlight destination: VoluxLightLifxLan

    About Modules

    Volux modules are just Python modules, except the classes they contain are always subclasses of the following:

    • VoluxSource
    • VoluxTransformer
    • VoluxDestination
    SUPERCLASS DESCRIPTION EXAMPLES
    VoluxSource Outputs only
    Get information from host or network devices
    • Desktop audio amplitude
    • Average screen colour
    • Interactive GUI overlays
    VoluxTransformer Inputs and outputs
    Transforms given inputs into new values or types.

    Hint: Chain multiple together to create data pipelines
    • Colour generator
    • Graphics processor
    • Value clamp
    VoluxDestination Inputs only
    Control host or network devices in different ways
    • Smart light control
    • Computer/desktop audio mixer control
    • Image generation
    • Virtual webcams

    Development

    Installation

    git clone https://gitlab.com/volux/volux.git
    cd volux
    poetry install

    Building

    # build 'volux' dist
    pushd volux && poetry install && ./development-scripts/build.sh && popd
    # build 'voluxcli' dist
    pushd voluxcli && poetry install && ./development-scripts/build.sh && popd
    # build 'voluxexamplemodule' dist
    pushd voluxexamplemodule && poetry install && ./development-scripts/build.sh && popd

    Advanced Topics

    Enabling Bash Completion

    NOTE: You only need to do this once. If you're unsure if you've already enable bash completion, check your ~/.bashrc file first.

    echo '' >> ~/.bashrc
    echo 'eval "$(_VOLUX_COMPLETE=bash_source volux)"' >> ~/.bashrc

    note: this will only work if voluxcli is already installed


    For Developers

    If you're using poetry (recommended for development), you will need to do the following every time you want to use shell completion:

    poetry shell
    source enable-bash-completion.sh
    Explanation...

    This appears to be due to poetry shell loading ~/.bashrc before it adds the corresponding virtualenv's [...]/bin directory to the $PATH. You can test this by temporarily adding echo $PATH to the end of your ~/.bashrc file and then opening a virtualenv with poetry shell.

    Importantly shell completion only works if it can execute code from the voluxcli dist (this is how click provides shell completion). Therefore if voluxcli is inaccessible in your virtual environment when ~/.bashrc is loaded, an error will occur and shell completion will not work.

    Links