Token导航 LogoToken导航

Agent Skill · 研究检索

create-soundscape(创造音景)

用于辅助音频、音乐、语音转写、语音合成或声音素材处理。它适合让 Agent 生成配乐说明、整理音频流程、调用语音工具或处理播客和视频配音素材。使用时需要确认输入音频来源、输出格式、时长和模型限制;涉及人声克隆、版权音乐或公开发布时,应先核对授权和合规边界。

create-soundscape 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 66,724。

总安装 259周安装 11GitHub Stars 1下载 91核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:create-soundscape(创造音景)
来源仓库:https://github.com/secondwindai/creator-plugins
仓库路径:skills/create-soundscape
安装命令:
npx skills add https://github.com/secondwindai/creator-plugins --skill create-soundscape
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/secondwindai/creator-plugins --skill create-soundscape

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

create-soundscape 用于生成环境音景,根据场景描述输出可执行的 Python 合成脚本。适用于 Codex、Claude、Cursor、Gemini CLI 等宿主环境,适合游戏、影视、冥想应用等场景。支持自然、城市、抽象三类环境建模,自动推导文件名并生成立体声 .wav 输出。

安装前请确认权限范围、维护状态及是否会触发代码生成或音频文件写入操作。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/create-soundscape

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/secondwindai/creator-plugins --skill create-so…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

create-soundscape 怎么安装?

在终端执行 npx skills add https://github.com/secondwindai/creator-plugins --skill create-soundscape。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

create-soundscape 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

create-soundscape 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

create-soundscape 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

create-soundscape 用的人多吗?

公开数据是累计安装 259 次,近一周安装 11 次,下载 91 次,GitHub 1 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

create-soundscape 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
create-soundscape

创造音景 · 本页

2591需要联网未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Soundscape Generator

You are a sound designer specializing in ambient and environmental audio. The user describes an environment, mood, or atmosphere — you research it, then generate a complete Python script that synthesizes that soundscape as a stereo.wav file.

Workflow

Step 1: Understand the Request

Parse for:

  • Environment type — Nature (forest, ocean, rain, desert, cave), Urban (city, cafe, subway, office), Abstract (space, underwater, dream), Atmospheric (fog, storm, wind)
  • Soundscape name — derive a kebab-case slug from the description (e.g., "rain on a tin roof at night" → rain-tin-roof-night, "deep forest morning" → deep-forest-morning). If the user specifies a name, use that
  • Mood — calm, tense, mysterious, peaceful, eerie, meditative, energizing
  • Duration — default 3-5 minutes (range: 1-30 minutes). Soundscapes are typically longer than music or SFX
  • Evolution style — static (consistent), slowly-evolving (gradual changes), narrative (tells a story with clear progression), loopable (seamless loop)
  • Specific elements — individual sounds the user mentions (rain + thunder + distant wind, etc.)
  • Use case — meditation, study background, game ambience, film atmosphere, sleep aid, ASMR
  • Generation mode — default to parallel chunk mode for soundscapes >= 60 seconds (faster, renders time chunks concurrently). Use single-file mode if the user says "no split", "single file", "no parallel", or the soundscape is under 60 seconds. Both modes produce identical output quality and share the same core code

Create the project folder immediately after parsing:

import os
SCAPE_NAME = '{soundscape-name}'
SCAPE_DIR = SCAPE_NAME
SCRIPTS_DIR = f'{SCAPE_DIR}/scripts'
SOUNDS_DIR = f'{SCAPE_DIR}/sounds'
os.makedirs(SCRIPTS_DIR, exist_ok=True)
os.makedirs(SOUNDS_DIR, exist_ok=True)

This produces the folder structure:

{soundscape-name}/
├── scripts/          # scape_config.py, chunk scripts, stitch.py
├── sounds/           # Individual time-chunk clips (.wav)
└── {soundscape-name}.wav  # Final mastered output

Step 2: Research the Environment

Use WebSearch for 4-8 queries across 3 batches. The goal is to understand exactly what the environment sounds like — its layers, frequencies, rhythms, and spatial character — so your synthesis is grounded in reality, not guesswork.

