File | Date | Author | Commit |
---|---|---|---|
.vscode | 2024-08-12 |
![]() |
[6ab27d] Reconfigured launch.json file |
include | 2024-08-23 |
![]() |
[e230be] Added Standard Deviation to the Stats reporting! |
single_include | 2024-07-14 |
![]() |
[ea8c15] Working sigle Include of nlohmann |
src | 2024-08-24 |
![]() |
[f0ecd0] Now drag is being reported whenever happens |
support | 2024-08-15 |
![]() |
[09c5f1] Clean code |
.gitignore | 2024-07-14 |
![]() |
[b7a9e8] Main file with List |
CMakeLists.txt | 2024-08-15 |
![]() |
[b0ad10] Redefined Sleep timer |
LICENSE | 2024-07-14 |
![]() |
[f1592d] Initial commit |
README.md | 2024-08-23 |
![]() |
[c22eed] Improved readability and the if condition in th... |
_debugging_file.json | 2024-08-12 |
![]() |
[a16306] Working debugging json file |
main.cpp | 2024-08-10 |
![]() |
[2ddb4c] Drag and Delays |
midiSimpleNotes.json | 2024-08-10 |
![]() |
[2ddb4c] Drag and Delays |
python_ctypes.py | 2024-08-04 |
![]() |
[bae19c] Implemented the Library verbose option |
Very simple MIDI Player intended to be used to play JSON files created by JsonMidiCreator or directly by the generated dynamic library.
C:\GitHub
cmd
in the windows folder pathgit clone https://github.com/ruiseixasm/JsonMidiPlayer.git
in it to clone the repositorysudo apt install fluidsynth fluid-soundfont-gm
fluidsynth -v -a alsa /usr/share/sounds/sf2/FluidR3_GM.sf2
GitHub
directory and clone the repository into it with git clone https://github.com/ruiseixasm/JsonMidiPlayer.git
Please note that for ctypes
only the Visual Studio 2017+ is capable of generating working .dll
files, the MinGW compiler isn't!
1. Create the folder build
inside the repository folder
2. Open the command line inside the folder created above by typing cmd
in the windows folder path
3. While in the build
folder type these commands, one at a time:
cmake --no-warn-unused-cli -S .. -B . -T host=x64 -A x64
cmake --build . --config Release --target ALL_BUILD --
build
inside the repository directorycmake -DCMAKE_BUILD_TYPE:STRING=Release --no-warn-unused-cli -S.. -B.
cmake --build . --config Release --target all --
.\build\Release\
and open the command line by typing cmd
in the windows folder pathJsonMidiPlayer.exe ..\..\midiSimpleNotes.json --verbose
./build/
and type the following command:./JsonMidiPlayer.out ../midiSimpleNotes.json --verbose
It is possible to run this program directly from the JsonMidiCreator with the >> Play()
operation, you just need to do the following.
lib
inside the cloned JsonMidiCreator repositoryJsonMidiPlayer_ctypes.dll
inside the folder .\build\lib\Release\
into the folder created abovelib
inside the cloned JsonMidiCreator repositorylibJsonMidiPlayer_ctypes.so
inside the directory ./build/lib/
into the directory created aboveThe program is quite simple and light, it just loops a list so no much Drag or Delay shall be expected to happen.
Drag is the amount of time the entire playing got out of sync while Delay is just the amount of time each single midi message played out of tempo.
Despite some delay, that didn't mean any drag in the example bellow.
Midi stats reporting:
Total processed Midi Messages (sent): 611
Total redundant Midi Messages (not sent): 0
Total excluded Midi Messages (not sent): 0
Total drag (ms): 0.000 \
Total delay (ms): 4.349 /
Maximum delay (ms): 0.196 \
Minimum delay (ms): 0.000 /
Average delay (ms): 0.007 \
Standard deviation of delays (ms): 0.028 /