F

FluidSynth MIDI作曲系统

@kimjune01/synth-mcp
1 Stars 36 次浏览 kimjune01 更新于 2026-08-23

一个MIDI作曲系统,使AI助手能够通过FluidSynth创作音乐,具备播放音符、创建旋律、管理音轨和导出音频的功能。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

以下是构建基于FluidSynth的有效MIDI作曲系统所需的要素:

核心MIDI功能

  1. FluidSynth集成函数
  • initialize_fluidsynth() - 用适当的配置设置FluidSynth
  • load_soundfont(soundfont_path) - 加载用于乐器声音的SoundFont文件(.sf2)
  • set_gain(gain_value) - 控制合成器的整体音量
  • set_reverb(room_size, damping, width, level) - 配置混响效果
  • set_chorus(nr, level, speed, depth, type) - 配置合唱效果
  1. MIDI作曲函数
  • play_note(note, velocity, duration, channel) - 播放单个音符,控制力度和持续时间
  • play_chord(notes, velocity, duration, channel) - 同时播放多个音符作为和弦
  • create_sequence(notes, durations, velocities, channel) - 创建带有时序的音符序列
  • play_midi_file(file_path) - 加载并播放现有的MIDI文件
  • record_midi(duration) - 录制指定时长的MIDI输入
  1. 高级音乐功能
  • create_melody(scale, key, length, rhythm_pattern) - 根据音乐规则生成旋律
  • create_chord_progression(progression, style, tempo) - 以不同的声部创建和声进行
  • create_drum_pattern(style, tempo, variations) - 为打击乐生成节奏模式
  • create_arpeggio(chord, pattern, tempo) - 从和弦结构创建琶音模式
  • create_bassline(chord_progression, style, tempo) - 生成与和弦进行相辅相成的贝斯线
  1. 作品管理
  • create_track(name, instrument, channel) - 使用指定乐器创建新轨道
  • mute_track(track_id) - 将特定轨道静音
  • solo_track(track_id) - 独奏特定轨道
  • set_track_volume(track_id, volume) - 调整单个轨道的音量
  • set_track_pan(track_id, pan) - 调整立体声定位
  1. 项目管理
  • create_project(name, tempo, time_signature) - 初始化新的作品项目
  • save_project(path) - 保存当前项目状态
  • load_project(path) - 加载已保存的项目
  • export_midi(path) - 将作品导出为标准MIDI文件
  • export_audio(path, format) - 使用FluidSynth将作品渲染为音频
  1. 实时协作与交互
  • start_midi_server(port) - 启动监听MIDI事件的服务器
  • connect_midi_device(device_name) - 连接到外部MIDI硬件
  • send_midi_event(event_type, parameters) - 向连接的设备发送MIDI事件
  • sync_tempo(tempo) - 在连接的系统之间同步速度

实现方法
根据我检查过的SuperCollider MCP服务器,你可以这样构建你的FluidSynth MIDI服务器:

  • Python后端:使用带有python-osc库的Python进行通信,并使用pyfluidsynth进行FluidSynth集成。
  • MCP协议实现:创建一个遵循模型上下文协议结构的服务器。
  • 架构:
    • AI助手(Claude)调用你的MCP服务器上的方法。
    • 你的服务器将这些方法转换为FluidSynth命令。
    • FluidSynth生成实际音频。

开始步骤
要构建这个系统,你需要:

  • 创建一个包含必要依赖项的Python项目:

    • pyfluidsynth - 用于FluidSynth集成
    • mcp - 用于MCP协议支持
    • python-osc - 用于OSC通信(如果需要)
    • mido - 用于处理MIDI文件
  • 创建主服务器文件(例如server.py),该文件:

    • 初始化FluidSynth
    • 注册所有音乐作曲方法
    • 处理与Claude的通信
  • 设计方法签名,以便Claude能够轻松地创作音乐,具有明确的参数和合理的默认值。

相关 MCP 服务