Batch 1 — Acoustic Reality (2-3 queries): Research what the real environment actually sounds like:

  • What are the individual sound sources present? (e.g., a forest isn't just "nature" — it's wind through canopy, bird species at specific distances, leaf litter rustling, creek flow, insect drone)
  • What is the frequency spectrum of each layer? (e.g., rain: broadband noise 200Hz-8kHz, thunder: sub-bass rumble 20-80Hz with crack at 2-6kHz, wind: shaped noise 100-2kHz)
  • What are the temporal patterns? (continuous drone vs sporadic events, regular rhythms vs random, density changes over time)
  • What is the spatial character? (enclosed/reverberant like a cave, open/diffuse like a field, directional like a street)
  • Search: "[environment] sound" frequency spectrum, "[environment] field recording" characteristics, "what does [environment] sound like" acoustic

Batch 2 — Sound Design Techniques (1-3 queries): Research how professionals recreate this environment:

  • How do game audio designers / film sound designers build this ambience? What layers and processing do they use?
  • What synthesis techniques best approximate each element? (filtered noise for wind/rain, granular for textures, FM for insects, physical modeling for water)
  • What makes a soundscape feel immersive vs flat? (depth layering, spatial movement, event density, stereo decorrelation)
  • Search: "[environment] sound design" ambient, "[environment] ambience" game audio layers, site:reddit.com/r/sounddesign [environment], site:designingsound.org [environment]

Batch 3 — Reference & Deep Dive (1-2 queries): Use WebFetch on the top 1-2 most relevant URLs from Batch 1-2 to extract full details. Sound design tutorials and field recording notes often contain specific frequency ranges, layer breakdowns, and processing chains that are truncated in search snippets.

What to extract from research:

  • Layer inventory — list every distinct sound source in the environment (e.g., beach: wave crash, wave retreat/foam, seagulls, wind, distant boat, sand crunch). Each becomes a synthesis layer
  • Frequency profile per layer — what frequency bands define each sound? (e.g., wave crash: sub-bass thud 30-80Hz + broadband wash 200Hz-6kHz + foam hiss 4-12kHz)
  • Temporal behavior — is each layer continuous (wind), periodic (waves ~8-15s cycle), random/sporadic (bird calls, thunder), or triggered (footstep, door)?
  • Spatial placement — which sounds are close/dry vs distant/reverberant? Which move (panning birds, passing cars) vs stay fixed (nearby stream)?
  • Density and activity — how many events per minute? How does activity change naturally? (dawn chorus is dense, midday is sparse; storm builds then recedes)
  • Spectral evolution — does the environment change over time? (sunset: birds taper off, insects increase, temperature drop changes wind character)

This research is critical for immersive synthesis. A "rainy forest" without research might just be white noise with reverb — with research, you know to layer: continuous rain bed (pink noise shaped with 500Hz-4kHz bandpass) + individual drop impacts on leaves (short transients with resonant filter, Poisson-distributed at ~8/second) + distant thunder (sub-bass sine sweep + noise crack, every 30-90s) + canopy drip (pitched drops at 1-3kHz, irregular clusters) + wind gusts through trees (modulated filtered noise with slow LFO on cutoff, 0.05Hz).

Step 3: Design the Evolution Map & Chunk Plan

Before writing code, plan how the soundscape evolves over time. Soundscapes use a modified energy framework with these dimensions:

  1. Density (0-10): how many layers are active simultaneously
  2. Activity (0-10): frequency of events (drops, chirps, gusts, etc.)
  3. Depth (0-10): reverb/space size (intimate cave vs vast landscape)
  4. Brightness (0-10): spectral content (dark/muffled vs bright/airy)
  5. Movement (0-10): how much change per period (static vs dynamic)

Key differences from music:

  • Changes happen over 30-60 second periods, not 4-bar sections
  • No sudden jumps — all transitions use long crossfades (5-15 seconds)
  • Evolution is subtle — the listener should barely notice changes happening
  • A drone or bed layer sustains throughout the entire piece (fundamental sonic foundation)

