невозможно уменьшить байты файла midi - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь выполнить некоторые операции на дорожках MIDI, например, увеличить / уменьшить скорость воспроизведения.

Для тех, кому нужна более подробная информация: чтобы изменить скорость воспроизведения, мне нужно разделить «время дельты» каждой дорожки на множитель. Например. Если я хочу ускорить дорожку х2, тогда я делю времена дельты на 2. Время дельты сохраняется как качества переменной длины, поэтому, если я делю времена дельты, мне нужно обновить размер дорожки, уменьшив размер в байтах, чтобы сохранить состояние дорожки согласованным (поскольку более короткое время дельты означает меньшее количество байтов, необходимое для хранения величины переменной длины).

В моей структуре длина дорожки (размер в байтах всей дорожки) сохраняется как uint32_t. Проблема возникает, когда я пытаюсь сохранить измененный размер дорожки обратно. Допустим, если мой исходный размер дорожки был 3200, а после уменьшения разницы в разнице в байтах 240, то я просто вычел эту разницу из исходной длины. Однако, когда я использую команду du для проверки нового размера файла, размер файла сильно увеличивается. Как будто идет от 16 кБ до 2000 кБ. Я не понимаю почему.

...