mcpField
W
win31-audio-design

win31-audio-design

github.com/curiositech创意与媒体257155 次安装2 天前更新
代码仓库

关于 win31-audio-design

win31-audio-design 面向为 Web 和移动界面添加 90 年代初 Windows 风格音效的设计者。内容涵盖复古声音特征、CC 授权音源、程序化音频和移动触觉反馈,并强调不要复制 Microsoft 原始音效。

主要功能

  1. 01复古音效设计指南
  2. 02CC 授权音源建议
  3. 03Web Audio 程序化音效示例
  4. 04移动音效与触觉反馈配合
  5. 05音量规范与用户控制

适用场景

  1. 01为 Win31 主题应用添加音效
  2. 02为复古游戏界面选择音效
  3. 03在移动端协调触控音效与触觉反馈
  4. 04为经典系统音效制作合规替代品

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/curiositech/some_claude_skills --skill win31-audio-design

安装后在 Claude Code 中输入/win31-audio-design确认已加载。

附带文件.claude-plugin/plugin.json

详细介绍

Win31 音频设计:令人满足的复古声音词汇

擅长为现代 Web 和移动应用打造真实的 Windows 3.1 时代音效体验。专注于经典声音词汇的 CC 许可替代方案,同时保留 90 年代早期计算机的令人满足的低保真韵味。

适用场景

适用于:

  • 需要音频反馈的 Win31 主题 Web 应用
  • 使用 90 年代桌面音效的复古游戏界面
  • 希望加入令人满足的微交互音效的移动应用
  • 将现代扁平音效转换为复古 8 位风格
  • 打造唤起早期 Windows 怀旧感的声音组合

不适用于:

  • 现代扁平化/材质设计音效 → sound-engineer
  • 语音合成 → voice-audio-engineer
  • 音乐创作 → DAW 工具
  • 电影音效设计 → 线性音频工作流

Windows 3.1 声音词汇

原始音效(受版权保护——切勿使用)
文件特征时长功能
CHIMES.WAV空灵的铃声~1.5s系统通知
CHORD.WAV大调和弦解决~1.2s任务完成
DING.WAV单次铃声敲击~0.5s提醒/警报
TADA.WAV胜利号角~2s启动/重大成功
RINGIN.WAV上升音调~0.3s模态窗口打开
RINGOUT.WAV下降音调~0.2s模态窗口关闭

法律警告:这些音效由 Microsoft 享有版权。我们创作的是受其启发的替代音效,而非复制品。

声音特征(令人满足的原因)
特性Win31 音效特征
采样率11kHz-22kHz(低保真魅力)
位深度8-bit(量化带来的温暖感)
频率范围400Hz-4kHz(没有超低音,明亮柔和)
包络快速起音、中等衰减、无延音
混响干声或短混响(没有大教堂式混响)
特质明亮、塑料感、欢快
Win31「叮」声公式
┌─────────────────────────────────────────────────────┐
│ Attack: 5-10ms    │ Pure sine starts BRIGHT         │
│ Peak: ~880Hz (A5) │ Classic 8-bit "bleep"           │
│ Decay: 200-400ms  │ Natural damping feel            │
│ Overtones: 2nd+3rd│ Bell-like shimmer               │
│ Processing: 8-bit │ Adds warmth via quantization    │
└─────────────────────────────────────────────────────┘

CC 许可音效资源

推荐来源
来源许可最适合
Dominik Braun 的 107 款复古音效CC BY 4.0UI 短促音、蜂鸣声、正向反馈
LittleRobotSoundFactory(Freesound)CC0/CC BY8 位游戏音效
OpenGameArt 512 种音效CC0全面的复古音效库
Gritty Retro UI(Exechamp)CC0UI 专用点击声和音调
署名模板
Audio: [Sound Name] by [Creator] from [Source]
Licensed under [CC BY 4.0 / CC0]
https://[source-url]

Win31 应用的声音组合

交互音效
操作声音特征时长频率
按钮点击柔和的塑料「嗒」声20-40ms800-1200Hz
按钮释放轻微的「嗒」声15-30ms600-900Hz
切换开启上升的啁啾声80-120ms600→1200Hz
切换关闭下降的啁啾声80-120ms1200→600Hz
窗口打开上行琶音150-250msC4-E4-G4
窗口关闭下行琶音100-200msG4-E4-C4
错误低沉嗡声 + 下降音300-500ms200-400Hz
成功明亮的叮声 + 闪烁音200-400ms880Hz + 泛音
通知双音铃声400-600ms660Hz、880Hz
系统音效
事件声音特征时长
启动胜利和弦解决1.5-2.5s
关机柔和的下行乐句1-2s
严重错误刺耳的双重嗡声400-600ms
任务完成令人满足的「哒——叮!」300-500ms
导航轻柔的呼啸声 + 收尾100-200ms

Web Audio 实现

基本音效播放器
// Win31-style sound manager for web
class Win31SoundManager {
  private audioContext: AudioContext | null = null;
  private sounds: Map<string, AudioBuffer> = new Map();

  constructor() {
    // Lazy init on first user interaction (browser policy)
  }

  private getContext(): AudioContext {
    if (!this.audioContext) {
      this.audioContext = new AudioContext({ sampleRate: 22050 }); // Lo-fi!
    }
    return this.audioContext;
  }

  async loadSound(name: string, url: string) {
    const response = await fetch(url);
    const arrayBuffer = await response.arrayBuffer();
    const audioBuffer = await this.getContext().decodeAudioData(arrayBuffer);
    this.sounds.set(name, audioBuffer);
  }

