kylestetz / slang Goto Github PK
View Code? Open in Web Editor NEW๐ค a simple audio programming language implemented in JS
Home Page: http://slang.kylestetz.com
License: ISC License
๐ค a simple audio programming language implemented in JS
Home Page: http://slang.kylestetz.com
License: ISC License
Hello,
For helping people to write slang syntax, it could be nice to implement a visual of all instruments and his notes.
Why not a graphical builder too ?
It'd be great to be able to store patterns, etc as variables for re-use. Maybe it'd be good to distinguish it from sound objects, but it'd be an excellent addition either way.
Users should be able to save their patches to a unique URL for storing and sharing.
Slang is a static site served directly by nginx at the moment, so this will involve adding a super-simple express server (which should still serve index.html
from /public
as a static file) with:
/save
endpoint that accepts a JSON blob containing a text
field with the slang code/:patch
route that loads the patch from a mongo database (if it is found) and renders it to a template so that the code can be pre-populated in the editorStretch goals:
I see that to specify a Rhythm we can either use absolute values (time in seconds) or a kind of rhythmic notation, which is an integer
+ n
or t
I see it has to do with compound times, and by testing it, I saw that #n
represents a time span of 2/#
seconds, and #t
represents a time span of 4/(3#)
seconds. So if we have a 4t
and a 2n
, the first one will make 3 beats for every beat of the second one.
However, I can't figure out what's the logic behind this, or I can't find any reference on this notation (I don't know how is it called). Or also why we don't have a 2t
or 1t
. It would be good to have a bit more documentation around this.
So, please... add this support... It would be good to open my sound with an extension of its own or a protocol. It would be cool and easy to have direct access to the files without much trouble. ;D
I'd love to see a CLI that converts MIDI files into Slang and vice versa.
The (drums)
function can be extended to support a type
argument, e.g. (drums 2)
, which controls what set of samples is played. A precedent around lazy loading each kit was already established in Drums.js; extending this should be easy and won't force users to download audio files unnecessarily.
So, please... add support for autocomplete code in Sublime Text and very others programs this type. ;D
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.