Giter VIP home page Giter VIP logo

cli-dssi-host's Introduction

* Copyright (C) 2005 James McDermott
* [email protected]
*
* This program is derived from jack-dssi-host 
* (Copyright 2004 Chris Cannam, Steve Harris and Sean Bolton).
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 01222-1307
* USA

cli-dssi-host:

A command-line DSSI host.

Installation:

$ ./configure
$ make
$ sudo make install

Usage:

$ cli-dssi-host <dssi_plugin.so>[:<label>]
  [-p [<bank>:]<preset>] (use -p -1 for default port values;
           -p -2 for random values; omit -p to read port values from stdin)
  [-l <length>] (in seconds, between note-on and note-off; default is 1s)
  [-r <release_tail>] (in seconds: amount of data to allow after note-off;
           default waits until silence (up to a maximum of 15s))
  [-f <output_file.wav>] (default == "output.wav")
  [-c <no_channels>] (default == 1; use -c -1 to use plugin's channel count)
  [-n <midi_note_no>] (default == 60)
  [-v <midi_velocity>] (default == 127)
  [-d <project_directory>]
  [-k <configure_key>=<value>] ...
  [-b] (clip out-of-bounds values, including Inf and NaN, to within bounds
       (calls exit()) if -b is omitted)

Synopsis:

cli-dssi-host writes a short .wav file with audio generated by sending 1 note-on and then 1 note-off to a DSSI plugin. You can specify the length and the MIDI note and velocity. Things like presets, labels within dlls, multiple channels and configure key-value pairs seem to work!

Examples:

$ cli-dssi-host simple.so -p -1

(which uses default values for all control-in ports);

$ cli-dssi-host less_trivial_synth.so < lts.prs

(where lts.prs is a text file containing one argument for each control-in port);

$ cli-dssi-host xsynth-dssi.so -p 0:3

(which loads program (aka preset) 3 in bank 0);

$ cli-dssi-host trivial_sampler.so:stereo_sampler -p -1 -k load=snare.wav -c -1

(where load=snare.wav is a configure key-value pair, and -c -1 tells the program to write as many channels as the stereo_sampler plugin has audio outputs).

Bugs/things to do:

The -l arg specifies length in seconds between note-on and note-off (or nearly - would have to set the note-off.time.tick exactly for that). But it's not ideal, since we still have to record the release tail. Maybe an extra arg to specify absolute length.

The function which calculates when the release tail is finished could probably be improved - e.g. by stopping at a zero-crossing, as well as waiting for a low-power frame.

cli-dssi-host's People

Contributors

jmmcd avatar trebmuh avatar

Stargazers

 avatar

Watchers

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