From 9d3c8c0e6e1a7ba43bf3dc19350d1dca68b657a3 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sun, 10 Feb 2019 11:16:07 +0800 Subject: Initial commit. --- blog/post/2016-04-09.html | 186 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 blog/post/2016-04-09.html (limited to 'blog/post/2016-04-09.html') diff --git a/blog/post/2016-04-09.html b/blog/post/2016-04-09.html new file mode 100644 index 0000000..56d4aea --- /dev/null +++ b/blog/post/2016-04-09.html @@ -0,0 +1,186 @@ + + + + +Chrisoft::Blog + + + + + + + + + + + + + + + + + + + + +
+ +
+
+

The MIDI File Format Specification and MIDI Implementation in QMidiPlayer

+
2016-04-09
#devel #qmidiplayer #midi
+
+
+ + +

Abstract

+

+This article is intended to be a reliable MIDI file format and implementation reference. +It takes QMidiPlayer as an example to illustrate how a basic software-based MIDI implementation works. +For the Chinese version, please visit <Chinese version link here>. +

+ +
+
+Contents [hide] +
+ +
    +
  • 1 Data Representations +
      +
    • 1.1 Binary values
    • +
    • 1.2 Variable length values
    • +
    +
  • +
  • 2 Chunks +
      +
    • 2.1 Header chunk
    • +
    • 2.2 Track chunks
    • +
    +
  • +
  • 3 Events +
      +
    • 3.1 MIDI events +
        +
      • 3.1.1 Running status
      • +
      +
    • +
    • 3.2 Meta events
    • +
    • 3.3 SysEx events
    • +
    +
  • +
  • 4 Common MIDI Implementations +
      +
    • 4.1 Pre-GM
    • +
    • 4.2 GM
    • +
    • 4.3 GS
    • +
    • 4.4 XG
    • +
    • 4.5 GM2
    • +
    +
  • +
  • 5 Implementation details in QMidiPlayer
  • +
  • 6 Appendix +
      +
    • 6.1 List of known SysEx's
    • +
    • 6.2 Instrument list
    • +
    • 6.3 MIDI Effects
    • +
    +
  • +
  • 7 References
  • +
+
+ +

+
+


+
+
+ +
+
+
+ \ No newline at end of file -- cgit v1.2.3