Code Monkey home page Code Monkey logo

encue's Introduction

Encue

Encue (pronounced "on cue") is a simple TUI-based application for running sound cues. It is primarily designed for use in a theater setting.

Encue gets sound cues from a "script" stored in the app's working directory. This script should be a YAML file named script.yaml and contain cues which reference audio files relative to the working directory.

Defining Cues

The most important field of the script is the cues field, which contains an ordered list of all cues in the file.

A cue contains the following fields:

- label: ...        # A unique identifier for this cue used by other cues to reference this one
  description: ...  # OPTIONAL: a short description of the cue to display to the user
  hint: ...         # OPTIONAL: the line or visual cue that signals this cue
  # ACTION: see below

Cue actions

In addition to the fields above, each cue must contain one action directive. Action directives usually have a short form with a single parameter and a long form with more advanced parameters.

Possible action directives include:

playback: <filename>  # Play the file at `filename`
# OR
playback:
  file: <filename>
  volume: <x>       # Volume (0-100) to start at (default: 100)
  duration: <x>     # OPTIONAL: only play the first `x` seconds of the file
  fade_in: <x>      # OPTIONAL: fade in for `x` seconds

playlist: <folder>  # Play all files in `folder` as a playlist
# OR
playlist:
  folder: ...
  files:                  # OPTIONAL: list of files to play
    - ...
    - ...                 # Must specify at least one of `files` and `folder`
    - ...
  volume: ...             # Volume (0-100) to start at (default: 100)
  loop: <true|false>      # Loop playlist (default: false)
  shuffle: <true|false>   # Shuffle files in playlist (default: false)

fade: <target>      # fade cue <target>
# OR
fade:
  target: <target>
  volume: ...       # Volume (0-100) to fade to (default: 0)
  duration: ...     # Number of seconds to fade (default: 5)

stop: <target>      # immediately stop target cue

Example Script file

The following is an example of a valid script file

cues:
- label: SQ1
  description: my first sound cue
  playback: my_sound_cue.mp3
- label: SQ2
  description: fade out my first sound cue
  fade:
    target: SQ1
    duration: 20

Planned Features

encue is under active development as a hobby/side project. Below are some features I hope to implement soon:

Additional UI elements:

  • An audio visualizer
  • A clock
  • A list of active playback cues with progress bar for elapsed time
  • Show cue loading status
  • Jump to a cue by its label

Additional cue parameters:

  • Crossfade between files in a playlist
  • Fade out playback cues after set duration

Programmable Soft keys

  • Quick cues (fade current cue, playback, etc)

encue's People

Contributors

bpjordan avatar

Watchers

 avatar

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.