Janky ChatGPT Acid House

I asked ChatGPT for an acid house program. It gave me this. The snare is at least somewhat sensible in terms of a general formula for drum synths, but I have no idea where it’s going with the kick drum. I had to fix a few things to make it actually work, but I mostly left it as it was. I’m very sure it wanted to use \midinote instead of \freq for the acid pbind so you can change it if you want to.

// set up tempo and time signature
TempoClock.default_(TempoClock(128/60));

// set up synthdefs
(
SynthDef(\acid, {
    arg freq=440, cutoff=1200, res=0.5, sustain=0.5, amp=0.5;
    var sig = LFSaw.ar(freq, 0, 0.5) * EnvGen.kr(Env.sine(sustain), doneAction:2);
    sig = LPF.ar(sig, cutoff, res);
    Out.ar(0, sig * amp);
}).add;
SynthDef(\bassdrum, {
    arg freq=50, decay=0.1, amp=0.5;
    var sig = Impulse.ar(freq);
    sig = RLPF.ar(sig, 120, 0.5) * EnvGen.kr(Env.perc(decay, 0.5), doneAction:2);
    Out.ar(0, sig * amp);
}).add;
SynthDef(\snare, {
    arg freq=200, decay=0.1, tone=4000, amp=0.5;
    var sig = WhiteNoise.ar();
    sig = RLPF.ar(sig, freq, 0.2);
    sig = sig + (RLPF.ar(sig, tone, 0.2) * 0.5);
    sig = sig * EnvGen.kr(Env.perc(decay, 0.5), doneAction:2);
    Out.ar(0, sig * amp);
}).add;
)


(
// define the acid house pattern
~acidPattern = Pbind(
    \instrument, \acid,
    \freq, Pseq([Pseq([55, 58, 62, 65, 62, 58, 55, 53], 8), Pseq([57, 60, 64, 67, 64, 60, 57, 55], 8)], inf),
    \cutoff, Pseq([1000, 1200], inf),
    \res, 0.5,
    \sustain, Pseq([0.1, 0.5], inf),
    \amp, 0.5,
    \dur, 0.125,
);

// define the bass drum pattern
~bassDrumPattern = Pbind(
    \instrument, \bassdrum,
    \freq, 50,
    \decay, 0.1,
    \amp, Pseq([1, 0.5, 0.5, 0.5], inf),
    \dur, Pseq([0.5, 0.25, 0.25, 0.5], inf),
);

// define the snare pattern
~snarePattern = Pbind(
    \instrument, \snare,
    \freq, 200,
    \decay, 0.1,
    \tone, 4000,
    \amp, Pseq([0, 0.5, 0, 0.5], inf),
    \dur, Pseq([0.5, 0.25, 0.25, 0.5], inf),
);

)

Ppar([~acidPattern, ~bassDrumPattern, ~snarePattern]).play