Задаю в EXEL таблицу с целью создания звукового файла.
Расскажите, как ?
Задаю в EXEL таблицу с целью создания звукового файла.
Расскажите, как ?
Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает
Делал я "научную работу" в 11 классе, частью которой было обратное преобразование.
Мне за нее даже награду "нациоральное достояние" на всерос конференции под масквой дали
Только зачем именно такое преобразование может быть нужно, не совсем ясно.
Обратное тоже было бы любопытно, а мне нужно зондирующий импульс хитрой формы , в редакторе ручками не нарисовать.
Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает
Я думаю, с помощью макросов (Сервис-Макрос-Редактор_ВижуалБейсик или Alt+F11). В вижуал-бейсике есть команды двоичного вывода в файл. На обычном бейсике, прилагаемом к ДОСу, я в своё время много аудио-файлов создал именно с такой целью: специальные сигналы. Возможно, что не меньшими способностями обладает и вижуал. Правда, у меня почему-то в екселе эти пункты меню сейчас не работают (возможно, из-за того, что я во время установки отказался от В-Бейсика), поэтому я не могу оперативно проверить что-нибудь и/или подсказать.
Всего доброго.
Евгений.
Евгений, спасибо, будем пробовать.
Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает
Да, все реализуется командами VBA. Можно поступить и несколько по-другому.
Генерировать в Excel нужные последовательности чисел, потом копировать их в блокнот, получать два столбца, разделенных пробелом, сохранять в виде тхт, а затем над этим тхт производить заклинание например скриптом, написанным на JScript или VBScript. Заклинание по сути простое - нужно просто составить заголовок, в котором прописана частота дискретизации, битность, а также длина последовательности, а потом дописать "взад" имеющиеся в тхт числа.
Я в свое время делал программки на C и matlab. Если сильно надо, я попрошу их найти.
То есть , например, создать звуковым редактором wav файл нужного формата и найти способ как заменить в нём данные на созданные Excelем.
А как быть с контрольной суммой? или это не из этой оперы
Программированием не занимался, а неужели нет готовых решений.
Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает
Там контрольной суммы нету, есть только длина последовательности.
На самом деле, там ничего сложного нету, надо просто знать формат (что куда и какой длины писать) заголовка.
Нет. Иначе бы зачем мы тут всё это делали бы? Никому ж лишнюю работу делать неохота. Но приходится. Единственное, что ексел умеет делать сам, так это сохранять текущий лист в текстовом формате, причём можно даже заказать разделитель ячеек, чтобы потом этот текст могла обработать другая программа. На этом его возможности заканчиваются. Я в своё время, когда работал секретарём, написал себе макрос для перевода строки типа "1 234 567 руб. 89 коп." в сумму прописью, да ещё и с вычислением НДС 18%, но даже это в Ворде работает, а в екселе не хочет. Всё надо делать самому, ничего готового нет.
Кстати, вот на всякий случай формат заголовка:
DWORD "RIFF" // имя чанка
DWORD Размер остатка файла, равен размеру файла -8
DWORD "WAVE" // имя чанка
DWORD "fmt " // имя блока
DWORD Размер блока; // В нашем случае длина этого блока =16 (байтов)
WORD wFormatTag; // тип формата (pcm) =1
WORD nChannels; // количество каналов (моно или стeрео) =1 или =2
DWORD nSamplesPerSec; // частота дискретизации, может быть 44100 или что ещё.
DWORD nAvgBytesPerSec;// скорость потока данных =nChannels * nSamplesPerSec * wBitsPerSanipIe / 8
WORD nBlockAlign; // байтов на отсчёт =(nChannels * wBitsPerSample) / 8 (для CD =4)
WORD vBitsPerSample; // бит на отсчёт, обычно =8, =16 или =24
DWORD "data"; // имя чанка данных
DWORD Размер остатка файла, в нашем случае равен размеру файла -44
Единственная сложность при заполнении заголовка состоит в том, что необходимо заранее знать длину звуковых данных для заполнения двух полей, в первое из которых вписывается эта длина, увеличенная на 36.
Для многоканального сигнала каналы записываются в порядке возрастания номера.
Диапазон изменения значений сигнала определяется разрядностью квантования.
Для 8-битных данных он составляет от 0 до 255 (Охff), причем нулю соответствует значение 128 (0х80).
Для 16-битных данных диапазон изменения сигнала составляет от -32768 (-0х8000) до 32767, (Ox7fff), нулю соответствует значение 0.
Перечисленными чанками RIFF, WAVE и data возможности wav-формата отнюдь не ограничиваются. Но для формирования аудио-файла это необходимый минимум.
Последний раз редактировалось Eats; 21.02.2009 в 16:04. Причина: Добавлено описание заголовка wav-файла
Всего доброго.
Евгений.
Социальные закладки