but80 / fmfm.core

YAMAHA MA-5 (YMU765) / YMF825 clone software FM synthesizer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fmFM

Build Status Go Report Card Godoc MIT License

WORK IN PROGRESS

fmFM (Fake Mobile FM synth) is a YAMAHA MA-5 (YMU765) / YMF825 clone software FM synthesizer.

Mostly based on doomjs/opl3.

Requirements

  • Go 1.12
  • PortMIDI (for CLI)
    • macOS: brew install portmidi
    • Ubuntu: sudo apt-get install libportmidi-dev
  • PortAudio (for CLI)
    • macOS: brew install portaudio
    • Ubuntu: sudo apt-get install portaudio19-dev

CLI installation

go get -u github.com/but80/fmfm.core/cmd/fmfm-cli

CLI usage

NAME:
   fmfm-cli list - List MIDI devices

USAGE:
   fmfm-cli list
NAME:
   fmfm-cli midi - Listen MIDI events

USAGE:
   fmfm-cli midi [command options] [<Input MIDI device>]

OPTIONS:
   --mono, -m                 Force mono mode in all MIDI channels except drum PC
   --mute-nopc, -z            Mute if program change is not found
   --level value, -l value    Total level in dB (default: -12)
   --limiter value, -c value  Limiter threshold in dB (default: -3)
   --ignore value, -n value   Ignore specified MIDI channel (default: 0)
   --solo value, -s value     Accept only specified MIDI channel (default: 0)
   --dump value, -d value     Dump MIDI channel (default: 0)
   --print, -p                Print status
  • Voice libraries (*.vm5.pb) must be placed under voice/ before running. They can be generated by smaf825 (currently use v2 branch for this feature). More information (Japanese)
  • fmFM receives MIDI messages via the MIDI port specified by the 1st argument.

Build module version

go run mage.go buildmod
ls build/fmfm-module

Build WebAssembly version

go run mage.go buildwasm
ls build/fmfm-wasm

Todo

  • Analyze ATS-MA5 output
    • Waveform of DVB
    • MIDI vibrato resolution
    • Channel pan resolution
    • Channel pan and voice pan blending

License

MIT License

About

YAMAHA MA-5 (YMU765) / YMF825 clone software FM synthesizer

License:MIT License


Languages

Language:Go 98.9%Language:TypeScript 1.1%