ПрограммированиеФорумЗвук

Fmod, одновременное воспроизведение звуков и запись их в файл (2 стр)

Страницы: 1 2
#15
1:26, 27 июля 2020

rcsim
А как проверить?

#16
1:32, 27 июля 2020

Ну в fmod должен указываться sample rate по идее.
Ну и если время известно, то sample_rate = samplesCount / time / channelsCount;

#17
2:24, 27 июля 2020

rcsim
>Ну и если время известно, то sample_rate = samplesCount / time / channelsCount;

Погоди, это значит что sample_rate может быть не 44100? Т.е. это не константа?

#18
11:25, 27 июля 2020

san
> Т.е. это не константа?

Константа, но с задаваемым значением. В данном случае не тобой, а видимо значением по
умолчанию в fmod и/или аудиобэкэнде/драйвере.

Естественно, посредине микширования она не меняется. Но тебе надо либо сохранять эту частоту в
wav, либо интерполировать в нужную (это по идее должен уметь делать libsndfile).

#19
17:02, 27 июля 2020

rcsim
Спасибо!  Получилось 47950. Кто бы мог подумать... Поправил код на первой странице.

#20
19:46, 27 июля 2020

san
> Получилось 47950. Кто бы мог подумать... Поправил код на первой странице.
> Поправил код на первой странице.

Ставь 48000 - это стандартная частота. 50 герц съелось округлением, и даже скорее неточным таймером.
А еще лучше, эти 48000 использовать как константу одновременно при инициализации аудио и при записи wav.

Вроде System::setSoftwareFormat() - это оно. Ну или getSoftwareFormat(), чтобы узнать умолчания.

#21
0:17, 28 июля 2020

rcsim
Если ты заметил, я просто стал мерить время записи (до миллисекунды) и делить на число отсчетов. Можно и как ты сказал, но это уже неважно. 50 черц пропало из-за короткого времени записи сэмпла, на более длинных отрезках получается ровно 48000. В общем вопрос закрыт, спасибо за помощь.

Страницы: 1 2
ПрограммированиеФорумЗвук

Тема в архиве.