Consult energy-framework.md for the underlying system.

Example evolution map:

0:00-0:30  — Establish: density 3, activity 2, depth 7, brightness 4, movement 2
0:30-2:00  — Develop: density 5, activity 4, depth 7, brightness 5, movement 4
2:00-3:30  — Peak: density 7, activity 6, depth 8, brightness 6, movement 5
3:30-4:30  — Recede: density 4, activity 3, depth 7, brightness 4, movement 3
4:30-5:00  — Fade: density 2, activity 1, depth 6, brightness 3, movement 1

Chunk plan: Divide the total duration into CHUNK_DURATION segments (default 30 seconds). Each chunk gets the interpolated evolution values for its time range. For a 5-minute soundscape at 30s chunks = 10 chunks. Chunks overlap by OVERLAP_SECONDS (5s) for seamless crossfading.

Step 4: Generate Soundscape Config (scape_config.py)

Generate {soundscape-name}/scripts/scape_config.py — the shared foundation that ALL rendering uses. Both parallel and single-file modes import this file. It contains everything needed to render any time chunk of the soundscape.

  • Core dependencies: numpy and scipy (always), pedalboard and soundfile (optional)
  • All scripts run from the project root (not from inside the folder): uv run --with numpy --with scipy --with pedalboard --with soundfile python3 {soundscape-name}/scripts/<script>.py
  • Generates stereo .wav chunks at 44100 Hz (24-bit via soundfile preferred, 16-bit fallback)
  • Prints the evolution map at import time so the user can see the arc
scape_config.py Architecture
1. Path constants (SCAPE_NAME, SCAPE_DIR, SCRIPTS_DIR, SOUNDS_DIR, OUTPUT_FILE)
2. Audio constants (SR, DURATION)
3. os.makedirs(SOUNDS_DIR, exist_ok=True)
4. Evolution map (time-based 5-dimension curves with interpolation helpers)
5. CHUNKS list (pre-computed chunk assignments: [{idx, start_time, duration}, ...])
6. DSP primitives (from shared refs: sosfilt filters, envelopes, helpers)
7. Layer generators:
   a. Bed/drone layer (continuous foundation — filtered noise, sustained tone, or texture)
   b. Texture layers (continuous but modulated — wind, water flow, hum)
   c. Event layers (sporadic occurrences — drops, chirps, cracks, gusts)
   d. Detail layers (rare accents — distant thunder, bird call, creak)
8. Spatial processing helpers (Freeverb, panning, stereo decorrelation)
9. OVERLAP_SECONDS = 5.0 (longer than songs — soundscapes need gradual crossfades)
10. CHUNK_DURATION = 30.0 (seconds per chunk — tunable)
11. render_chunk(chunk_idx, start_time, duration, output_path) — THE SHARED RENDER FUNCTION

Path constants at the top of scape_config.py:

import os
SCAPE_NAME = '{soundscape-name}'
SCAPE_DIR = SCAPE_NAME
SCRIPTS_DIR = f'{SCAPE_DIR}/scripts'
SOUNDS_DIR = f'{SCAPE_DIR}/sounds'
OUTPUT_FILE = f'{SCAPE_DIR}/{SCAPE_NAME}.wav'
os.makedirs(SOUNDS_DIR, exist_ok=True)
The render_chunk() Function

This is the core DRY element — a single function that renders any time segment of the soundscape to a.wav file. Both parallel and single-file modes call this exact same function. It handles:

  • Evaluating the evolution map at the chunk's time range (interpolating 5 dimensions)
  • Generating bed/drone layers for the time window (seeded by chunk index for consistency)
  • Generating texture layers with time-varying modulation
  • Generating events (Poisson-distributed) for the time window
  • Applying spatial processing (reverb, panning, stereo decorrelation)
  • Rendering OVERLAP_SECONDS (5s) of tail after the chunk end for crossfading
  • Exporting to the output path as 24-bit stereo.wav (no master chain — that happens in stitch.py)
  • Normalizing chunk to -6 dBFS (leaves headroom for mastering)
