From 22b00d0e00d695960fa609fee8a6cb3986bb3e61 Mon Sep 17 00:00:00 2001 From: hmzh Date: Mon, 8 Aug 2022 12:35:28 +0000 Subject: [PATCH] Add support for multiple mid-track tempo changes PiperOrigin-RevId: 466018462 --- .../extractordumps/midi/Twinkle.mid.0.dump | 28 ++-- .../midi/Twinkle.mid.unknown_length.dump | 28 ++-- .../mid_note_tempo_changes_simple.mid.dump | 88 ++++++++++++ .../midi/multi_note_tempo_changes.mid.dump | 136 ++++++++++++++++++ .../midi/mid_note_tempo_changes_simple.mid | Bin 0 -> 94 bytes .../media/midi/multi_note_tempo_changes.mid | Bin 0 -> 144 bytes 6 files changed, 252 insertions(+), 28 deletions(-) create mode 100644 libraries/test_data/src/test/assets/extractordumps/midi/mid_note_tempo_changes_simple.mid.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/midi/multi_note_tempo_changes.mid.dump create mode 100644 libraries/test_data/src/test/assets/media/midi/mid_note_tempo_changes_simple.mid create mode 100644 libraries/test_data/src/test/assets/media/midi/multi_note_tempo_changes.mid diff --git a/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.0.dump b/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.0.dump index e59fbf7a77..4aaff5e9a1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.0.dump @@ -40,7 +40,7 @@ track 0: sample 7: time = 500000 flags = 1 - data = length 3, hash FFFED733 + data = length 3, hash FFFE9B23 sample 8: time = 500000 flags = 1 @@ -64,7 +64,7 @@ track 0: sample 13: time = 1000000 flags = 1 - data = length 3, hash FFFED733 + data = length 3, hash FFFE9B23 sample 14: time = 1000000 flags = 1 @@ -88,7 +88,7 @@ track 0: sample 19: time = 1500000 flags = 1 - data = length 3, hash FFFED80C + data = length 3, hash FFFE9BFC sample 20: time = 1500000 flags = 1 @@ -112,7 +112,7 @@ track 0: sample 25: time = 2000000 flags = 1 - data = length 3, hash FFFED80C + data = length 3, hash FFFE9BFC sample 26: time = 2000000 flags = 1 @@ -136,7 +136,7 @@ track 0: sample 31: time = 2500000 flags = 1 - data = length 3, hash FFFED84A + data = length 3, hash FFFE9C3A sample 32: time = 2500000 flags = 1 @@ -160,7 +160,7 @@ track 0: sample 37: time = 3000000 flags = 1 - data = length 3, hash FFFED84A + data = length 3, hash FFFE9C3A sample 38: time = 3000000 flags = 1 @@ -204,7 +204,7 @@ track 0: sample 48: time = 4000000 flags = 1 - data = length 3, hash FFFED80C + data = length 3, hash FFFE9BFC sample 49: time = 4000000 flags = 1 @@ -228,7 +228,7 @@ track 0: sample 54: time = 4500000 flags = 1 - data = length 3, hash FFFED7CE + data = length 3, hash FFFE9BBE sample 55: time = 4500000 flags = 1 @@ -252,7 +252,7 @@ track 0: sample 60: time = 5000000 flags = 1 - data = length 3, hash FFFED7CE + data = length 3, hash FFFE9BBE sample 61: time = 5000000 flags = 1 @@ -268,7 +268,7 @@ track 0: sample 64: time = 5250000 flags = 1 - data = length 3, hash FFFED7AF + data = length 3, hash FFFE9B9F sample 65: time = 5350000 flags = 1 @@ -292,7 +292,7 @@ track 0: sample 70: time = 5750000 flags = 1 - data = length 3, hash FFFED7AF + data = length 3, hash FFFE9B9F sample 71: time = 5850000 flags = 1 @@ -316,7 +316,7 @@ track 0: sample 76: time = 6250000 flags = 1 - data = length 3, hash FFFED771 + data = length 3, hash FFFE9B61 sample 77: time = 6350000 flags = 1 @@ -340,7 +340,7 @@ track 0: sample 82: time = 6750000 flags = 1 - data = length 3, hash FFFED771 + data = length 3, hash FFFE9B61 sample 83: time = 6850000 flags = 1 @@ -392,5 +392,5 @@ track 0: sample 95: time = 8000000 flags = 1 - data = length 3, hash FFFED733 + data = length 3, hash FFFE9B23 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.unknown_length.dump index e59fbf7a77..4aaff5e9a1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/midi/Twinkle.mid.unknown_length.dump @@ -40,7 +40,7 @@ track 0: sample 7: time = 500000 flags = 1 - data = length 3, hash FFFED733 + data = length 3, hash FFFE9B23 sample 8: time = 500000 flags = 1 @@ -64,7 +64,7 @@ track 0: sample 13: time = 1000000 flags = 1 - data = length 3, hash FFFED733 + data = length 3, hash FFFE9B23 sample 14: time = 1000000 flags = 1 @@ -88,7 +88,7 @@ track 0: sample 19: time = 1500000 flags = 1 - data = length 3, hash FFFED80C + data = length 3, hash FFFE9BFC sample 20: time = 1500000 flags = 1 @@ -112,7 +112,7 @@ track 0: sample 25: time = 2000000 flags = 1 - data = length 3, hash FFFED80C + data = length 3, hash FFFE9BFC sample 26: time = 2000000 flags = 1 @@ -136,7 +136,7 @@ track 0: sample 31: time = 2500000 flags = 1 - data = length 3, hash FFFED84A + data = length 3, hash FFFE9C3A sample 32: time = 2500000 flags = 1 @@ -160,7 +160,7 @@ track 0: sample 37: time = 3000000 flags = 1 - data = length 3, hash FFFED84A + data = length 3, hash FFFE9C3A sample 38: time = 3000000 flags = 1 @@ -204,7 +204,7 @@ track 0: sample 48: time = 4000000 flags = 1 - data = length 3, hash FFFED80C + data = length 3, hash FFFE9BFC sample 49: time = 4000000 flags = 1 @@ -228,7 +228,7 @@ track 0: sample 54: time = 4500000 flags = 1 - data = length 3, hash FFFED7CE + data = length 3, hash FFFE9BBE sample 55: time = 4500000 flags = 1 @@ -252,7 +252,7 @@ track 0: sample 60: time = 5000000 flags = 1 - data = length 3, hash FFFED7CE + data = length 3, hash FFFE9BBE sample 61: time = 5000000 flags = 1 @@ -268,7 +268,7 @@ track 0: sample 64: time = 5250000 flags = 1 - data = length 3, hash FFFED7AF + data = length 3, hash FFFE9B9F sample 65: time = 5350000 flags = 1 @@ -292,7 +292,7 @@ track 0: sample 70: time = 5750000 flags = 1 - data = length 3, hash FFFED7AF + data = length 3, hash FFFE9B9F sample 71: time = 5850000 flags = 1 @@ -316,7 +316,7 @@ track 0: sample 76: time = 6250000 flags = 1 - data = length 3, hash FFFED771 + data = length 3, hash FFFE9B61 sample 77: time = 6350000 flags = 1 @@ -340,7 +340,7 @@ track 0: sample 82: time = 6750000 flags = 1 - data = length 3, hash FFFED771 + data = length 3, hash FFFE9B61 sample 83: time = 6850000 flags = 1 @@ -392,5 +392,5 @@ track 0: sample 95: time = 8000000 flags = 1 - data = length 3, hash FFFED733 + data = length 3, hash FFFE9B23 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/midi/mid_note_tempo_changes_simple.mid.dump b/libraries/test_data/src/test/assets/extractordumps/midi/mid_note_tempo_changes_simple.mid.dump new file mode 100644 index 0000000000..b5020c0196 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/midi/mid_note_tempo_changes_simple.mid.dump @@ -0,0 +1,88 @@ +seekMap: + isSeekable = true + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=14]] + getPosition(1) = [[timeUs=1, position=14]] +numberOfTracks = 1 +track 0: + total output bytes = 43 + sample count = 19 + format 0: + sampleMimeType = audio/midi + sample 0: + time = 0 + flags = 1 + data = length 3, hash 70FB + sample 1: + time = 0 + flags = 1 + data = length 3, hash FFFEDCE7 + sample 2: + time = 0 + flags = 1 + data = length 7, hash C95FA238 + sample 3: + time = 0 + flags = 1 + data = length 6, hash 37A83E76 + sample 4: + time = 100000 + flags = 1 + data = length 0, hash 1 + sample 5: + time = 200000 + flags = 1 + data = length 0, hash 1 + sample 6: + time = 300000 + flags = 1 + data = length 0, hash 1 + sample 7: + time = 400000 + flags = 1 + data = length 0, hash 1 + sample 8: + time = 500000 + flags = 1 + data = length 6, hash 37A84514 + sample 9: + time = 600000 + flags = 1 + data = length 0, hash 1 + sample 10: + time = 700000 + flags = 1 + data = length 0, hash 1 + sample 11: + time = 800000 + flags = 1 + data = length 0, hash 1 + sample 12: + time = 833333 + flags = 1 + data = length 6, hash 37A83493 + sample 13: + time = 933333 + flags = 1 + data = length 0, hash 1 + sample 14: + time = 1033333 + flags = 1 + data = length 0, hash 1 + sample 15: + time = 1083333 + flags = 1 + data = length 6, hash 37A83CA6 + sample 16: + time = 1183333 + flags = 1 + data = length 0, hash 1 + sample 17: + time = 1283333 + flags = 1 + data = length 3, hash FFFEA058 + sample 18: + time = 1283333 + flags = 1 + data = length 3, hash FFFF4CA9 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/midi/multi_note_tempo_changes.mid.dump b/libraries/test_data/src/test/assets/extractordumps/midi/multi_note_tempo_changes.mid.dump new file mode 100644 index 0000000000..bdc7bdea28 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/midi/multi_note_tempo_changes.mid.dump @@ -0,0 +1,136 @@ +seekMap: + isSeekable = true + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=14]] + getPosition(1) = [[timeUs=1, position=14]] +numberOfTracks = 1 +track 0: + total output bytes = 78 + sample count = 31 + format 0: + sampleMimeType = audio/midi + sample 0: + time = 0 + flags = 1 + data = length 3, hash 70FB + sample 1: + time = 0 + flags = 1 + data = length 3, hash FFFF5A77 + sample 2: + time = 0 + flags = 1 + data = length 7, hash C95FA238 + sample 3: + time = 0 + flags = 1 + data = length 3, hash 70FB + sample 4: + time = 0 + flags = 1 + data = length 6, hash 37A83E76 + sample 5: + time = 0 + flags = 1 + data = length 3, hash FFFF4D46 + sample 6: + time = 0 + flags = 1 + data = length 3, hash FFFF4D0D + sample 7: + time = 0 + flags = 1 + data = length 3, hash FFFF4DA4 + sample 8: + time = 0 + flags = 1 + data = length 3, hash 40 + sample 9: + time = 0 + flags = 1 + data = length 2, hash FFFFFC20 + sample 10: + time = 0 + flags = 1 + data = length 3, hash FFFEDCE7 + sample 11: + time = 100000 + flags = 1 + data = length 0, hash 1 + sample 12: + time = 200000 + flags = 1 + data = length 0, hash 1 + sample 13: + time = 300000 + flags = 1 + data = length 0, hash 1 + sample 14: + time = 400000 + flags = 1 + data = length 0, hash 1 + sample 15: + time = 500000 + flags = 1 + data = length 6, hash 37A84514 + sample 16: + time = 500000 + flags = 1 + data = length 3, hash FFFEDD63 + sample 17: + time = 600000 + flags = 1 + data = length 0, hash 1 + sample 18: + time = 700000 + flags = 1 + data = length 0, hash 1 + sample 19: + time = 800000 + flags = 1 + data = length 0, hash 1 + sample 20: + time = 833333 + flags = 1 + data = length 3, hash FFFEA0D4 + sample 21: + time = 833333 + flags = 1 + data = length 6, hash 37A83493 + sample 22: + time = 833333 + flags = 1 + data = length 3, hash FFFEDDC0 + sample 23: + time = 933333 + flags = 1 + data = length 0, hash 1 + sample 24: + time = 1033333 + flags = 1 + data = length 0, hash 1 + sample 25: + time = 1083333 + flags = 1 + data = length 6, hash 37A83CA6 + sample 26: + time = 1083333 + flags = 1 + data = length 3, hash FFFEA131 + sample 27: + time = 1083333 + flags = 1 + data = length 3, hash FFFEDE1D + sample 28: + time = 1183333 + flags = 1 + data = length 0, hash 1 + sample 29: + time = 1283333 + flags = 1 + data = length 3, hash FFFEA058 + sample 30: + time = 1283333 + flags = 1 + data = length 3, hash FFFEA18E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/midi/mid_note_tempo_changes_simple.mid b/libraries/test_data/src/test/assets/media/midi/mid_note_tempo_changes_simple.mid new file mode 100644 index 0000000000000000000000000000000000000000..c256edce1c66ed63591068c0cb596336a037dd67 GIT binary patch literal 94 zcmeYb$w*;fU|?flWME=^;2Tnu4dm%F{AXrh_#eT-!X&}L@IR25eW5~g0+41E69v=E g7bZYxUI&K%`V3HQf(#Qq>iZcQJs21^vNM1r08Qc;djJ3c literal 0 HcmV?d00001 diff --git a/libraries/test_data/src/test/assets/media/midi/multi_note_tempo_changes.mid b/libraries/test_data/src/test/assets/media/midi/multi_note_tempo_changes.mid new file mode 100644 index 0000000000000000000000000000000000000000..686eb5fb272532b66ea6798c2310175728348ec7 GIT binary patch literal 144 zcmeYb$w*;fU|?flWME=^;2Tnu4dm%F{AXrh_#eT-!X&}L@IR25eW5~g0+41E69v=E z7bZYxUI&K%`V3HQ&I}tX8NgaMayc+;WKUt($X(CykimiBAOpihkNW0>i9SH0(Fe%$ V2QmDCj35xhgMpzj2&h$`0RYCcDBl18 literal 0 HcmV?d00001