  play(name: string, volume = 0.5) {
    const buffer = this.sounds.get(name);
    if (!buffer) return;

    const ctx = this.getContext();
    const source = ctx.createBufferSource();
    const gain = ctx.createGain();

    source.buffer = buffer;
    gain.gain.value = volume;

    source.connect(gain);
    gain.connect(ctx.destination);
    source.start(0);
  }

  // Procedural 8-bit "ding"
  playDing(frequency = 880) {
    const ctx = this.getContext();
    const osc = ctx.createOscillator();
    const gain = ctx.createGain();

    osc.type = 'triangle'; // Softer than sine, more 8-bit
    osc.frequency.setValueAtTime(frequency, ctx.currentTime);

    // Fast attack, medium decay
    gain.gain.setValueAtTime(0.3, ctx.currentTime);
    gain.gain.exponentialRampToValueAtTime(0.001, ctx.currentTime + 0.4);

    osc.connect(gain);
    gain.connect(ctx.destination);

    osc.start(ctx.currentTime);
    osc.stop(ctx.currentTime + 0.4);
  }
}

export const win31Sounds = new Win31SoundManager();
合成复古音效
// Generate Win31-style sounds procedurally
function createChime(ctx: AudioContext, baseFreq = 660): AudioBufferSourceNode {
  const duration = 1.5;
  const sampleRate = ctx.sampleRate;
  const buffer = ctx.createBuffer(1, duration * sampleRate, sampleRate);
  const data = buffer.getChannelData(0);

  // Two-tone chime (like CHIMES.WAV character)
  for (let i = 0; i < data.length; i++) {
    const t = i / sampleRate;
    const env = Math.exp(-t * 3); // Decay envelope

    // Two harmonically related tones
    const tone1 = Math.sin(2 * Math.PI * baseFreq * t);
    const tone2 = Math.sin(2 * Math.PI * baseFreq * 1.5 * t) * 0.5;

    data[i] = (tone1 + tone2) * env * 0.3;
  }

  // 8-bit quantization for authentic lo-fi
  for (let i = 0; i < data.length; i++) {
    data[i] = Math.round(data[i] * 127) / 127;
  }

  const source = ctx.createBufferSource();
  source.buffer = buffer;
  return source;
}

移动端触觉反馈协调

iOS 触觉反馈与声音配对
声音事件触觉类型强度
按钮点击.light0.5
开关切换.medium0.6
错误嗡鸣.heavy0.9
成功提示音.selection0.4
窗口打开.soft0.3
React Native 实现
import * as Haptics from 'expo-haptics';

async function playWithHaptic(soundName: string, hapticType: Haptics.ImpactFeedbackStyle) {
  // Fire both simultaneously
  await Promise.all([
    win31Sounds.play(soundName),
    Haptics.impactAsync(hapticType),
  ]);
}

// Usage
await playWithHaptic('click', Haptics.ImpactFeedbackStyle.Light);
await playWithHaptic('error', Haptics.ImpactFeedbackStyle.Heavy);

反模式

反模式:高保真采样

表现:48kHz、24 位的清晰音频
问题:听起来太现代,失去了复古韵味
建议:降采样至 22kHz,并应用 8 位量化

反模式:过长的混响尾音

表现:声音在大教堂中回荡
问题:Win31 声音通常是干声或短混响
建议:不加混响,或将衰减时间控制在 <100ms

反模式:超低音

表现:100Hz 以下的深沉轰鸣
问题:90 年代的 PC 扬声器无法重现超低音
建议:切掉 200Hz 以下的所有频率

反模式:复制 Microsoft 声音

表现:使用原版 CHIMES.WAV 或 TADA.WAV
问题:侵犯版权
建议:使用遵循 CC 许可的素材,创作受其启发的替代音效

反模式:声音过多

表现:每个微交互都会发出声音
问题:令人厌烦、疲劳
建议:仅为主要操作添加声音,并提供声音开关

声音级别指南

类别级别备注
UI 反馈-24 至 -18 dB轻柔,不要造成干扰
通知-18 至 -12 dB能引起注意,但不要太响
错误-15 至 -9 dB清晰可察,但不刺耳
系统声音-12 至 -6 dB重大事件(启动/关机)

务必提供:

  1. 全局声音开关(开/关)
  2. 音量滑块(0-100%)
  3. 遵循系统静音模式

快速实现检查清单

  • 创建 Win31SoundManager 类
  • 加载遵循 CC 许可的基础声音
  • 添加程序化备用音效(叮声、铃声)
  • 为移动设备实现触觉反馈配对
  • 添加全局声音开关
  • 使用 Win31 视觉主题进行测试
  • 为 CC 声音添加署名
  • 验证采样率(最高 22kHz)

集成对象

  • windows-3-1-web-designer - Win31 视觉与音频体验
  • sound-engineer - 如有需要,可实现高级空间音频
  • mobile-ux-optimizer - 触控、触觉反馈与音频协调
  • pwa-expert - 离线声音缓存

核心见解:Win31 声音令人满意,是因为它们很简单——短促、明亮、低保真,能够立即提供反馈,又不会分散注意力。8 位量化和有限的频率响应带来的是温暖,而非刺耳。使用遵循 CC 许可的替代素材捕捉这种风格,切勿复制原声。

请记住:务必提供声音开关。未经用户同意,绝不播放声音。在移动设备上将音频与触觉反馈配对,以获得最佳体验。

评论

支持 Markdown