2016-02-16 4 views
1

Что такое хороший способ обработки множества небольших аудиофайлов (wav, mp3 ...)? Я хочу создать веб-пианино с 88 клавишами. Каждый ключ связан с небольшим wav-файлом. Я знаю, что было бы неплохо поразить сервер 88 запросами. Я думаю о их объединении (объединение файлов или один аудиофайл) и разделить их на javascript. Это обычная практика, и для этого есть библиотека javascript?Хорошая практика для загрузки множества небольших аудиофайлов

+1

Почему бы не использовать [API веб-аудио] (https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API), чтобы сделать звуки и вообще не загружать звуковые файлы? На этой странице есть пример с пианино: https://chromium.googlecode.com/svn/trunk/samples/audio/samples.html – neilsimp1

+0

легко синтезирует звук фортепиано? Я думаю, это может быть лучшим решением. – Flmhdfj

+0

@ neilsimp1 прав - это относительно легко и было бы отличным способом уменьшить время загрузки. – brod

ответ

1

Просто некоторые общие комментарии:

Я уверен, вы уже решили, что вы действительно нужен отдельный файл для каждого ключа, по соображениям реализма? В противном случае вы можете рассмотреть, например. просто сэмплирование клавиши C каждой октавы и изменение высоты тона, чтобы уменьшить потребление памяти. Много реализма также связано с динамикой, то есть скоростью нажатия клавиш. Для реалистичного звука должны быть отдельные отсчеты для разных скоростей. При использовании подхода «образец за ключ» вы будете есть много оперативной памяти.

Если вы придерживаетесь своего первоначального плана, возможно, вы можете попытаться создать один большой WAV-файл, где каждый ключ будет воспроизводиться последовательно. Затем вы можете узнать индексы каждой ноты (образец начала/остановки/индекс) и воспроизвести только соответствующий диапазон. В сжатых форматах осуществимость этого подхода будет зависеть от используемой библиотеки воспроизведения.

+0

изменяет высоту тона, что я должен сделать преобразование Фурье на стороне клиента? Я изначально планировал использовать один mp3-файл, но продолжительность файлов неравномерна. Я должен переиндексировать, если я меняю один из файлов. – Flmhdfj

+0

С «изменением высоты тона» я имел в виду, что вы можете воспроизводить данные WAV с разной скоростью. Шаг - это частота строк фортепиано, чем быстрее вы воспроизводите WAV-файл, тем выше шаг (частота). В зависимости от используемой библиотеки воспроизведения вам нужно помнить о повторной выборке. Если вы, например, воспроизводить образцы без какой-либо библиотеки воспроизведения, то есть подавать образец данных wav-образца на буфер вывода звука (приемник), вам нужно интерполировать между сэмплами, поэтому качество звука не ухудшается. Об этом много литературы. – Newtron

+0

А, мне просто нужно переделать. Это хороший подход. Я даю ему попробовать. Спасибо. – Flmhdfj

Смежные вопросы