GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - pedrolcl/dmidiplayer: Drumstick MIDI File Player Multiplatform (mirror)

BranchesTags
Open more actions menu

Latest commit

 

History

384 Commits
384 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
cmake
cmake
 
 
docs
docs
 
 
examples
examples
 
 
icons
icons
 
 
translations
translations
 
 
.gitignore
.gitignore
 
 
CMakeLists.txt
CMakeLists.txt
 
 
ChangeLog
ChangeLog
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
channels.cpp
channels.cpp
 
 
channels.h
channels.h
 
 
connections.cpp
connections.cpp
 
 
connections.h
connections.h
 
 
connections.ui
connections.ui
 
 
creadmg.sh
creadmg.sh
 
 
dmidiplayer.pro
dmidiplayer.pro
 
 
dmidiplayer.rc.in
dmidiplayer.rc.in
 
 
dmidiplayer_mingw.nsi.in
dmidiplayer_mingw.nsi.in
 
 
dmidiplayer_msvc.nsi.in
dmidiplayer_msvc.nsi.in
 
 
events.cpp
events.cpp
 
 
events.h
events.h
 
 
framelesswindow.cpp
framelesswindow.cpp
 
 
framelesswindow.h
framelesswindow.h
 
 
gpl-3.0.rtf
gpl-3.0.rtf
 
 
guiplayer.cpp
guiplayer.cpp
 
 
guiplayer.h
guiplayer.h
 
 
guiplayer.qrc
guiplayer.qrc
 
 
guiplayer.ui
guiplayer.ui
 
 
helpwindow.cpp
helpwindow.cpp
 
 
helpwindow.h
helpwindow.h
 
 
iconutils.cpp
iconutils.cpp
 
 
iconutils.h
iconutils.h
 
 
instrumentset.cpp
instrumentset.cpp
 
 
instrumentset.h
instrumentset.h
 
 
loopdialog.cpp
loopdialog.cpp
 
 
loopdialog.h
loopdialog.h
 
 
loopdialog.ui
loopdialog.ui
 
 
lyrics.cpp
lyrics.cpp
 
 
lyrics.h
lyrics.h
 
 
net.sourceforge.dmidiplayer.desktop
net.sourceforge.dmidiplayer.desktop
 
 
net.sourceforge.dmidiplayer.metainfo.xml
net.sourceforge.dmidiplayer.metainfo.xml
 
 
pianola.cpp
pianola.cpp
 
 
pianola.h
pianola.h
 
 
playerabout.cpp
playerabout.cpp
 
 
playerabout.h
playerabout.h
 
 
playerabout.ui
playerabout.ui
 
 
playermain.cpp
playermain.cpp
 
 
playlist.cpp
playlist.cpp
 
 
playlist.h
playlist.h
 
 
playlist.ui
playlist.ui
 
 
prefsdialog.cpp
prefsdialog.cpp
 
 
prefsdialog.h
prefsdialog.h
 
 
prefsdialog.ui
prefsdialog.ui
 
 
recentfileshelper.cpp
recentfileshelper.cpp
 
 
recentfileshelper.h
recentfileshelper.h
 
 
rhythmview.cpp
rhythmview.cpp
 
 
rhythmview.h
rhythmview.h
 
 
screenshot.png
screenshot.png
 
 
seqplayer.cpp
seqplayer.cpp
 
 
seqplayer.h
seqplayer.h
 
 
sequence.cpp
sequence.cpp
 
 
sequence.h
sequence.h
 
 
settings.cpp
settings.cpp
 
 
settings.h
settings.h
 
 
toolbareditdialog.cpp
toolbareditdialog.cpp
 
 
toolbareditdialog.h
toolbareditdialog.h
 
 
toolbareditdialog.ui
toolbareditdialog.ui
 
 
vumeter.cpp
vumeter.cpp
 
 
vumeter.h
vumeter.h
 
 
winsnap.cpp
winsnap.cpp
 
 
winsnap.h
winsnap.h
 
 

Repository files navigation

Drumstick Multiplatform MIDI File Player

Linux CI
Windows MSVC CI
Windows MSYS2 CI
macOS CI

This application is a multiplatform MIDI file player for Linux, Windows and macOS. It reads .MID (Standard MIDI Files), .KAR (Karaoke), and .WRK (Cakewalk) file formats, and outputs MIDI events to hardware MIDI ports and also software synths.

Drumstick is a set of GPLv3 licensed C++/Qt libraries for MIDI applications. The project includes several tools as examples, and among them is the drumstick-guiplayer utility that leverages the Drumstick::ALSA library, so it is available only for Linux (because the ALSA sequencer is a linux only technology). Some people have requested a program with the same functionalities on Windows and macOS, and here it is. But this program is much more than that, and also works on Linux ...

Screenshot

Screencast at YouTube

Some key features:

  • MIDI Output to hardware MIDI ports, or any other Drumstick backend like soft synths
  • Transpose song tonality between -12 and +12 semitones
  • Change MIDI volume level (using MIDI CC7)
  • Scale song speed between half and double tempo
  • Lyrics, Piano Player and MIDI Channels views
  • Supports MID/KAR/RMI (Standard MIDI Files) and WRK (Cakewalk) file formats

This multiplatform version offers equivalent functionality replacing Drumstick::ALSA by Drumstick::RT. The MIDI events scheduling/timing is performed inside the program with the only help of the C++ standard library (threads and chrono). The MIDI output still has access to each operating system's MIDI infrastructure, but also to additional backends like ipMidi and soft synths.

Alright, these are the build requirements:

  • C++11 compiler
  • Qt 5 >= 5.15 or Qt6 >= 6.2
  • Drumstick 2.11
  • Uchardet 0.0.8
  • pandoc
  • CMake 3.16

Build and deployment commands (for Linux)

$ tar -xvzf dmidiplayer-x.y.z.tar.gz
$ cd dmidiplayer-x.y.z
$ mkdir build
$ cmake -S . -B build -DCMAKE_PREFIX_PATH="$HOME/Qt;$HOME/drumstick2;$HOME/uchardet"
$ cmake --build build
$ cmake --install build

You probably don't need to use the CMake variable CMAKE_PREFIX_PATH at all, if your dependencies are installed on some standard prefix like "/usr" on Linux. Otherwise, you need to replace the contents of the parameter CMAKE_PREFIX_PATH with the actual paths in your system (in the example, each dependency was installed on a subdirectory under the $HOME directory). If you don't want to compile the program yourself, there are x86_64 precompiled packages for Linux, Windows and macOS at Sourceforge.

Download Drumstick Multiplatform MIDI File Player

Get it on Flathub

Binary packages for several Linux distributions:

Packaging status

Enjoy!

About

Drumstick MIDI File Player Multiplatform (mirror)

dmidiplayer.sourceforge.io

Topics

alsadrumstickkaraokelinuxlyricsmacosmidipiano-playerplayersmfsoft-synthswindowswrk

Resources

Readme
GPL-3.0 license
Activity

Stars

44 stars

Watchers

4 watching

Forks

9 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.