Skip to content

Instantly share code, notes, and snippets.

@mohayonao
Last active December 20, 2015 08:29
Show Gist options
  • Save mohayonao/89894e9bfae9930b60fa to your computer and use it in GitHub Desktop.
Save mohayonao/89894e9bfae9930b60fa to your computer and use it in GitHub Desktop.
////////////////////////////////////////////////////////////////////////////////
/* old
* T("sin", {freq:880, mul:0.5}).play();
*/
let sin = timbre((T) => {
return T("SinOsc.ar", { frequency: 880, mul: 0.5 });
}).start();
////////////////////////////////////////////////////////////////////////////////
/* old
* var sin = T("sin").play();
*
* sin.set({freq:880});
*/
let sin = timbre((T) => {
return T("SinOsc.ar", { frequency: T("param", { name: "freq", value: 440 }), mul: 0.5 });
}).start();
sin.set("param", 880);
////////////////////////////////////////////////////////////////////////////////
/* old
* var sine1 = T("sin", {freq:440, mul:0.5});
* var sine2 = T("sin", {freq:660, mul:0.5});
*
* T("perc", {r:500}, sine1, sine2).on("ended", function() {
* this.pause();
* }).bang().play();
*/
let chord = timbre((T) => {
return T([
T("SinOsc.ar", { frequency: 440 }),
T("SinOsc.ar", { frequency: 660 }),
]).T("Line.ar", { startValue: 0.5, duration: 0.5, doneAction: 2 })
}).start();
////////////////////////////////////////////////////////////////////////////////
/* var synth = T("OscGen", {wave:"saw", mul:0.25}).play();
*
* var keydict = T("ndict.key");
* var midicps = T("midicps");
* T("keyboard").on("keydown", function(e) {
* var midi = keydict.at(e.keyCode);
* if (midi) {
* var freq = midicps.at(midi);
* synth.noteOnWithFreq(freq, 100);
* }
* }).on("keyup", function(e) {
* var midi = keydict.at(e.keyCode);
* if (midi) {
* synth.noteOff(midi, 100);
* }
* }).start();
*/
const keyCodeToNoteNumber = require("keyCodeToNoteNumber");
const midicps = require("midicps");
const Saw = timbre((T, frequency) => {
return T("Saw", { frequency: frequency, mul: 0.25 });
});
window.addEventListener("keydown", (e) => {
let noteNumber = keyCodeToNoteNumber(e.keyCode);
Saw.noteOn(noteNumber, timbre.currentTime, midicps(noteNumber));
});
window.addEventListener("keyup", (e) => {
Saw.noteOff(noteNumber, timbre.currentTime);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment