bfxr2-music-generator

bfxr2-music-generator

Generates music and sound effects using Bfxr2, with preset or custom parameter control.

Category
访问服务器

README

Bfxr2 MCP Server

License: MIT Node.js Version MCP

A Model Context Protocol (MCP) server that provides music and sound effect generation tools using the existing Bfxr2 codebase.

Table of Contents

Features

  • Sound Effect Generation: Create preset sound effects (pickup, laser, explosion, etc.)
  • Custom Sound Creation: Full parameter control for custom sounds
  • Random Generation: Generate random sounds with optional seeding
  • WAV Export: Export generated sounds as WAV files (base64 or data URI)
  • Parameter Inspection: View and modify sound parameters
  • Zero Code Duplication: Uses existing Bfxr2 JavaScript files directly

Installation

cd mcp
npm install

MCP Server Configuration

To use the bfxr2 MCP server with Cline or other MCP clients, add this configuration:

{
  "mcpServers": {
    "bfxr2-music-generator": {
      "autoApprove": [
        "list_presets",
        "get_parameters",
        "generate_sound_effect",
        "randomize_sound"
      ],
      "disabled": false,
      "timeout": 30,
      "type": "stdio",
      "command": "node",
      "args": [
        "/path/to/your/bfxr2/mcp/src/server.js"
      ]
    }
  }
}

Note: Update the path in args to match your actual bfxr2 installation directory.

Usage

Start the MCP Server

npm start

Available Tools

  1. generate_sound_effect

    • Generate preset sound effects
    • Types: pickup, laser, explosion, powerup, hit, jump, blip
    • Optional custom parameter overrides
  2. generate_named_sound

    • Generate sounds from precomputed named presets
    • Presets: cry, pluck, splash, droplet, rip, woof, pushrock, glass, bark, powerdown, smallbark, bounce
    • Each preset has carefully tuned parameters for specific sound characters
  3. create_custom_sound

    • Full control over all sound parameters
    • Specify waveType, frequency, envelope, effects, etc.
  4. create_sound_with_wave

    • Create sounds using wave type by name
    • Wave types: Square, Saw, Sin, White, Triangle, Rasp, Tan, Whistle, Breaker, Bitnoise, FMSyn, Voice
  5. randomize_sound

    • Generate completely random sounds
    • Optional seed for reproducible results
  6. mutate_sound

    • Create variations of the last generated sound
    • Slightly randomizes parameters while maintaining general character
  7. export_wav

    • Export last generated sound as WAV
    • Formats: base64 or data URI
  8. get_parameters

    • View current sound parameters
  9. list_presets

    • List available generator presets (pickup, laser, etc.)
  10. list_named_presets

    • List available named presets with descriptions (cry, bark, splash, etc.)
  11. list_wave_types

    • List all available wave types with descriptions

Example Tool Calls

{
  "name": "generate_sound_effect",
  "arguments": {
    "type": "laser",
    "customParams": {
      "frequency_start": 0.7,
      "attackTime": 0.1
    }
  }
}
{
  "name": "create_custom_sound",
  "arguments": {
    "parameters": {
      "waveType": 2,
      "frequency_start": 0.5,
      "sustainTime": 0.3,
      "vibratoDepth": 0.2
    }
  }
}
{
  "name": "generate_named_sound",
  "arguments": {
    "preset": "bark",
    "filepath": "/tmp/bark.wav"
  }
}
{
  "name": "create_sound_with_wave",
  "arguments": {
    "waveType": "Whistle",
    "parameters": {
      "frequency_start": 0.6,
      "sustainTime": 0.4
    },
    "filepath": "/tmp/whistle.wav"
  }
}
{
  "name": "mutate_sound",
  "arguments": {
    "filepath": "/tmp/mutated.wav"
  }
}

Architecture

The MCP server uses a lightweight wrapper approach:

  • bfxr-wrapper.js: Provides minimal browser API mocks and loads existing Bfxr2 files
  • server.js: MCP server implementation with tool handlers
  • No code duplication: Directly imports from ../js/ directory

Wave Types

ID Name Description
0 Square Classic square wave, good for retro game sounds
1 Saw Sawtooth wave, raspy and buzzy
2 Sin Pure sine wave, clean and simple
3 White White noise, good for explosions and static
4 Triangle Triangle wave, softer than square
5 Rasp Periodic 1-bit noise, digital buzz
6 Tan Tangent wave, potentially crazy/distorted
7 Whistle Sin with overtone, breathy/hollow
8 Breaker Quadratic wave, smooth and slick
9 Bitnoise Periodic 1-bit white noise, glitchy
10 FMSyn FM synthesis, dense and breathy
11 Voice Digital voice sample

Named Presets

Pre-configured sounds with carefully tuned parameters:

Name Wave Type Description
cry Voice A crying/whimpering voice sound
pluck Voice A plucked string instrument sound
splash Sin A water splash effect
droplet Whistle A water droplet sound
rip Voice A tearing/ripping sound
woof Square A dog bark/woof sound
pushrock White A heavy object pushing/scraping sound
glass Whistle A glass breaking/tinkling sound
bark Rasp A sharp bark sound
powerdown White A power-down/shutdown sound
smallbark Rasp A small/quiet bark sound
bounce FMSyn A bouncy/springy sound

Sound Parameters

Key parameters you can control:

  • waveType: Wave shape (0-11)
  • frequency_start: Base frequency (0-1)
  • frequency_slide: Frequency sweep (-0.5 to 0.5)
  • attackTime: Volume envelope attack (0-1)
  • sustainTime: Volume envelope sustain (0-1)
  • decayTime: Volume envelope decay (0.03-1)
  • vibratoDepth: Vibrato strength (0-1)
  • vibratoSpeed: Vibrato speed (0-1)

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to get started.

Changelog

See CHANGELOG.md for a list of changes in each version.

License

This project is licensed under the MIT License - see the LICENSE file for details.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选