Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 08.01.2021, 18:00   #1
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 893
По умолчанию Bass регулировка по отдельности левого и правого каналов звука

Добрый вечер Форумчане!
Подскажите пожалуйста есть ли способ регулировки по отдельности левого и правого каналов звука.

интересует примерно следующее но так не работает видимо для midi
Код:
Samples:= BASS_SampleLoad(false, Pchar(OpenDialog1.filename),0,0,10, BASS_SAMPLE_LOOP);
Channel:= BASS_SampleGetChannel(Samples, false);
BASS_ChannelSetAttribute(Chanel, BASS_ATTRIB_MUSIC_VOL_CHAN + 1, 0.1);
BASS_ChannelSetAttribute(Chanel, BASS_ATTRIB_MUSIC_VOL_CHAN + 2, 0.1);
BASS_ChannelPlay(Channel, FALSE);
Так работает но это балансировка каналов, а мне нужно каждому из каналов задать свой уровень.
Код:
Samples:= BASS_SampleLoad(false, Pchar(OpenDialog1.filename),0,0,10, BASS_SAMPLE_LOOP);
Channel:= BASS_SampleGetChannel(Samples, false);
//установка громкости звука
BASS_ChannelSetAttribute(Channel,BASS_ATTRIB_VOL, vol);
//установка баланса
BASS_ChannelSetAttribute(Channel,BASS_ATTRIB_PAN,Ball);
BASS_ChannelPlay(Channel, FALSE);
Есть ли еще способы регулировки по отдельности каждый из каналов?
За ранее спасибо!
Aliens_wolfs вне форума Ответить с цитированием
Старый 15.01.2021, 22:38   #2
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 102
По умолчанию

Каналы можно регулировать по-отдельности используя bassmix и конкретно BASS_Mixer_ChannelSetMatrix
будет что-то вроде вот такого
Код:
var     
  matrix : array of single;
  mixer,channel:HSTREAM;
  //....
    BASS_Init(-1,44100,0,Handle, nil));
    mixer := BASS_Mixer_StreamCreate(44100,2, 0);
   //...
      channel:= BASS_StreamCreateFile(false,pchar(Self.OpenDialog1.FileName),0,0,BASS_STREAM_DECODE  {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
    BASS_Mixer_StreamAddChannel(mixer, channel, BASS_MIXER_MATRIX or BASS_STREAM_AUTOFREE);
    SetLength(matrix, 2*2);
    matrix[0]:=0.5;   matrix[1]:=0; // l=0.5
    matrix[2]:=0;   matrix[3]:=0.7; // r=0.7
    BASS_Mixer_ChannelSetMatrix(channel, matrix);
    BASS_ChannelPlay(mixer, false);
DIONISKA вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите высоту дерева H и удалите в нем все вершины на глубине H/2, у которых высота левого поддерева равна высо-те правого поддер Nika1997 Общие вопросы Delphi 0 06.03.2015 19:20
Регулировка звука C# N1VaL C# (си шарп) 12 10.10.2013 16:18
Регулировка звука левого и правого каналов Smerch66 Мультимедиа в Delphi 5 19.01.2011 13:24
Регулировка звука? cargo29 Мультимедиа в Delphi 5 12.01.2011 19:33
Регулировка звука bookkc Помощь студентам 5 02.11.2010 22:15


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS