Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Еквалайзер


Автор: SAVANE 8.6.2007, 18:06
Собствено вопрос не по програмированию а по акустике или Бог его знает по чем.
Сделал еквалайзер через Басс.длл.
Есть проблема если начинаешь регулировать звук с помощью него то получается такая бяка.
Вот у меня вопрос Какими должны быть частоты для еквалайзера, я так понимаю что еще нужно знать  ширину канала для каждой частоты и плюс еще амплитуда до какой надо увиличивать.

Наверное написал не оч понятно просто не знаю как по другом.
Если есть какая нить инфа по этому или у кого то есть позитивный опыт создания еквалайзера помогите плиз!

Выложу кусок кода где прописывал еквалайзер.

Код

p.fGain := 0;
    p.fBandwidth := 18;
    p.fCenter := 100;
    BASS_FXSetParameters(fx[1], @p);
    p.fBandwidth := 18;
    p.fCenter := 200;
    BASS_FXSetParameters(fx[2], @p);
    p.fBandwidth := 27;
    p.fCenter := 400;
    BASS_FXSetParameters(fx[3], @p);
    p.fBandwidth := 27;
    p.fCenter := 600;
    BASS_FXSetParameters(fx[4], @p);
    p.fBandwidth := 36;
    p.fCenter := 1000;
    BASS_FXSetParameters(fx[5], @p);
    p.fBandwidth := 100;
    p.fCenter := 3000;
    BASS_FXSetParameters(fx[6], @p);
    p.fBandwidth := 100;
    p.fCenter := 6000;
    BASS_FXSetParameters(fx[7], @p);
    p.fBandwidth := 3000;
    p.fCenter := 14000;
    BASS_FXSetParameters(fx[8], @p);
    p.fBandwidth := 100;
    p.fCenter := 16000;
    BASS_FXSetParameters(fx[9], @p);


Менять можно везде от 0 до 30 с помощю тракбаров


Менять можно везде от 0 до 30 с помощю тракбаров

Автор: Fiyanov 15.6.2007, 09:09
С Bass.dll в папке с примерами есть хороший пример с эквалайзером. Прям готовый как в WinAmp. Ты откуда взял Bass.dll? Лучше её скачать с офсайта там и примеры и прочее и прочее.

Автор: SAVANE 18.6.2007, 10:30
Не там пример трехполосного.
Ладно оставил три полосы хватит. Вот теперь вторая проблема.
Считываю с реестра значения трекбара для эквалайзеров. Число от 0 до 30. теперь трабла как мне сделать так чтоб пи запуске проги стартовал и еквалайзер.

Пробывал так:
Код


BASS_FXGetParameters(fx[1], @p);
    p.fgain := 15-strtoint(kontrol[12]);
    BASS_FXSetParameters(fx[1], @p);
    BASS_FXGetParameters(fx[2], @p);
    p.fgain := 15-strtoint(kontrol[13]);
    BASS_FXSetParameters(fx[2], @p);
    BASS_FXGetParameters(fx[3], @p);
    p.fgain := 15-strtoint(kontrol[14]);
    BASS_FXSetParameters(fx[3], @p);


Где strtoint(kontrol[13]); считаные значения, но голяк. как тока трону трекбар так сразу меняется по одной полосе значения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)