| 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:\GitHubcmd in the windows folder pathgit clone https://github.com/ruiseixasm/JsonMidiPlayer.git in it to clone the repositorysudo apt install fluidsynth fluid-soundfont-gmfluidsynth -v -a alsa /usr/share/sounds/sf2/FluidR3_GM.sf2GitHub directory and clone the repository into it with git clone https://github.com/ruiseixasm/JsonMidiPlayer.gitPlease 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 --verboseIt 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 /