{"id":38478717,"url":"https://github.com/vampirefrog/fmtoy","last_synced_at":"2026-01-17T05:25:01.559Z","repository":{"id":47355636,"uuid":"119176291","full_name":"vampirefrog/fmtoy","owner":"vampirefrog","description":"FM synthesiser based on emulated Yamaha YM chips (OPL, OPM and OPN series)","archived":false,"fork":false,"pushed_at":"2024-12-11T04:42:51.000Z","size":418,"stargazers_count":51,"open_issues_count":11,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-11T05:26:16.679Z","etag":null,"topics":["audio","fm","midi","opl","opm","opn","synthesizer","yamaha"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vampirefrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"vampirefrog"}},"created_at":"2018-01-27T15:30:29.000Z","updated_at":"2024-12-11T04:42:56.000Z","dependencies_parsed_at":"2024-11-08T21:24:59.731Z","dependency_job_id":null,"html_url":"https://github.com/vampirefrog/fmtoy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vampirefrog/fmtoy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vampirefrog%2Ffmtoy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vampirefrog%2Ffmtoy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vampirefrog%2Ffmtoy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vampirefrog%2Ffmtoy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vampirefrog","download_url":"https://codeload.github.com/vampirefrog/fmtoy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vampirefrog%2Ffmtoy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28499211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","fm","midi","opl","opm","opn","synthesizer","yamaha"],"created_at":"2026-01-17T05:25:00.485Z","updated_at":"2026-01-17T05:25:01.534Z","avatar_url":"https://github.com/vampirefrog.png","language":"C","funding_links":["https://github.com/sponsors/vampirefrog"],"categories":[],"sub_categories":[],"readme":"FM Toy\n========\n\n[![Project status](https://img.shields.io/badge/Project%20status-Beta-blue.svg)](.) [![GitHub latest commit](https://badgen.net/github/last-commit/vampirefrog/fmtoy)](https://GitHub.com/vampirefrog/fmtoy/commit/) [![GitHub release](https://img.shields.io/github/release/vampirefrog/fmtoy.svg)](https://GitHub.com/vampirefrog/fmtoy/releases/) [![License](https://img.shields.io/github/license/vampirefrog/fmtoy?color=green)](LICENSE)\n\n[![Linux Build](https://github.com/vampirefrog/fmtoy/actions/workflows/linux-jack.yml/badge.svg)](https://github.com/vampirefrog/fmtoy/actions/workflows/linux-jack.yml)\n\nYamaha FM sound synthesis emulation based MIDI synthesizer.\n\n[Demo](https://vampi.tech/demos/fmtoy/)\n\nAlso used in [this database](https://fm.vampi.tech/voices).\n\nCurrently only targetting jack audio and ALSA, and also WebAssembly based browser emulation (see demo above), it accepts MIDI input, and emulates one sound chip per MIDI channel. Currently supported are YM2151, YM2203, YM2608, YM2610, YM2610B, YM2612 and YM3812. It requires at least one command line argument, which is an `.OPM` file. You can specify multiple `.OPM` files and their voices will be concatenated up to 128 voices. You can select the voice with MIDI Program Change. The voice will change for all sound chips simultaneously, so the channel number is ignored in this case. The point of this tool is to listen to each chip side by side and compare their outputs. It is useful for testing voice conversion algorithms, such as OPM to OPN.\n\nYou can get a bunch of `.OPM` files from [KVR forum](https://www.kvraudio.com/forum/viewtopic.php?t=277864).\n\n| MIDI Channel  | Chip      |  Name  | Polyphony |\n| ------------- |-----------|:------:|----------:|\n| 1             | YM2151    |  OPM   |         8 |\n| 2             | YM2203    |  OPN   |         3 |\n| 3             | YM2608    |  OPNA  |         6 |\n| 4             | YM2610    |  OPNB  |         6 |\n| 5             | YM2610b   | OPNB-B |         6 |\n| 6             | YM2612    |  OPN2  |         6 |\n| 7             | YM3812    |  OPL2  |         9 |\n\nPlease try `./fmtoy_jack --help` to see a list of command-line options.\n\n\nBuilding\n--------\n\n```sh\nmake\n```\n\nEmscripten:\n\n```sh\nemmake make wasm\n```\n\n\nLicensing\n---------\n\nPlease see the LICENSE file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvampirefrog%2Ffmtoy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvampirefrog%2Ffmtoy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvampirefrog%2Ffmtoy/lists"}