Guest User

Untitled

a guest
Jun 2nd, 2025
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. // Synthwave Dream
  2. // by ChucK Assistant
  3.  
  4. // Drum Machine
  5. SndBuf kick => dac;
  6. me.dir() + "data/kick.wav" => kick.read;
  7. SndBuf snare => dac;
  8. me.dir() + "data/snare.wav" => snare.read;
  9. SndBuf hihat => dac;
  10. me.dir() + "data/hihat.wav" => hihat.read;
  11.  
  12. // Synths
  13. TriOsc bass => LPF bassFilter => dac;
  14. SawOsc lead => ADSR env => NRev reverb => dac;
  15. SqrOsc pad => JCRev padReverb => dac;
  16.  
  17. // Parameters
  18. 0.7 => bass.gain;
  19. 0.4 => lead.gain;
  20. 0.3 => pad.gain;
  21. 0.1 => reverb.mix;
  22. 0.2 => padReverb.mix;
  23. bassFilter.set(400, 1);
  24. env.set(10::ms, 200::ms, 0.5, 100::ms);
  25.  
  26. // Chord progression
  27. [48, 53, 55, 58] @=> int chords[]; // Cm9 voicing
  28. [0, 3, 4, 2] @=> int progression[]; // i-IV-V-iii
  29.  
  30. // Tempo
  31. 120 => float bpm;
  32. (60 / bpm)::second => dur quarter;
  33.  
  34. // Main loop
  35. while(true) {
  36. for (0 => int beat; beat < 16; beat++) {
  37.  
  38. // Drums
  39. if (beat % 4 == 0) kick.pos(0);
  40. if (beat % 4 == 2) snare.pos(0);
  41. if (beat % 8 < 7) hihat.pos(0);
  42.  
  43. // Bass (root notes)
  44. if (beat % 4 == 0) {
  45. Std.mtof(chords[progression[beat/4 % 4]] - 24) => bass.freq;
  46. }
  47.  
  48. // Melody
  49. if (beat % 8 == 0) {
  50. chords[progression[(beat/4) % 4]] + [0,2,4,7][Math.random2(0,3)] => int note;
  51. Std.mtof(note + 12) => lead.freq;
  52. env.keyOn();
  53. }
  54.  
  55. // Pad (every chord change)
  56. if (beat % 4 == 0) {
  57. chords[progression[beat/4 % 4]] + 7 => int chordTone;
  58. Std.mtof(chordTone) => pad.freq;
  59. }
  60.  
  61. quarter => now;
  62. }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment