Daniel McKemie

Daniel McKemie

@dmckemie77.bsky.social

Daniel McKemie is a composer, percussionist, electronic musician, researcher, and arranger based in New York City.

23 Followers 18 Following 17 Posts Joined Jan 2025
10 months ago
Banner image for the EarSketch SUMMIT on May 21. 10am - 12pm Eastern Time. Explore, learn, and shape the future of EarSketch! Educators and tech enthusiasts welcome. Teachers feel free to stream for your classes. This is will be a celebration of music, code, and community!

So excited for our upcoming #EarSketch SUMMIT on May 21. To the bsky EarSketch community, please spread the word! gatech.zoom.us/webinar/regi...

@armstrongedtech.bsky.social
@ekinginspired.bsky.social
@dmckemie77.bsky.social
@coraedtech.bsky.social
@daltron3000.bsky.social
@kalypsospeaks.com

7 2 0 2
1 year ago

// SC; "Airpods/ANC Piece"
// Set Pods to "Adaptive"
(
Routine({
inf.do {{var f=rrand(18000.0,24000.0);var e=EnvGen.kr(Env.perc(0.01,0.2));var s=SinOsc.ar(f)*e;var r=GVerb.ar(s,10,6,0,0.5,15,1,0.1,0.5,30);
Out.ar([0,1],r*1);}.play;rrand(0.1,5).wait;}}).play;
)
tinyurl.com/3htz25r6

1 0 0 0
1 year ago
Preview
Harmonic Phasing A fundamental with 9 harmonics randomly moving in and out of phase. A few iterations. Made in p5.js

// p5
let h=[],f,l=[]
function setup() {f=random(99);for(i=1;i<=9;i++) {o=new p5.Oscillator();o.freq(f*i);o.amp(.3/(i*i));o.start();h.push(o);l.push({rate:random(.1),phase:random(TWO_PI)})}}
function draw(){t=10;h.forEach((o,i)=>o.freq(f*(i+1)+sin(t*l[i].rate+l[i].phase)*f*(i+1)*.2))}
bit.ly/3F0mKNB

0 0 0 0
1 year ago
Preview
Iterated Ripple Noise Iterated Ripple Noise generated in SuperCollider https://www.researchgate.net/figure/The-process-of-making-iterated-rippled-noise-IRN-IRN-was-generated-by-delaying-white_fig2_236090672

// SuperCollider
(
{var n=4,d=0.002,v=0.005,gl=0.1,gr=0.15,g=0.5,nz,irnL,irnR,tL,tR;nz=WhiteNoise.ar;tL=d+(SinOsc.kr(gl)*v);tR=d+(SinOsc.kr(gr)*v);irnL=nz;irnR=nz;n.do{irnL=irnL+(DelayC.ar(irnL,tL*(n-1),tL)*g);irnR=irnR+(DelayC.ar(irnR,tR*(n-1),tR)*g);};[irnL,irnR]*0.25}.play;
)
tinyurl.com/hvfcbxja

1 0 0 0
1 year ago
Preview
Modal Sines SuperCollider modal melody

// SuperCollider
(
SynthDef(\s,{|f=220,a=0.2,d=0.5|Out.ar(0,SinOsc.ar(f)*EnvGen.kr(Env.perc(0.01,d,a,-4),2)!2);}).add;
Pbind(\instrument,\s,\f,Pseq([220,247,262,294,330,262,294,330,349,330,294,262,220],inf),\dur,Pseq([0.5,0.5,0.75,0.25,1],inf),\a,0.15).play;)
tinyurl.com/2pwtrt66

0 0 0 0
1 year ago
Preview
Wave Decays In p5.js

// p5.js
function setup(){v=new p5.Reverb(); g()}
function g(){let f=random(20,2000); let d=random(2,5)
p(f,d); let n=random(100,3000); setTimeout(g,n)}
function p(f,d){
let o=new p5.Oscillator(); o.freq(f); o.start()
v.process(o,3); o.amp(0,2)
setTimeout(()=>o.stop(),d*1000)}
bit.ly/4jSaGOl

0 0 0 0
1 year ago
Preview
Sheppish Glisses In SuperCollider. Still trying to dial this one in under 300 characters, but I liked how this sounded so here it is.

//SuperCollider
(SynthDef(\s,{|f=440,p=4|var c=1/(p*20);var sig=4.collect{|n|SinOsc.ar(f*VarSaw.kr(c,n/p, 1).exprange(1/(2**(p/2)),2**(p/2))*SinOsc.kr(c,(3*pi/2)+(2*pi*n/p)).range(0, 1))}.sum*(0.2/p)*Line.kr(0,1,5);Out.ar(0,sig!2);}).add;[1,5/4,3/2].collect{|r|Synth(\s,[\f,300*r]);};)
bit.ly/4jKWSVQ

1 0 0 0
1 year ago
Preview
Waffling Harmonics Wandering spectra automated in SuperCollider

// SuperCollider
({var b=40; var n=10; var f,o;
f=SinOsc.ar(b) * 0.1;o=Array.fill(n, { |i|
var h=i+1; var r=b*h;
var a=SinOsc.kr(0.003+0.001*h,Rand(0,2*pi)).range(0,0.15);
var p = SinOsc.kr(0.01.rand+0.005).range(-1,1);Pan2.ar(SinOsc.ar(r) * a,p)});(f+o.sum).clip2(0.9)}.play;)
tinyurl.com/mwwxv3cs