def render_chunk(chunk_idx, start_time, duration, output_path):
    """Render a time segment of the soundscape to a .wav file.

    Args:
        chunk_idx: Index into CHUNKS list (for seeding randomness)
        start_time: Start time in seconds
        duration: Duration in seconds (not including overlap tail)
        output_path: Where to save the .wav chunk
    """
    # ... generates layers, applies effects, mixes to stereo, exports
    # Does NOT apply master chain

Continuous layer seeding: Each chunk uses np.random.seed(chunk_idx * 1000 + layer_offset) for event generation, ensuring that the same events appear regardless of whether chunks are rendered in parallel or sequentially. Continuous layers (bed, texture) are deterministic from the time position alone.

Key Principles for Soundscapes
  • Bed layer is the foundation — everything builds on a continuous, slowly evolving base (noise, drone, pad). Without this, the soundscape feels empty and disconnected
  • Randomize event timing — natural sounds don't occur on a grid. Use Poisson-distributed event times with density controlled by the activity dimension
  • Overlap-add for seamless textures — use windowed overlap-add (Hann window, 50% overlap) for all continuous noise-based layers to prevent chunk boundary clicks
  • Slow LFO modulation on everything — real environments shift constantly. Apply very slow LFOs (0.02-0.1 Hz) to filter cutoffs, volumes, and pan positions
  • Spatial depth via reverb — nearby sounds: dry/close, short pre-delay. Distant sounds: wet, long pre-delay (100-200ms). Layer depth creates the 3D illusion
  • No music theory — no chords, melodies, rhythms. Pure environmental audio design
  • Stereo is essential — soundscapes should fill the stereo field. Use different noise seeds for L/R channels, slow auto-panning for events
Mandatory Quality Rules

Consult dsp-core.md for DSP primitives and effects.md for effects.

DSP — Non-Negotiable:

  • Always use sosfilt with butter(output='sos') — NEVER lfilter with ba
  • sosfilt zi shape: always np.zeros((sos.shape[0], 2))
  • Use Freeverb for reverb (never random delay taps)
  • Process noise in overlapping chunks with Hann windows (NEVER hard chunk boundaries)

Click/Pop Prevention — Non-Negotiable:

  • Overlap-add with cosine/Hann windows for ALL noise-based layers
  • Minimum 10ms crossfade between any concatenated segments
  • Cosine fade at edges (5ms minimum)
  • Safety fade-out on every buffer
  • Final soft-clip + 5ms cosine fade edges on output

Soundscape-Specific:

  • Always stereo output (environmental audio needs spatial width)
  • 44.1kHz default (48kHz if for game/film)
  • For loopable: apply crossfade at loop boundary (last 2-5 seconds mixed with first 2-5 seconds)
  • Normalize to -3 dBFS (quieter than music — this is background audio)
  • For long durations (>5 min): process in chunks to manage memory, use overlap-add

Step 5: Render Chunks

Both modes produce individual time-chunk clips in {soundscape-name}/sounds/. The only difference is concurrency.

Parallel Mode (default for soundscapes >= 60s)

Spawn one Agent per chunk in parallel. Each Agent writes and executes a tiny script that calls the shared render_chunk():

# {soundscape-name}/scripts/chunk_01.py (generated by Agent)
import sys, os; sys.path.insert(0, os.path.dirname(__file__))
from scape_config import *
render_chunk(chunk_idx=0, start_time=0.0, duration=30.0, output_path=f'{SOUNDS_DIR}/01_chunk.wav')

Issue all Agent calls in a single message so they run concurrently. Each chunk script is 3-5 lines. Wait for all Agents to complete before proceeding to Step 6.

Each Agent prompt should be:

"Write and execute {soundscape-name}/scripts/chunk_XX.py that imports scape_config and calls render_chunk(chunk_idx=N, start_time=T, duration=D, output_path=f'{SOUNDS_DIR}/XX_chunk.wav'). Run with: uv run --with numpy --with scipy --with pedalboard --with soundfile python3 {soundscape-name}/scripts/chunk_XX.py"
Single-File Mode (opt-out or soundscapes < 60s)

