{"id":21905300,"url":"https://github.com/pedrolcl/vmpk","last_synced_at":"2025-10-14T09:36:05.511Z","repository":{"id":53940414,"uuid":"343226684","full_name":"pedrolcl/VMPK","owner":"pedrolcl","description":"Virtual MIDI Piano Keyboard (Mirror)","archived":false,"fork":false,"pushed_at":"2024-08-05T10:05:28.000Z","size":2022,"stargazers_count":34,"open_issues_count":2,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-05T17:47:57.964Z","etag":null,"topics":["controller","linux","macos","midi","qt","virtual","windows"],"latest_commit_sha":null,"homepage":"https://sourceforge.net/projects/vmpk/","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-28T22:13:32.000Z","updated_at":"2024-08-05T17:47:57.965Z","dependencies_parsed_at":"2023-02-07T14:16:36.732Z","dependency_job_id":"37a1f2e6-b995-4137-b433-e304db414381","html_url":"https://github.com/pedrolcl/VMPK","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2FVMPK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2FVMPK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2FVMPK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrolcl%2FVMPK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedrolcl","download_url":"https://codeload.github.com/pedrolcl/VMPK/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226950296,"owners_count":17708202,"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":["controller","linux","macos","midi","qt","virtual","windows"],"created_at":"2024-11-28T16:32:32.384Z","updated_at":"2025-10-14T09:36:00.029Z","avatar_url":"https://github.com/pedrolcl.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Virtual MIDI Piano Keyboard\n\n[![Build on Linux](https://github.com/pedrolcl/VMPK/actions/workflows/linux-build.yml/badge.svg)](https://github.com/pedrolcl/VMPK/actions/workflows/linux-build.yml)\n\nThis program is a MIDI events generator/receiver. It doesn't produce any sound by itself, but can be used to drive a MIDI synthesizer (either hardware or software, internal or external). You can use the computer's keyboard to play MIDI notes, and also the mouse. You can use the Virtual MIDI Piano Keyboard to display the played MIDI notes from another instrument or MIDI file player. To do so, connect the other MIDI port to the input port of VMPK.\n\n![Screenshot](https://vmpk.sourceforge.io/images/vmpk_0.8_linux.png \"main window\")\n\n[![Screencast at YouTube](https://img.youtube.com/vi/3TGNSYKjEtg/0.jpg)](https://www.youtube.com/watch?v=3TGNSYKjEtg)\n\nVMPK has been tested in Linux, Windows and Mac, but maybe you can build it also on other operating systems. If you can compile and test the program, please drop a mail to the author.\n\nThe Virtual Keyboard by Takashi Iway [vkeybd](https://github.com/tiwai/vkeybd) has been the inspiration for this one. It is a wonderful piece of software and has served us well for many years. Thanks!\n\nVMPK uses a modern GUI framework: Qt, that gives excellent features and performance. Drumstick-RT provides MIDI input/output features. Both frameworks are free and platform independent, available for Linux, Windows and Mac OSX.\n\nThe alphanumeric keyboard mapping can be configured from inside the program using the GUI interface, and the settings are stored in XML files. Some maps\nfor Spanish, German and French keyboard layouts are provided, translated from the ones provided by VKeybd. Raw keyboard mappings can also be defined\ntranslating X11, Windows or Mac keycodes to MIDI notes.\n\nVMPK can send program changes and controllers to a MIDI synth. The definitions for different standards and devices can be provided as .INS files, the same format used by QTractor and TSE3. It was developed by Cakewalk and used also in Sonar.\n\nThis software is far from being complete. See the TODO file for a list of pending features. Please feel free to contact the author to ask questions, \nreport bugs, and propose new features. \n\nSee https://vmpk.sourceforge.io for more details.\n\n## DOWNLOAD\n\nLatest release is available in Sourceforge:\n\nhttps://sourceforge.net/projects/vmpk/files\n\n[![Download Virtual MIDI Piano Keyboard](https://a.fsdn.com/con/app/sf-download-button)](https://sourceforge.net/projects/vmpk/files/latest/download)\n\n[\u003cimg width='240' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.png'/\u003e](https://flathub.org/apps/details/net.sourceforge.VMPK)\n\n[![Packaging status](https://repology.org/badge/tiny-repos/vmpk.svg)](https://repology.org/project/vmpk/versions)\n\n## REQUIREMENTS\n\nYou need Qt 6.2 or newer (Qt5 \u003e= 5.9 is also supported). Install the -devel package for your system, or download the open source edition:\n\n    https://www.qt.io/download\n\nDrumstick 2.10 is required in all platforms. It uses the ALSA sequencer in Linux, WinMM in Windows and CoreMIDI in Mac OSX, which are the native MIDI systems in all the supported platforms.\n\n    https://drumstick.sourceforge.net\n\nThe build system is based on CMake (\u003e= 3.16). You can download it from:\n\n    https://www.cmake.org\n\nYou need also a C++17 compiler.\n\n    https://gcc.gnu.org/\n    https://sourceforge.net/projects/mingw/\n\nOptionally, you can build a Windows setup program using NSIS.\n\n    https://nsis.sourceforge.io/\n\n## INSTALLATION\n\nDownload the sources from https://sourceforge.net/projects/vmpk/files Unpack the sources in your home directory, and change to the unpacked dir.\n\n    $ tar xvf vmpk-x.y.z.tar.gz\n    $ mkdir vmpk-x.y.z-build\n\nYou can choose between CMake and Qmake to prepare the build system, but qmake is intended only for testing and development.\n\n    $ cmake -S vmpk-x.y.z -B vmpk-x.y.z-build\n    or\n    $ ccmake -S vmpk-x.y.z -B vmpk-x.y.z-build\n    or\n    $ cmake-gui -S vmpk-x.y.z -B vmpk-x.y.z-build\n\nAfter that, compile the program:\n\n    $ cmake --build vmpk-x.y.z-build\n\nif the program has been compiled successfully, you can install it:\n\n    $ cmake --install vmpk-x.y.z-build\n\nThere are more targets available:\n\n    $ cmake --build vmpk-x.y.z-build --target uninstall\n    $ cmake --build vmpk-x.y.z-build --target clean\n\nYou can get some compiler optimisation when building the program, but don't expect too much improvement. There are two ways. First, using a predefined \nconfiguration type:\n\n    $ cmake -S vmpk-x.y.z -B vmpk-x.y.z-build -DCMAKE_BUILD_TYPE=Release\n\nThe CMake \"Release\" type uses the compiler flags: `-O3 -DNDEBUG`. Other predefined build types are `Debug`, `RelWithDebInfo`, and `MinSizeRel`.\nThe second way is to choose the compiler flags yourself:\n\n    $ export CXXFLAGS=\"-O2 -march=native -mtune=native -DNDEBUG\" \n    $ cmake -S vmpk-x.y.z -B vmpk-x.y.z-build\n\nYou need to find the best `CXXFLAGS` for your own system.\n\nIf you want to install the program at some place other than the default (`/usr/local`) use the following CMake option:\n\n    $ cmake  -S vmpk-x.y.z -B vmpk-x.y.z-build -DCMAKE_INSTALL_PREFIX=/usr\n\nOther optional configuration options are:\n\n* ENABLE_DBUS: activates the DBus interface, enabled on Linux by default.\n* EMBED_TRANSLATIONS: include translations inside the executable as resources.\nThis option is OFF by default. Useful for portable builds.\n* BUILD_DOCS: create the man page from XML sources (ON by default). If OFF,\nthen a pre-built man page included in the source tarball is installed.\n* USE_QT5: Prefer building with Qt5 instead of Qt6. Off by default.\n\nexample:\n\n    $ cmake  -S vmpk-x.y.z -B vmpk-x.y.z-build -DENABLE_DBUS=No\n\n## NOTES FOR LINUX USERS\n\nA man page is included in the source package, ready to be installed and used. But if you prefer to generate the man page yourself, the build system can do it if you have installed in your system the following packages:\n\n* xsltproc program.\n* docbook XSLT stylesheets.\n\nThe package names depend on the Linux distribution. For Debian they are: `xsltproc`, `docbook-xsl` and `docbook-xml`. For openSUSE: `libxslt`, `docbook_4`, and `docbook-xsl-stylesheets`.\n\n## NOTES FOR WINDOWS USERS\n\nTo compile the sources in Windows, you need to download either the .bz2 or .gz archive and uncompress it using any utility that supports the format, like [7-Zip](https://www.7-zip.org/).\n\nTo configure the sources, you need qmake (from Qt) or CMake. You need to set the PATH including the directories for Qt binaries, MinGW binaries, and also CMake binaries. The program cmake-gui is the graphic version of CMake.\n\nTo use the program in Windows, you need some MIDI synth. It is possible to use the \"Microsoft GS Wavetable SW Synth\" that cames with Windows, but for better performance and quality, the FluidSynth library is included. Another option is [Virtual MIDI Synth](https://coolsoft.altervista.org/en/virtualmidisynth).\n\nOf course, an external MIDI hardware synth would be an even better approach. \n\nTo connect VMPK to/from other MIDI programs, you need some virtual MIDI cable software, like MIDI Yoke, LoopBe1 or Tobias Erichsen's LoopMIDI.\n\n    http://www.midiox.com/myoke.htm\n    https://www.nerds.de/en/loopbe1.html\n    https://www.tobias-erichsen.de/software/loopmidi.html\n\n## NOTES FOR MAC OSX USERS\n\nThe build system is configured to create an app bundle. You need the Apple development tools and frameworks, as well as the Qt SDK. Note that VMPK \u003e= 0.6 requires the Cocoa framework, with the corresponding Cocoa version of Qt.\n\nTo compile VMPK using Makefiles, generated by qmake:\n\n    $ qmake vmpk.pro -spec macx-g++\n    $ make\n    $ macdeployqt build/vmpk.app\n\nTo compile using Makefiles, generated by CMake:\n\n    $ cmake -G \"Unix Makefiles\" -S vmpk-x.y.z -B vmpk-x.y.z-build\n    $ make\n\nTo create Xcode project files:\n\n    $ qmake vmpk.pro -spec macx-xcode\n    or\n    $ cmake -G Xcode -S vmpk-x.y.z -B vmpk-x.y.z-build\n\nYou can use the MIDI synth library that is included in Mac OSX, with or without an external program like [SimpleSynth](https://notahat.com/simplesynth/). Also from the same author is [MIDI Patchbay](https://notahat.com/midi_patchbay/).\n\n## ACKNOWLEDGMENTS\n\nIn addition to the aforementioned tools, VMPK uses work from the following open source projects. \n\n* from Qtractor, by Rui Nuno Capela \n  https://qtractor.sourceforge.io\n  Instrument definition data classes, Shortcuts editor dialog\n\n* Icon and logo by Theresa Knott\n  https://openclipart.org/detail/366/piano-by-theresaknott\n\nSee AUTHORS for a complete list of acknowledgments  \n\nThank you very much.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrolcl%2Fvmpk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedrolcl%2Fvmpk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrolcl%2Fvmpk/lists"}