aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_midiplay.cpp
AgeCommit message (Collapse)Author
2017-11-25Fix C++98 compatibilityWohlstand
2017-11-25Merge branch 'master' into get-rid-of-backup-bufferWohlstand
2017-11-25Small fixWohlstand
2017-11-24Small warning fixWohlstand
2017-11-23Get rid of backup samples bufferWohlstand
2017-11-21Apply recent fix of the AdLib percussion map made by Joel YliluomaWohlstand
2017-11-18Automatically add "reset all" into begin of every trackWohlstand
This will avoid damaged sound caused by controllers state came from end of song
2017-11-18Avoid a flood of missing bank debug messages, show every message onceWohlstand
2017-11-18Don't even try to print missing patch warning without of a debug log hookWohlstand
2017-11-18OUCH! Fix an accidental fallthroughWohlstand
2017-11-18Tiny fixesWohlstand
2017-11-18Add the XG support into drum note length fixer algorithmWohlstand
2017-11-17Small optimize of XG percussion bank handling codeWohlstand
also potential lose of bank ID of non-XG channel
2017-11-17Let XG SFX1/SFX2 use LSB==1 range of percussion instruments of WOPL fileWohlstand
2017-11-17Added handling of XG percussion bank numbersWohlstand
2017-11-16Merge branch 'master' of git@github.com:Wohlstand/libADLMIDI.gitWohlstand
2017-11-16Clean-up and beautifyingWohlstand
2017-11-15Don't set a track's delay to the global waiter, it's BAD ideaWohlstand
Last track which has 45000 ticks to wait makes song be silent for a while
2017-11-12libADLMIDI now is buildable under OpenWatcom except of some workaroundsWohlstand
- 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
2017-11-10Ability to quit from Classic ADLMIDI under DOS by ESC key hitWohlstand
2017-11-09Resolve weird crash caused by Tetris inside ADLMIDI2 and other changesWohlstand
- 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
2017-11-08Fixed zero four-operators bug when using a bigger non-GM bankWohlstand
2017-11-07Fix a bug which overrides loopStart with seek destination positionWohlstand
2017-11-07Fixed Android compilationWohlstand
2017-11-07Custom WOPL now supports multiple banksWohlstand
Feel free to create something like GS or XG bank :wink:
2017-11-07New API, classic ADLMIDI, and CMakeWohlstand
- 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.
2017-11-05Tri-state for deep-tremolo/vibrato/sm/adlib-percussion modesWohlstand
By default every flag will have "auto" type which means mode will be set in dependence on a bank.
2017-11-05Don't apply a too-short percussion note fix on IMF/CMF and RSXX musics.Wohlstand
2017-11-05Small beautifyingWohlstand
2017-11-05Fix of infinite notes are appearing after events sort with 0-length notesWohlstand
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
2017-11-05Use longer minimal real time delay in the drum note length fixerWohlstand
2017-11-05Oops, 15 tick length, not 1!Wohlstand
2017-11-05Fix a big trougle of too short percussion notesWohlstand
This imperfection existed a whole age in most of MIDI players over OPL2/OPL3 chips, it means beginning of a new era!
2017-11-04Fix pseudo-4op double-voice instrument playing with two equal voicesWohlstand
2017-11-04Added support for playing of Electronic Arts's MUS filesWohlstand
2017-11-03Failed attempt to fix two-voice instruments with same instrument IDWohlstand
Still not working :-(
2017-11-01Added hooks and meta-info: title, copyright, track titles and markersWohlstand
2017-10-27Repair the ability to skip silence in a begin,Wohlstand
...But keep it be togglable through macro definition
2017-10-26Continue works on loop points and some clean-upWohlstand
- 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
2017-10-25Parse & validate loop events in load time than in playing timeWohlstand
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
2017-10-25Small re-factoring of new MIDI event classes for correctnessWohlstand
- MidiTrackPos renamed into MidiTrackRow - TempoMarker renamed into TempoChangePoint
2017-10-25Prevent possible going far far away after end of track memory blockWohlstand
This will prevent possible crash on attempt to parse wrong or damaged MIDI file
2017-10-25Small optimization of seeking processWohlstand
Don't do lots of loops when is possible to iterate all previous events in one run
2017-10-25Clean-upWohlstand
- 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)
2017-10-24Added working seekability!Wohlstand
Testing and stabilizing is needed
2017-10-24Absolute time position now is known!Wohlstand
2017-10-24Fixed IMF playing!Wohlstand
2017-10-24Use MidiEvent enums where are raw event types are was usedWohlstand
2017-10-24More info about meta-eventsWohlstand
2017-10-24Absolute per-event time position calculation is works!Wohlstand