{"id":21905293,"url":"https://github.com/pedrolcl/drumstick","last_synced_at":"2025-04-15T23:31:40.988Z","repository":{"id":45802288,"uuid":"343223654","full_name":"pedrolcl/drumstick","owner":"pedrolcl","description":"Drumstick Qt/C++ MIDI libraries (Mirror)","archived":false,"fork":false,"pushed_at":"2024-11-25T19:13:16.000Z","size":4781,"stargazers_count":13,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-25T20:21:55.136Z","etag":null,"topics":["cakewalk","linux","macos","midi","qt","qt5","smf","windows","wrk"],"latest_commit_sha":null,"homepage":"https://sourceforge.net/projects/drumstick/","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/pedrolcl.png","metadata":{"files":{"readme":"readme.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-28T21:56:54.000Z","updated_at":"2024-09-16T02:09:27.000Z","dependencies_parsed_at":"2023-12-23T14:53:33.959Z","dependency_job_id":"3d913568-3ba3-437d-807d-279bf6b1f20a","html_url":"https://github.com/pedrolcl/drumstick","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2Fdrumstick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2Fdrumstick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2Fdrumstick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2Fdrumstick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedrolcl","download_url":"https://codeload.github.com/pedrolcl/drumstick/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226950270,"owners_count":17708198,"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":["cakewalk","linux","macos","midi","qt","qt5","smf","windows","wrk"],"created_at":"2024-11-28T16:32:29.471Z","updated_at":"2024-11-28T16:32:30.250Z","avatar_url":"https://github.com/pedrolcl.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Drumstick Libraries\n\n[![Linux Build and Test](https://github.com/pedrolcl/drumstick/actions/workflows/cmake.yml/badge.svg?branch=devel)](https://github.com/pedrolcl/drumstick/actions/workflows/cmake.yml)  \n\n[![Windows Build and Test](https://github.com/pedrolcl/drumstick/actions/workflows/cmake-win.yml/badge.svg)](https://github.com/pedrolcl/drumstick/actions/workflows/cmake-win.yml)  \n\nDrumstick is a set of MIDI libraries using C++/Qt idioms and style. Includes a C++ wrapper around the ALSA library sequencer interface: ALSA sequencer provides software support for MIDI technology on Linux. A complementary library provides classes for processing SMF (Standard MIDI files: .MID/.KAR), RIFF RMID (*.rmi) and Cakewalk (.WRK) file formats. A multiplatform realtime MIDI I/O library and a GUI Widgets libraries are also provided for Linux, Windows, and Mac OSX.\n\nCurrently, there are four libraries designed to work together if/when needed:\n\n* **Drumstick::ALSA** is a Linux only C++/Qt wrapper around the ALSA Sequencer API. ALSA sequencer provides software support for MIDI technology on Linux.\n* **Drumstick::File** provides easy multiplatform file I/O for Standard MIDI Files (.mid), RIFF RMID (.rmi)  and Cakewalk (.wrk) file formats.\n* **Drumstick::RT** is a realtime MIDI I/O library with pluggable backends. It uses Drumstick::ALSA on Linux, and other native frameworks on macOS and Windows.\n* **Drumstick::Widgets** contains MIDI widgets, including a Virtual Piano used by VMPK among other programs.\n\n**Drumstick::ALSA** was the first library developed under the Drumstick umbrella, and is available only on Linux, because ALSA Sequencer is an exclusive Linux technology. For realtime I/O applications you can use the **Drumstick::RT** library which is multiplatform, and only depends on **Drumstick::ALSA** in Linux for its ALSA Sequencer backend. Other multiplatform backends are: Network/[ipMIDI](https://www.nerds.de/en/ipmidi.html) and [Fluidsynth](https://github.com/FluidSynth/fluidsynth). The [Sonivox](https://github.com/pedrolcl/sonivox) backend needs PulseAudio, which is available on most Unix systems.\n\nThere are ten examples in the source tree, under the utils/ directory:\n\n* drumgrid: GUI program. Simple drum patterns. Depends on Drumstick::ALSA.\n* dumpmid: CLI program. Prints received MIDI events. Depends on Drumstick::ALSA. See also [kmidimon](https://kmidimon.sourceforge.io)\n* dumprmi: CLI program. Prints and converts RIFF MIDI files. Depends on Drumstick::File.\n* dumpsmf: CLI program. Prints standard MIDI files. Depends on Drumstick::File.\n* dumpwrk: CLI program. Prints Cakewalk/Sonar MIDI files. Depends on Drumstick::File. See also [wrk2mid](https://wrk2mid.sourceforge.io)\n* guiplayer: GUI program. Plays SMF and Cakewalk files. Depends on Drumstick::ALSA and Drumstick::File. See also [dmidiplayer](https://dmidiplayer.sourceforge.io)\n* metronome: CLI program. Simple command line MIDI metronome. Depends on Drumstick::ALSA. See also [kmetronome](https://kmetronome.sourceforge.io)\n* playsmf: CLI program. SMF player. Depends on Drumstick::ALSA and Drumstick::File.\n* sysinfo: CLI program. Prints information about the ALSA sequencer subsystem. Depends on Drumstick::ALSA.\n* vpiano: GUI program. A simple Virtual Piano Keyboard GUI application. Depends on Drumstick::RT. See also [VMPK](http://vmpk.sourceforge.io).\n\nAnd you can also see independent applications using this library:\n\n* [dmidiplayer](https://sourceforge.net/p/dmidiplayer): Multiplatform MIDI file player with many features.\n* [VMPK](https://sourceforge.net/p/vmpk): Multiplatform Virtual MIDI Piano Keyboard.\n* [kmetronome](https://sourceforge.net/p/kmetronome): MIDI metronome for Linux.\n* [kmidimon](https://sourceforge.net/p/kmidimon): MIDI monitor for Linux.\n* [wrk2mid](https://sourceforge.net/p/wrk2mid): Command line utility to convert WRK files to SMF.\n\nHere is a diagram about the relationship between the libraries and applications:\n\n![Drumstick ecosystem](doc/drumstick-ecosystem.png)\n\nHere is another view in table format of the relationships:\n\n|             | Drumstick::ALSA    | Drumstick::File    | Drumstick::RT      | Drumstick::Widgets |\n|-------------|:------------------:|:------------------:|:------------------:|:------------------:|\n|Utilities:   |                    |                    |                    |                    |\n| drumgrid    | :white_check_mark: | :x:                | :x:                | :x:                |\n| dumpmid     | :white_check_mark: | :x:                | :x:                | :x:                |\n| dumprmi     | :x:                | :white_check_mark: | :x:                | :x:                |\n| dumpsmf     | :x:                | :white_check_mark: | :x:                | :x:                |\n| dumpwrk     | :x:                | :white_check_mark: | :x:                | :x:                |\n| guiplayer   | :white_check_mark: | :white_check_mark: | :x:                | :x:                |\n| metronome   | :white_check_mark: | :x:                | :x:                | :x:                |\n| playsmf     | :white_check_mark: | :white_check_mark: | :x:                | :x:                |\n| sysinfo     | :white_check_mark: | :x:                | :x:                | :x:                |\n| vpiano      | :x:                | :x:                | :white_check_mark: | :white_check_mark: |\n|Applications:|                    |                    |                    |                    |\n| dmidiplayer | :x:                | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| VMPK        | :x:                | :x:                | :white_check_mark: | :white_check_mark: |\n| kmetronome  | :white_check_mark: | :x:                | :x:                | :x:                |\n| kmidimon    | :white_check_mark: | :white_check_mark: | :x:                | :x:                |\n| wrk2mid     | :x:                | :white_check_mark: | :x:                | :x:                |\n\n\nThe main web site of this project is [drumstick.sourceforge.io](https://drumstick.sourceforge.io)\n\nSee also:\n\n* [Downloads](https://sourceforge.net/projects/drumstick/files/)\n* [Online documentation](https://drumstick.sourceforge.io/docs/index.html)\n* [Build and install documentation](install.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrolcl%2Fdrumstick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedrolcl%2Fdrumstick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrolcl%2Fdrumstick/lists"}