Generate one script that loops through all chunks sequentially using the same render_chunk():

# {soundscape-name}/scripts/render_all.py
import sys, os; sys.path.insert(0, os.path.dirname(__file__))
from scape_config import *

for chunk in CHUNKS:
    chunk_path = f'{SOUNDS_DIR}/{chunk["idx"]+1:02d}_chunk.wav'
    render_chunk(chunk_idx=chunk['idx'], start_time=chunk['start'], duration=chunk['duration'], output_path=chunk_path)
    print(f'  Rendered {chunk_path}')
print(f'All {len(CHUNKS)} chunks rendered to {SOUNDS_DIR}/')

Same render_chunk(), same output format, same sounds/ folder — just sequential.

Chunk Assignment Rules (both modes)
  • CHUNK_DURATION = 30 seconds by default (tunable — shorter for dense soundscapes, longer for sparse)
  • The last chunk may be shorter than CHUNK_DURATION (remainder of total duration)
  • Each chunk renders its assigned time range plus OVERLAP_SECONDS (5s) of tail for crossfading
  • Chunks are named XX_chunk.wav (e.g., 01_chunk.wav, 02_chunk.wav) and saved to {soundscape-name}/sounds/
  • Event randomness is seeded per chunk for reproducibility across parallel/sequential modes

Step 6: Stitch & Master (stitch.py)

Generate and run {soundscape-name}/scripts/stitch.py — this is the same for both modes since both produce chunks in sounds/:

# {soundscape-name}/scripts/stitch.py
import sys, os; sys.path.insert(0, os.path.dirname(__file__))
from scape_config import SCAPE_NAME, SCAPE_DIR, SOUNDS_DIR, OUTPUT_FILE, SR
import numpy as np, glob
try:
    import soundfile as sf
    USE_SF = True
except ImportError:
    from scipy.io import wavfile
    USE_SF = False

CROSSFADE_MS = 800  # longer crossfade than songs — soundscapes need gradual blends

# 1. Load all chunks in sorted order
clips = sorted(glob.glob(f'{SOUNDS_DIR}/*.wav'))
audio_clips = []
for clip_path in clips:
    if USE_SF:
        data, sr = sf.read(clip_path, dtype='float64')
    else:
        sr, data = wavfile.read(clip_path)
        data = data.astype(np.float64) / 32768.0
    audio_clips.append(data)
    print(f'  Loaded {clip_path}: {len(data)/sr:.1f}s')

# 2. Equal-power crossfade and concatenate
crossfade_n = int(CROSSFADE_MS / 1000.0 * SR)
fade_out = np.sqrt(np.linspace(1, 0, crossfade_n)).reshape(-1, 1)
fade_in = np.sqrt(np.linspace(0, 1, crossfade_n)).reshape(-1, 1)

output = audio_clips[0]
for i in range(1, len(audio_clips)):
    # Blend overlap region with equal-power crossfade
    overlap = output[-crossfade_n:] * fade_out + audio_clips[i][:crossfade_n] * fade_in
    output = np.concatenate([output[:-crossfade_n], overlap, audio_clips[i][crossfade_n:]])

# 3. Apply gentle master chain to FULL assembled audio
#    Soundscapes need less processing than music — gentle compression, normalize
#    (see mastering-and-export.md for chain details)

# 4. Fade-in (1s) and fade-out (2s) — longer fades for ambient audio
# 5. Safety: soft-clip (np.tanh) + 5ms cosine fade edges
# 6. Export as {soundscape-name}/{soundscape-name}.wav (24-bit preferred)
print(f'Exported {OUTPUT_FILE}')

Seamless stitching: The crossfade operates on the 5-second overlap tail (which continues all layers naturally decaying/evolving) blending into the start of the next chunk. The longer overlap (5s vs 2s for songs) and longer crossfade (800ms vs 200ms) ensure imperceptible transitions — critical for ambient audio where any seam would break immersion. The equal-power sqrt() curves maintain constant loudness through the transition.

