Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура в wav, I NEED HELP 
:(
    Опции темы
NwinIX
Дата 21.8.2005, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.8.2005

Репутация: нет
Всего: нет



Почти, там еще кое-что доработать надо-это всего лишь костяк. А так да, теперь не ругается smile smile
PM MAIL   Вверх
Step
Дата 21.8.2005, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



С тебя бутылка smile


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
NwinIX
Дата 21.8.2005, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.8.2005

Репутация: нет
Всего: нет



Хех, вот еще вопросик тогда, связанный с эхо. Я в массив(указатель) samples писал данные из файла(кроме самого заголовка, его я формировал отдельно). В этом массиве я могу оперировать данными, повышая и понижая амплитуду-следовательно громкость. А как можно сделать, чтобы оперировать со временем? Ну например сдвинуть весь исходный сигнал на 1 или 0,1 секунды, и потом этот сдвинутый сигнал слить с исходным, чтобы как бы образовался сигнал со своим эхо(с небольшой задержкой) smile smile


Это сообщение отредактировал(а) NwinIX - 21.8.2005, 02:43
PM MAIL   Вверх
Step
Дата 21.8.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



NwinIX, как сдвинуть берешь и делаешь копию сигнала в памяти со свдигом и потом накладЫваешь, правый лишний край удаляешь, или увеличиваешь длительность...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
NwinIX
Дата 21.8.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.8.2005

Репутация: нет
Всего: нет



Со сдвигом разобрался но вот с наложением не очень. Ну вот есть у меня samples[]-оригинальный сигнал, samples_resize[]-все данные сдвинуты на 2 i-х позиции, размер такой же, следствие из этого, два последних значения не влезут..... Но вот как их слить не догоняю, это типа samples_resize[] вписать в samples[] или как, мож создать новый массив и в него все это записать, вот тока как smile
PM MAIL   Вверх
Step
Дата 21.8.2005, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



последнии два удаляете

да вписать через какуюто операцию
попробуйте в тупую сплюсовать и откоректировать амплитуду что бы не фонило


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
NwinIX
Дата 21.8.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.8.2005

Репутация: нет
Всего: нет



В тупую не получается, не могу выравнять, да и не катит этот вариант, мне нужен конечный сигнал с точностью до бита как оригинал слитый с своим эхо, просто пишу программу по стеганографии, так боюсь что потом при декодировании данных не те значения будут извлекаться....А как можно еще слить? Можно на небольшом примере? smile smile
PM MAIL   Вверх
Step
Дата 21.8.2005, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



что значит не получаеться, что значит с точностью до бита, такое понятие применять как то глупо в єтом случае, нужно с точностью до отсчета или чето в этом роде



что значит выровнять, что к чему ты выравниваешь


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
NwinIX
Дата 25.8.2005, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.8.2005

Репутация: нет
Всего: нет



Деху ступил.....

Код


for(i=0,j=2;j<nsamples;i++,j++)
{
    samples_edit_2[j]=samples[i]; //здвиг на 2 отсчета
}

for(i=0,j=3;j<nsamples;i++,j++)
{
    samples_edit_3[j]=samples[i]; //Здвиг на 3 отсчета
}



Где nsamples-колличество отсчетов в массиве samples. Создал еще два мас для записи этого же сигнала но с небольшой задержкой, а как теперь слить не знаю. NEED HELP(т.е. как слить samples_edit_3+samples или samples_edit_2+samples, чтоб сохранился и оригинал и его эхо?,то есть один равный сумме исходного и задержанного по времени.
Если можно то примерчих хотя быб малюханький. smile smile

Это сообщение отредактировал(а) NwinIX - 25.8.2005, 17:41
PM MAIL   Вверх
DrLazy
Дата 25.8.2005, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.7.2005

Репутация: нет
Всего: нет



Если у тебя амплитуды знаковые, то
Код

for(i=0;i<nsamples;i++)
{
samples[i] += samples_edit_2[i] +samples_edit_3[i];
}


эхо правда обрежется по длине первого звука. Если надо по другому надеюсь сообразишь
Если будет перегрузка ( short int overflow ) то подели на 3 перед записью в массив.

Это сообщение отредактировал(а) DrLazy - 25.8.2005, 21:44
PM   Вверх
NwinIX
Дата 25.8.2005, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.8.2005

Репутация: нет
Всего: нет



Я Впринципе так пробовал, тока складывал вот так
Код


samples = (short*)malloc( datasize );
samplesRes= (short*)malloc( datasize );
 /*
тут куски кода не важно какие(извлечение заголовка и формирование нового)
*/
for(i=0,j=8;j<nsamples;i++,j++)      
    {    
      samplesRes[j]=samples[i];  //делаем задержку в 0,001 секунды
    }
//Эхо файл само собой получается обрезаный как раз на 8 отсчетов(0,001 секунду)
while(i<nsamples)
    {
        samples[i]=samples[i]+samplesRes[i];
    }
wav_hdr.riffsize = wav_hdr.datasize + 36;
    /*  пишем заголовок */
    fwrite( &wav_hdr, sizeof( wav_hdr), 1, fout );
    /* пишем сам файл */
    fwrite( samples, datasize, 1, fout );  



вот тока ничего хорошего не получилось, файл создает выходной а данными не заполняет
Если записывать просто nsamples без всяких преобразований то все работает а так не пашет.
А может стоит увеличить колличество памяти в выходной файл как минимум в двое, вот тока как вычесть эти восемь отсчетов на которые я сдвинул?

Это сообщение отредактировал(а) NwinIX - 26.8.2005, 00:09
PM MAIL   Вверх
Guest
Дата 26.8.2005, 22:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем спасибо за советы, сам все сделал, во всем разобрался smile smile
  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0805 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.