Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rdck/signal_collider
signal processing automata
https://github.com/rdck/signal_collider
Last synced: 3 months ago
JSON representation
signal processing automata
- Host: GitHub
- URL: https://github.com/rdck/signal_collider
- Owner: rdck
- License: mit
- Created: 2024-06-14T18:52:40.000Z (8 months ago)
- Default Branch: trunk
- Last Pushed: 2024-07-25T18:42:39.000Z (6 months ago)
- Last Synced: 2024-07-25T23:24:26.271Z (6 months ago)
- Language: C
- Homepage:
- Size: 110 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
--------------------------------------------------------------------------------
INTRODUCTION
--------------------------------------------------------------------------------This is an experimental implementation of a simple visual programming
environment for the procedural generation and synthesis of musical sequences.
It began as a dialect of the ORCA programming language, originally written by
Devine Lu Linvega:https://100r.co/site/orca.html
You may watch a short video introduction to the project here:
https://youtu.be/d8eC9he8iZM
The goal of the project is to extend ORCA's computational model with a few
basic facilities for doing synthesis and signal processing directly in the
environment, without dependence on another program or piece of hardware. This
means that, unlike the audio from an external synth controlled by ORCA, the
produced audio will have sample-accurate timing. For most purposes, this is
probably not a noticeable difference, but I found it an interesting programming
exercise.This implementation was done from scratch, without reference to the original
ORCA source code. I am writing it as a learning exercise, not to compete with
the original ORCA implementation.For the time being, the only target platform is 64bit Windows.
--------------------------------------------------------------------------------
OPERATORS
--------------------------------------------------------------------------------(conditional) a = b output bang when a is equal to b
(clock) rate C modulus output clock modulo modulus
(delay) rate D modulus output bang when equivalent clock would output zero
(random) R modulus output random value modulo modulus
(add) a + b output addition
(subtract) a - b output subtraction
(multiply) a * b output multiplication
(generate) x y G value write value at relative coordinate (x, y)
(scale) # n output semitone value of nth note of major scale
(synthesizer) ~ octave pitch duration volume synthesize sine waveMany of the operators have slightly different semantics from their ORCA
counterparts, so do not expect them to behave equivalently.--------------------------------------------------------------------------------
KEY BINDINGS
--------------------------------------------------------------------------------move cursor : arrow keys
delete value : backspace
conditional : =
clock : c
delay : d
random : r
add : +
subtract : -
multiply : *
generate : g
scale : #
synthesizer : ~
literal : 0 through 9, or shift-letter--------------------------------------------------------------------------------
BUILDING FROM SOURCE
--------------------------------------------------------------------------------You will need the MSVC developer command prompt:
https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-lineninja:
https://ninja-build.org/xxd, which is distributed with Vim for windows:
https://www.vim.org/Then run `ninja` in the project root to compile.
--------------------------------------------------------------------------------
AUTHOR
--------------------------------------------------------------------------------River Dillon
[email protected]