{"id":20125015,"url":"https://github.com/jpcima/smf-dsp","last_synced_at":"2025-06-20T18:40:25.836Z","repository":{"id":45215553,"uuid":"185078553","full_name":"jpcima/smf-dsp","owner":"jpcima","description":"Advanced MIDI file player","archived":false,"fork":false,"pushed_at":"2022-07-28T13:22:29.000Z","size":3490,"stargazers_count":51,"open_issues_count":18,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-06T17:48:11.409Z","etag":null,"topics":["chiptune","frequency-modulation","general-midi","midi","midi-file","midi-player","mt-32","realtime","retro","scc","soundfont","synthesizer","ym2149","ym2413","ym2612","ymf262"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jpcima.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-05T20:22:55.000Z","updated_at":"2025-04-28T22:40:32.000Z","dependencies_parsed_at":"2022-07-19T12:54:29.173Z","dependency_job_id":null,"html_url":"https://github.com/jpcima/smf-dsp","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/jpcima/smf-dsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcima%2Fsmf-dsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcima%2Fsmf-dsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcima%2Fsmf-dsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcima%2Fsmf-dsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jpcima","download_url":"https://codeload.github.com/jpcima/smf-dsp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcima%2Fsmf-dsp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260999650,"owners_count":23095379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["chiptune","frequency-modulation","general-midi","midi","midi-file","midi-player","mt-32","realtime","retro","scc","soundfont","synthesizer","ym2149","ym2413","ym2612","ymf262"],"created_at":"2024-11-13T19:54:12.952Z","updated_at":"2025-06-20T18:40:20.819Z","avatar_url":"https://github.com/jpcima.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# smf-dsp\n\nAdvanced MIDI file player for desktop computer\n\n[![Build Status](https://travis-ci.com/jpcima/smf-dsp.svg?branch=master)](https://travis-ci.com/jpcima/smf-dsp)\n\n![screenshot](docs/screen.png)\n\n# Usage\n\nPress F1 for help screen.\nPress F12 to access advanced options, which can be edited in configuration files.\n\nThe changes made in configuration files are effective after restarting.\n\nSome synthesizers require a ROM or SoundFont to be provided, and specified in the configuration.\n\n# Keys\n\nThe keys are recognized by physical location and not label.\n\nThe listed key names are based on the QWERTY keyboard type, it will vary for a different type of layout.\n\n| Key        | Function                                                                     |\n|------------|------------------------------------------------------------------------------|\n| F1         | Open the help screen                                                         |\n| F2         | Select a MIDI device for playback                                            |\n| F3         | Select a synthesizer device for playback                                     |\n| F4         | Configure global audio effects                                               |\n| F9         | Select a theme for the user interface                                        |\n| F12        | Open the configuration directory                                             |\n| Tab        | Switch between file browser and track info                                   |\n| Esc        | Quit the program                                                             |\n| -          | Decrement the proportional window size                                       |\n| =          | Increment the proportional window size                                       |\n| Page ↑     | Go to previous track in playlist/folder                                      |\n| Page ↓     | Go to next track in playlist/folder                                          |\n| Space      | Pause or unpause                                                             |\n| Home       | Seek to beginning of current track                                           |\n| End        | Seek to end of current track                                                 |\n| ←↕→        | Navigate in the file browser                                                 |\n| ←→         | In track info view, seek track by ± 5 seconds                                |\n| Shift + ←→ | In any view, seek track by ± 10 seconds                                      |\n| [          | Decrease speed by 1%                                                         |\n| ]          | Increase speed by 1%                                                         |\n| `          | Switch between repeat modes: On/Off, and Single/Multi                        |\n| /          | Scan songs in the current folder of the file browser and play them at random |\n\n# Building\n\nTo build the software, type these commands in the source directory.\n\n- `mkdir build`\n- `cd build`\n- `cmake -DCMAKE_BUILD_TYPE=Release ..`\n- `cmake --build .`\n\nInstall following packages on Debian/LibraZiK/Mint:\n\n- `build-essential` `git` `pkg-config` `libsdl2-dev` `libsdl2-image-dev` `libasound2-dev` `libpulse-dev` `libjack-jackd2-dev` `libuv1-dev` `libuchardet-dev` `libglib2.0-dev` `libapr1-dev` `libaprutil1-dev`\n\n(in case JACK 1 is preferred over JACK 2, replace `libjack-jackd2-dev` with `libjack-dev`)\n\nImmediately after building, the program is available by starting `./smf-dsp`.\n\n## Building synthesizers\n\nThe optional synthesizers have additional requirements, and they are built only if these are present.\n\n- **Fluidsynth**: check out the `thirdparty/fluidlite` submodule.\n- **FM-OPL3 (ADLMIDI)**: check out the `thirdparty/libADLMIDI` submodule.\n- **FM-OPN2 (OPNMIDI)**: check out the `thirdparty/libOPNMIDI` submodule.\n- **SCC (emidi)**: check out the `thirdparty/scc` submodule.\n- **MT32EMU**: check out the `thirdparty/munt` submodule.\n\n## Copyright\n\nThe bitmap fonts use glyphs which originate from the following sources.\n- Ths public domain Shinonome font by Yasuyuki Furukawa\n- `xorg-fonts-cyrillic` and `xorg-fonts-misc`, for the Cyrillic subset\n- `fmplayer` by Takamichi Horikawa, for the small font, the digit font, and the logo characters\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpcima%2Fsmf-dsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpcima%2Fsmf-dsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpcima%2Fsmf-dsp/lists"}