Age | Commit message (Collapse) | Author |
|
|
|
|
|
Because of broken STL containers, are very hard crashes in random places are can't be fixed with a full customizing of those containers.
|
|
- Need a different way to create a static library, otherwise it don't wanna be built.
- Needed a different custom STL containers (std::vector and std::set) implementation that will work and will don't glitch with a crashes
|
|
Yeah, I see it lacks A LOT OF things: std::vector lacks .data() member, std::map lacks .count() member, there is no any std::stringstream implementations, etc.
SOLUTION: Try to use STLPort to provide missing STL support for this compiler
|
|
|
|
|
|
It is needed to detect the end of song while manually iterating a MIDI ticks
|
|
- Move most of inline classes methods into own CC file
- Move Input into own header with own CC file to share it with the puzzle game
- Created virtual destructors and resolved weak vtable trouble between of Tetris's classes
- Remove static declarisons of Tetris class. Instead, let it be member of UserInterface
- Fixed forgot note-offs while sorting events row with zero length notes
- Fixed crash caused by unsafe access by reference to element of array that was modified/reallocated one or multiple times
- Stabilize dealing with zero-length notes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Feel free to create something like GS or XG bank :wink:
|
|
- Attempt to support hardware OPL and add build of classic ADLMIDI into CMake
- Added new API functions
- Added C++ Extras are needed for classic ADLMIDI player
- Error string is no more static. Static variant is kept for initialization errors only.
|
|
|
|
|
|
|
|
|
|
By default every flag will have "auto" type which means mode will be set in dependence on a bank.
|
|
|
|
|
|
Also a small optimizing:
- Convert Note-ON with zero velocity into Note-OFF event
- Don't re-sort row, just put note-off into begin of the row instead
|
|
|
|
|
|
This imperfection existed a whole age in most of MIDI players over OPL2/OPL3 chips, it means beginning of a new era!
|
|
TODO: Implement support for tri-states per deep-tremolo, deep-vibrato flags
|
|
|
|
|
|
|
|
|
|
|
|
Still not working :-(
|
|
|
|
|
|
|
|
# Conflicts:
# libADLMIDI-test.pro
# src/adlmidi.cpp
# src/adlmidi_private.hpp
|
|
|
|
...But keep it be togglable through macro definition
|
|
That will give ability to implement same ADLMIDI player as originally, but keep library be fully independent from original console tool.
|
|
https://github.com/sneakernets/DMXOPL/commit/41c79f772dfa586c0a19eeb4c8bdbfb46b728e4c
|
|
- Added more detailed error information while parsing MIDI file
- Added abiltiy to retrieve loop points time positions
- Added ability to change playing tempo by giving multiplier
- Removed old commented code
TODO:
- implement meta-information store and a way to retreive it
- implement hook-ability for every MIDI event
- implement ability to mute/solo every channel
|
|
Loop events are converting into in-library own types are compact, easier and faster to process without having to re-parse markers or have any extra code in standard event handlers
|
|
- MidiTrackPos renamed into MidiTrackRow
- TempoMarker renamed into TempoChangePoint
|
|
This will prevent possible crash on attempt to parse wrong or damaged MIDI file
|
|
Don't do lots of loops when is possible to iterate all previous events in one run
|
|
- Move all private variables into MIDIplay class away from public ADL_MIDIPlayer structure
- Comment out most of legacy code
- Implement new-style ReadVarLenEx for error-checked var-len value reading process
TODO: Stabilize this and implement missing fields and API calls (meta-data retreiving)
|
|
Testing and stabilizing is needed
|