Giter VIP home page Giter VIP logo

cmd_synth's People

Contributors

hclarke avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cmd_synth's Issues

duration handling

right now, everything has the same duration. would be nice to support things like concatenation and crossfading

this would require:

  • input time means "sustain time" instead of "total duration"
  • handling caching differently (or removing it)
  • deal with infinite vs finite length clips
  • deal with different start times

discard command

a command to just pop the top of the stack would help with debugging

log command

for debugging, would be nice to have a function to print each item on the stack to stderr

pass commands as args

first arg should be duration, as it is now. additional args should be treated as commands run before the program starts

example: synth 1 440 sin, with an empty stdin, should produce a 1 second sound with a 440 hz sin wave

different wave shapes

square, triangle, sawtooth waves

would be nice: triangle wave with a skew/bias parameter to cover sawtooth, triangle, reverse sawtooth, and everything else like that

note names

they could be aliases for constants.
similar to 440 @A

or they could be a one-argument function that takes the octave
like ```[ 12 mul exp 440 mul ] @A

leaning toward the latter

load/store

should be able to save the top of the stack to a variable, and use it later

store: @foo

load: foo

note as command line arg

the command line args should represent what piano key was hit and for how long

eg. synth 1 220 or synth 1 -1 A

or prettier: synth sustain=1 note=A octave=-1

available to the input as note or something

exp and log

need log and exp to do harmonics well. could be base 2 for octaves, or base 1.05946 for semitones

command lists

it'd be nice to have a component that has a list of commands. when evaluated, it should run all of its commands, and then evaluate the top element of the stack

example program:

[ 0.5 mul ] @half
440 sin
half

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.