first commit

This commit is contained in:
Raven Scott
2025-06-16 11:12:00 -04:00
commit 2fc2d61195
2 changed files with 109 additions and 0 deletions

View File

@ -0,0 +1,36 @@
# Dark Low-Spectrum Chill House Track
Written by Raven Scott
## Overview
This project contains a dark, low-spectrum chill house track created using the [Strudel](https://strudel.cc/) music programming website. The track is designed in a common house style with a 4/4 beat at 120 BPM, emphasizing deep, moody tones in the C minor scale. It features a sub-heavy bassline, muted drums, brooding chords, and atmospheric effects, all focused in the lower frequency spectrum (201000 Hz) for an ominous, subterranean vibe. The song is structured into distinct sections—intro, buildup, main groove, breakdown, and outro—spanning 48 cycles (~96 seconds) with dynamic automation and variations to maintain engagement.
## Track Details
- **Genre**: Chill House / Deep House
- **Key**: C minor
- **Tempo**: 120 BPM (60 cycles per minute)
- **Duration**: ~96 seconds (48 cycles)
- **Mood**: Dark, atmospheric, introspective
- **Frequency Focus**: Low spectrum (201000 Hz) with sub-bass, filtered drums, and low-pitched synths
- **Structure**:
- **Intro** (0:000:16, 8 cycles): Sparse, sub-bass and pad with bytebeat FX
- **Buildup** (0:160:32, 8 cycles): Adds drums and bass with filter sweeps
- **Main Groove** (0:321:04, 16 cycles): Full arrangement with sidechained chords
- **Breakdown** (1:041:20, 8 cycles): Minimal, atmospheric with phaser chords
- **Outro** (1:201:36, 8 cycles): Fades out with lingering sub-bass and pad
## Features
- **Drums**: Punchy kick (low-passed at 120 Hz), muted clap with vowel filter ("u"/"o"), and filtered hi-hats (lpf 300 Hz) for a deep, understated groove.
- **Bass**: Dual-layered with a sine sub-bass (octave 1, lpf 100 Hz) and sawtooth bass (octave 2, lpf 250 Hz) for rich low-end presence.
- **Chords**: Cm7-Abmaj7-Fm7-G7 progression using sawtooth synths (octave 3, lpf 500 Hz) with sidechaining and phaser effects.
- **Pad**: Slow-moving sine-based pad (octave 3, lpf 400 Hz) with noise for grit.
- **FX**: Bytebeat texture (`t*(t>>10^t>>6)`) filtered at 350 Hz for eerie ambiance.
- **Dynamics**: Filter sweeps, gain fades, vibrato, and variations (via `every`, `sometimesBy`) create an evolving, club-ready arc.
- **Effects**: Heavy reverb (room 0.3, roomsize 2), delay, distortion, phaser, Leslie, and compression (-30 dB threshold, 10:1 ratio) for depth and polish.
## Technical Details
- **Language**: JavaScript (Strudel/TidalCycles syntax)
- **File**: `the_beginning.js`
- **Dependencies**: Strudel library, TidalCycles dirt-samples pack
- **Sample Pack**: Uses `github:tidalcycles/dirt-samples` for drum samples (`bd`, `cp`, `hh`) and bytebeat.
- **Visualization**: Includes a pianoroll with a dark theme (background `#111111`, active notes `#cc0000`) displaying 8 cycles.

View File

@ -0,0 +1,73 @@
// Load standard drum samples
samples('github:tidalcycles/dirt-samples');
// Base patterns for reuse across sections
const kick = s("bd").struct("x@4").gain("0.85").lpf(110).room(0.3).rsize(1.5);
const clap = s("cp").struct("~ x ~ x").gain("0.55").lpf(250).delay(0.2).delaytime(0.25).delayfeedback(0.6).vowel("u");
const hats = s("hh").struct("~ x ~ [x x]").gain("0.45").lpf(350).pan("<0.4 0.6>").speed("1.1").sometimesBy(0.2, x => x.gain("0.6"));
const subBass = n("0 2 [3 1] 0").scale("C:minor").s("sine").lpf(90).lpenv(1).lpq(1).gain(saw.range(0.4, 0.7)).octave(1); // Sidechain to kick
const bass = n("0 3 [2 4] 1").scale("C:minor").s("sawtooth").lpf(200).lpenv(1.5).lpq(1).gain("0.65").octave(2).bpf(150).bpq(0.5); // Notch at kick freq
const chords = chord("<Cm7 Abmaj7 Fm7 G7>").voicing().s("sawtooth").lpf(450).lpenv(3).release(0.35).delay(0.25).delaytime(0.2).octave(3).gain("0.45");
const pad = n("0 2 4").scale("C:minor").s("sine").lpf(350).gain("0.25").octave(3).slow(3).room(0.5);
const fx = s("bytebeat").bbexpr('t*(t>>10^t>>6)').bbst(8000).gain("0.2").lpf(300).room(0.6).pan(brand);
// Song structure with sections
arrange(
// Intro (8 cycles / ~16s): dark, sub-heavy start
[8, stack(
pad.gain("0.3").noise(0.05), // Reduced noise
subBass.gain("0.3").lpf(80).every(4, x => x.gain("0.5")), // Softer sub-bass
fx.slow(4).gain("0.15"), // Subtle FX
hats.gain("0").every(4, x => x.gain("0.25").lpf(250)) // Muted hats
)],
// Buildup (8 cycles / ~16s): add drums, bass, and filter sweep
[8, stack(
kick.gain("0.65").lpf(sine.range(90, 130)), // Softer, filtered kick
clap.gain("0.45").every(2, x => x.vowel("o")),
hats,
subBass.gain("0.5"),
bass.lpf(sine.range(180, 250)).gain("0.55"), // Smoother filter sweep
pad,
chords.gain("0").every(4, x => x.gain(saw.range(0.15, 0.35))) // Subtle chord fade
)],
// Main Groove (16 cycles / ~32s): full, clean groove
[16, stack(
kick,
clap,
hats,
subBass,
bass,
chords.gain(saw.range(0.25, 0.5)), // Gentle sidechain
pad.leslie(0.3).lrate(0.5), // Subtle Leslie
fx.slow(2).every(4, x => x.gain("0.25").lpf(350)) // Controlled FX
)],
// Breakdown (8 cycles / ~16s): minimal, atmospheric
[8, stack(
kick.gain("0.35").lpf(80), // Muffled, clean kick
clap.degradeBy(0.5).gain("0.35").room(0.6),
hats.gain("0.25").lpf(sine.range(250, 400)).speed("1.4"),
subBass.gain("0.6").vib(0.5).vibmod(0.2),
chords.gain("0.4").lpf(sine.range(400, 550)).phaser(0.8).phaserdepth(0.6), // Softer phaser
pad.gain("0.35").noise(0.07),
fx.slow(3).gain("0.2")
)],
// Outro (8 cycles / ~16s): fade out, sub-bass focus
[8, stack(
kick.gain(saw.range(0.5, 0)),
clap.gain("0.25").delay(0.3).delaytime(0.3),
hats.gain("0.25").lpf(saw.range(350, 150)),
subBass.gain("0.5").lpf(80),
bass.gain("0.35").lpf(180),
chords.gain("0.25").release(0.5).lpf(400),
pad.gain("0.25").slow(4).noise(0.05),
fx.gain(saw.range(0.2, 0))
)]
)
.cpm(60) // 120 BPM
.room(0.25).roomsize(1.5) // Reduced reverb
.compressor("-35:8:5:0.01:0.1") // More headroom
.pianoroll({ labels: 1, cycles: 8, autorange: true, background: "#111111", active: "#cc0000", inactive: "#444444" })