1 0 0 0
1 year ago
Preview
Dust Signals Daniel McKemie is a composer, percussionist, electronic musician, researcher, and arranger based in New York City. His current work includes using techniques rooted in Music Information Retrieval in a

// SuperCollider
(
{
var dust = Dust.ar(1.5);
var signal = SinOsc.ar(TRand.ar(40, 4000, dust)) * Decay.ar(dust, 0.1);
signal = Pan2.ar(signal, TRand.ar(-1, 1, dust));
Out.ar(0, FreeVerb.ar(signal, 0.35, 0.8, 0.4));
}.play;
)

on.soundcloud.com/oe7FPFZdoqyZ...

0 0 0 0
1 year ago
Preview
Noise Pans Wrote this one on a subway ride in p5.js

// p5.js
function setup() {
let n = new p5.Noise();
setInterval(() => {
n.start();
let r = random(-1, 1);
n.pan(r);
let d = random(10, 100);
setTimeout(() => n.stop(), d);
}, random(10, 100));
}
tinyurl.com/48h27wrh

1 0 0 0
1 year ago
Preview
Drifting Sines Best heard not in headphones

// .py
import numpy as n
import sounddevice as s
l,h,d,sr=1e4,2e4,99,44100
t=n.linspace(0,d,sr*d)
f=(n.sin(2*n.pi*n.cumsum(n.interp(t,n.linspace(0,d,d),n.random.uniform(l,h,d)))/sr)+n.sin(2*n.pi*n.cumsum(n.interp(t,n.linspace(0,d,d),n.random.uniform(l,h,d)))/sr))
s.play(f,sr)
s.wait()
bit.ly/4hfHUph

1 0 0 0
1 year ago
Video thumbnail

1S=54272
2FORT=0TO10
3FORL=0TO24:POKES+0,0:NEXT
4FORT=0TOINT(RND(0)*800):NEXT
5POKES+1,INT(RND(1)*95)
6POKES+5,INT(RND(1)*95):POKES+6,INT(RND(1)*25)
7POKES+19,INT(RND(1)*50):POKES+20,INT(RND(1)*10)
8POKES+24,15
9POKES+4,37
10FORT=1TOINT(RND(1)*400):NEXT
11POKES+4,36
12FORT=1TO100:GOTO2
13POKES+24,0

0 0 0 0
1 year ago
Preview
EarSketch Bongos Daniel McKemie is a composer, percussionist, electronic musician, researcher, and arranger based in New York City. His current work includes using techniques rooted in Music Information Retrieval in a

from earsketch import *
import random as r
init()
x=DMCKEMIE77_B
n=50
[fitMedia(x,i,r.uniform(1.5,16.5),17.5) or setEffect(i, PAN, LEFT_RIGHT, r.uniform(-100, 100), i + 1, r.uniform(-100,100),i+1) or setEffect(i,RINGMOD,RINGMOD_MODFREQ,r.uniform(1,100)) for i in range(1,n+1)]
finish()
bit.ly/4hunYP2

3 1 0 0
1 year ago
VCR-1005

That’s it. It’s meant to act quick peak to 0 for triggering external circuits. The next one will be more “musical”. There’s a whole record and writings on the idea here. tinyurl.com/mjnd3zkx

0 0 0 0
1 year ago
Preview
Commodore Program Piece #4 Daniel McKemie (né Steffey) is a web developer and multimedia artist based in New York City. Currently, he is focusing on technology that seeks to utilize the internet and browser technology to realiz

1 REM BASIC for C64 SID Chip
2 REM C64 Program Piece 4
3 X=5
4 Y=10
5 Z=0
6 S=54272
10 FOR I=0 TO 10
20 P=RND(RND(0))
30 A=-LOG(P)/X
40 Z=Z+P
51 POKES+1,1
52 POKES+4,65
60 IF A<0.2 THEN:GOTO 70
61 IF A>0.2 THEN:GOTO 80
70 POKES+24,0:GOTO 100
80 POKES+24,15:GOTO 100
100 NEXT I:GOTO 10
bit.ly/3CfYtSO

0 0 1 0
1 year ago

// p5.js
let s; let d=1;
function setup() {
s=new p5.Oscillator('sine');
s.amp(0);
s.start();
setInterval(x, random(1,100));
}
function x() {
s.freq(random(20, 5000));
let p=d;
s.pan(p);
s.amp(random(0.1,1));
setTimeout(() => {s.amp(0);},10); d*=-1;
}

3 0 0 0
1 year ago
Preview
ChucK Sines // ChucK Gain g => dac;fun int r(int x,int y){return Math.random2(x,y);}while(true){r(1,100)=>int b;r(1,50)=>int t;b::ms=>now;for(0=>int i;i<t;i++){r(40,8000)=>int f;r(5,50)=>int s;r(1,10)=>int a;r(51

// ChucK
Gain g=>dac;fun int r(int x,int y){return Math.random2(x,y);}while(true){r(1,100)=>int b;r(1,50)=>int t;b::ms=>now;for(0=>int i;i<t;i++){r(40,8000)=>int f;r(5,50)=>int s;r(1,10)=>int a;r(51,200)=>int d;SinOsc o=>dac;f=>o.freq;(a/10)=>g.gain;s::ms=>now;0=>o.gain;d::ms=>now;}}
bit.ly/3Ei1GSa

0 0 0 0
1 year ago

In an effort to use social media as a force for creative good and general well being, I am going to use this account to share sound/music/video works written in code that can be realized by running it as-is. All under the 300 character limit. I'll include my own realizations, when applicable.

3 0 0 0