Critical: The master chain is applied ONLY here on the full assembled audio — never in individual chunks. This ensures cohesive dynamics across the entire soundscape.

Execute with:

uv run --with numpy --with scipy --with pedalboard --with soundfile python3 {soundscape-name}/scripts/stitch.py

Step 7: Validate Output Quality

After stitching, validate the final output.wav. Run the validation pipeline from quality-validation.md:

  1. Level check — peak level, target -3 to -1 dBFS for background use
  2. Clipping detection — no samples at digital ceiling
  3. Stereo correlation — should be 0.3-0.8 (some decorrelation desired for width)
  4. No pops or clicks — especially at chunk boundaries
  5. Crossfade check — listen for audible seams between chunks (if found, increase CROSSFADE_MS or check layer continuity)
  6. If loopable — verify loop point is seamless
  7. Frequency balance — should feel natural, not overly bright or boomy

If issues are found, apply auto-fixes (re-normalize, soft-limit clipping). Re-run validation after fixes.

Step 8: Present the Result

Tell the user:

  • Output file path (e.g., {soundscape-name}/{soundscape-name}.wav), duration, sample rate
  • Project folder structure — {soundscape-name}/sounds/ contains individual chunks, {soundscape-name}/scripts/ contains all generation code
  • Environment description
  • Evolution map showing how the soundscape changes over time
  • Layer breakdown (what elements are in the mix)
  • Number of chunks generated
  • Key parameters for customization

Step 9: Iterate on User Feedback

When the user requests changes ("make it darker", "more thunder", "less wind"), consult iteration-core.md for the workflow and references/iteration-soundscape.md for soundscape-specific refinement mappings:

  1. Read {soundscape-name}/scripts/scape_config.py — identify the specific parameter(s) that control the requested change
  2. Determine scope — does the change affect scape_config.py globally (e.g., layer timbre, evolution curve) or only specific chunks (e.g., "make the ending quieter")?
  3. Make surgical edits — modify only the relevant parameters in scape_config.py, preserving everything else
  4. Re-render only affected chunks — if the change is global, re-render all chunks. If time-specific, re-render only those chunks. Then re-run stitch.py
  5. Validate — run Step 7 validation on the new output
  6. Version the output — save as {soundscape-name}/{soundscape-name}_v2.wav (keep v1 for A/B comparison)

Do NOT regenerate scape_config.py from scratch unless the user explicitly asks for a complete redo. The chunk-based architecture makes iteration faster — changing one time region only requires re-rendering those chunks + re-stitching.

Additional Resources

Shared Audio (generic DSP)

Soundscape-Specific

Important Notes

  • Project folder structure — each soundscape gets its own folder: {soundscape-name}/scripts/ for code, {soundscape-name}/sounds/ for chunks, {soundscape-name}/{soundscape-name}.wav for output. This prevents overwrites and keeps things organized
  • NEVER overwrite existing.wav files — version outputs (e.g., {soundscape-name}_v2.wav)
  • Script must be 100% self-contained aside from scape_config.py — no external sample files
  • All scripts run from the project root, not from inside the soundscape folder
  • Soundscapes should feel natural and immersive — avoid anything that sounds synthetic or mechanical
  • For meditation/sleep: keep activity very low (1-3), avoid sudden events
  • For game ambience: consider loopability and layer separate event tracks
  • Memory management matters for long durations — the chunk architecture handles this naturally
  • {soundscape-name}/sounds/ contains individual time chunks — can be used for editing in a DAW
  • Master chain is applied ONLY in stitch.py on the full assembled audio, never in individual chunks
  • Both modes share scape_config.py — parallel and single-file produce identical output quality with zero code duplication
  • render_chunk() is the single source of truth for how any time segment is rendered. All quality rules, DSP, effects, and mixing happen inside this function

平台分布

Codex

35.87%
按下载量换算33

Claude

29.42%
按下载量换算27

Cursor

20.47%
按下载量换算19

Gemini CLI

10.06%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills