twystd
9c7f7f961a
midi: fixes for PR comments:
...
- Renamed 'tracks' section to 'content' (cf. https://github.com/wader/fq/pull/1004#discussion_r1746651234 )
- Removed 'validation only' errors (cf. https://github.com/wader/fq/pull/1004#issuecomment-2333464662 )
- Decoded MThd divisions field with SMPTE timecode
2024-09-06 15:41:57 -07:00
twystd
87c80f5776
midi: fixes for PR comments
...
- Reworked event types as snake-case (cf. https://github.com/wader/fq/pull/1004#discussion_r1745101588 )
- Decoded 'alien' chunks (cf. https://github.com/wader/fq/pull/1004#discussion_r1745082089 )
2024-09-05 15:50:51 -07:00
twystd
9f057b6760
midi: fixes for PR comments
...
- Removed handling for non-MIDI chunks (cf. https://github.com/wader/fq/pull/1004#discussion_r1743889501 )
- Removed redundant chunk length asserts (cf. https://github.com/wader/fq/pull/1004#discussion_r1743883995 )
- Removed redundant header FieldArray (cf. https://github.com/wader/fq/pull/1004#discussion_r1743921309 )
- Replaced FieldUintFn with FieldUnn for SMTPEOffsetEvent (cf. https://github.com/wader/fq/pull/1004#discussion_r1743930829 )
- Added note to midi.md re. supported chunks
2024-09-04 13:36:35 -07:00
twystd
17bac771df
midi: removed superfluous uint64 cast (cf. https://github.com/wader/fq/pull/1004#discussion_r1740783338 )
2024-09-03 11:19:34 -07:00
twystd
a3a0a06932
midi: simplifed and cleaned up MIDI 'fq' tests:
...
- reduced format 0, format 1 and format 2 test files to basic MIDI skeleton
- reworked reference.mid file as a test/development sample only
- added fq tests for the single event MIDI files
- updated examples to use twinkle.mid
2024-09-01 16:41:38 -07:00
twystd
a7d0cde9f6
midi: cleaned up and simplied event decoding logic
...
- delineated NoteOn and NoteOff events
- simplified MIDI event decoding with function map
- decoded MIDI event and channel as nibbles
- reworked system exclusive event decoding
- fixed peekEvent to correctly decode end of file events
2024-09-01 16:41:38 -07:00
twystd
578b7e78e3
midi: restructured event decoding to decode length and struct fields (cf. https://github.com/wader/fq/pull/1004#discussion_r1737105173 )
...
- restructured and simplified metaevent decoding
- restructured and simplified MIDI event decoding
- added sample events for remaining metaevents
- moved MIDI test and sample files to testdata/midi
- fixed fuzzing fail 8450de010e750ed5
2024-09-01 16:41:26 -07:00
twystd
e940f4766f
midi: reworked metaevent decoding for PR comments
...
- fixed remaining snake-cased event names in tests and examples (cf. https://github.com/wader/fq/pull/1004#discussion_r1737054466 )
- report 'status' and 'event' seperately (cf. https://github.com/wader/fq/pull/1004#discussion_r1737085013 )
- decoded TimeSignature metaevent as length + byte fields (cf. https://github.com/wader/fq/pull/1004#discussion_r1737105173 )
- decoded SequencerSpecificEvent metaevent as length + byte fields (cf. https://github.com/wader/fq/pull/1004#discussion_r1737111253 )
- reworked Errorf's as Fatalf's for data reads (cf. https://github.com/wader/fq/pull/1004#discussion_r1737123374 )
2024-09-01 16:40:22 -07:00
twystd
7950dd651f
midi: added midi to the TestFormats all.fqtest list (cf. https://github.com/wader/fq/pull/1004#issuecomment-2314599567 )
2024-08-28 14:39:45 -07:00
twystd
f424936faa
midi: fixed lint warning (cf. https://github.com/wader/fq/pull/1004#discussion_r1734668130 )
2024-08-28 14:15:53 -07:00
twystd
b5f2bdabc9
midi: added localised Makefile (cf. https://github.com/wader/fq/pull/1004#discussion_r1732745303 )
2024-08-28 14:01:22 -07:00
twystd
2350afed5d
midi: updated help text to use snake-case event names (cf. https://github.com/wader/fq/pull/1004#discussion_r1734659627 )
2024-08-28 14:00:27 -07:00
twystd
c8d9397bc4
midi: snake-cased event types and event names (cf. https://github.com/wader/fq/pull/1004#discussion_r1732733049 )
2024-08-27 16:03:45 -07:00
twystd
ea3e0898bf
midi: reworked decoding to expect an MThd header as the first chunk (cf. https://github.com/wader/fq/pull/1004#discussion_r1732725275 )
2024-08-27 15:41:58 -07:00
twystd
899549623d
midi: cleaned up event decoding logic
2024-08-26 00:50:52 -07:00
twystd
2970fb143e
midi: lowercased event names
2024-08-25 20:46:42 -07:00
twystd
4fac4c68a5
midi: discarded unknown chunks
2024-08-25 11:03:46 -07:00
twystd
e99d9f69ab
midi: asserted bytes left for MIDI events
2024-08-24 11:23:40 -07:00
twystd
80b93439ac
midi: added new test and MIDI files
2024-08-23 17:24:03 -07:00
twystd
57adef4688
midi: added sample queries to midi.md
2024-08-23 17:20:55 -07:00
twystd
91fa54755f
midi: added example queries to the test data
2024-08-23 15:54:52 -07:00
twystd
473394b21e
midi: added event type to events to simplify query by event
2024-08-22 19:54:04 -07:00
twystd
59b1faa4b9
midi: decorated 'delta' field with running tick
2024-08-21 19:59:34 -07:00
twystd
54a0cf1284
midi: mapped SysEx event types
2024-08-21 19:13:03 -07:00
twystd
3809ddbd23
midi: combined metaevent status + event bytes
2024-08-19 20:04:19 -07:00
twystd
a337ff002f
midi: reworked sysex and metaevent 'struct' events to decode as byte arrays
2024-08-19 19:49:14 -07:00
twystd
ce02d6eafe
midi: added length field to TimeSignature struct
2024-08-18 21:28:18 -07:00
twystd
0915f75098
midi: added 'data' field to EndOfTrack event
2024-08-18 11:39:29 -07:00
twystd
4bb3292fc6
midi: fixed key signature map
2024-08-18 11:24:55 -07:00
twystd
9099a3eb84
midi: decoded chunk tags as FieldUTF8
2024-08-17 19:44:42 -07:00
twystd
4fe27f514c
midi: decoded remaining text metaevents
2024-08-15 19:47:47 -07:00
twystd
cbd4a8a85a
midi: Decoded NoteOff event
2024-08-14 20:20:00 -07:00
twystd
d7ec38a2d3
midi: basic test set
2024-08-14 20:14:52 -07:00
twystd
3276641208
midi: Decoded KeySignature, NoteOn and Controller events
2024-08-14 19:52:15 -07:00
twystd
a1385caf36
midi: Decoded EndOfTrack and ProgramChange events
2024-08-13 20:24:19 -07:00
twystd
ad0a06d656
midi: initial import
2024-08-10 18:25:14 -07:00