Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2013, 18:15   #11
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...а что мешает его включить? При использовании BASS есть возможность выбора записи со стереомикшера:


остается только активировать его. Может в семерке по-другому, но у меня в XP захват через BASS работает для микшера и в записи и воспроизведении, а последний активирован по дефолту всегда.
Вложения
Тип файла: zip спектр на BASS.zip (6.66 Мб, 143 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 16.06.2013, 19:23   #12
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
саша40, зачем постить настолько сырую информацию
1. Создавать нужно массив с типом Single. Размер зависит от параметра. 1024 только для BASS_DATA_FFT1024
2. У меня получилось прикрутить эту функцию только для микрофона. Использование микшера недопустимо. Может у тебя пример есть? Интересно, как это выглядит - на плюсы не скуплюсь, если это можно так реализовать (но я сомневаюсь)
3. Почему именно панель? Рисовать можно где угодно и как угодно.

Сам реализовал всё с помощью BASSWASAPI
1. Да ты прав, третий параметр функции.
2. Спектр частот зависит от параметра канала
(громкость и баланс) и FX- параметров.
Код:
Код:
TFFTData  = array [0..512] of Single; //в типы 

//переменные визуализации
FFTPeacks  : array [0..128] of Integer;
FFTFallOff : array [0..128] of Integer; //в глобальные

procedure Draw(HWND : THandle; FFTData : TFFTData; X, Y : Integer); //private у класса формы


//процедура(Рисуем спектрум)
var i, YPos : LongInt; YVal : Single;
       begin
       //очистка области визуализации
          pb1.Canvas.Pen.Color := clBlack;
          pb1.Canvas.Brush.Color := clBlack;
          pb1.Canvas.Rectangle(0, 0, pb1.Width, pb1.Height);
       //визуализация
       // pb1.Canvas.Pen.Color := clRed;
         for i := 0 to 127 do begin // количество столбиков
           YVal := Abs(FFTData[i]);
           YPos := trunc((YVal) * 500);
           if YPos > pb1.Height then YPos := pb1.Height;

           if YPos >= FFTPeacks[i] then FFTPeacks[i] := YPos
             else FFTPeacks[i] := FFTPeacks[i] - 1;

           if YPos >= FFTFallOff[i] then FFTFallOff[i] := YPos
              else FFTFallOff[i] := FFTFallOff[i] - 3;
                     //рисование пика
                     pb1.Canvas.Pen.Color := clYellow;
                     pb1.Canvas.MoveTo(X + i*(3+1) , Y + pb1.Height - FFTPeacks[i]);
                     pb1.Canvas.LineTo(X + i*(3+1) + 3, Y + pb1.Height - FFTPeacks[i]);
                     //рисование столбика
                     pb1.Canvas.Pen.Color := clRed;
                     pb1.Canvas.Brush.Color := clRed;
                     pb1.Canvas.Rectangle(X + i*(3+1) , Y + pb1.Height - FFTFallOff[i], X + i*(3+1) + 3, Y + pb1.Height);

              end;

        end;  

//Timer(onTime)
var FFTFata : TFFTData;

BASS_ChannelGetData(Channel, @FFTFata, BASS_DATA_FFT1024); //параметры: Имя звукового патока, Буфер записи данных, Параметр 3.
Draw (pb1.Canvas.Handle, FFTFata, 0,-5); //параметры: Handle канваса обьекта(pb1=TPaintBox), Переменая, смещение от левого края, поднитие спектра вверх по Y(оси!)
Взято от сюда:
http://basicsprog.ucoz.ru/publ/6-1-0-19

3. PaintBox подойдет?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 16.06.2013, 19:29   #13
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Да, басс может захватить микшер. Но можно захватить и сами колонки с помощью того же басса. И при этом включать микшер не надо. Это же куда лучше и коректней - разве нет?
TwiX вне форума Ответить с цитированием
Старый 16.06.2013, 19:31   #14
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

саша40, брр. Навреное, стоит ещё раз перечитать вопрос из первого особщения. Твой пример для файла
TwiX вне форума Ответить с цитированием
Старый 24.06.2013, 22:47   #15
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
Твой пример для файла
Разве? Я пробывал его с любыми патоками. Интернет-радио отлично работает. Хочу использовать и при потоковом приеме.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 25.06.2013, 00:28   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Разве? Я пробывал его с любыми патоками. Интернет-радио отлично работает. Хочу использовать и при потоковом приеме.
поток данных, это не поток аудио.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.06.2013, 12:12   #17
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
поток данных, это не поток аудио.
Bass_StreamCreateUrl создает паток из ссылки на канал(радио или файл кажись). Выходной параметр переменая типа HStream. Вот это ты имеел ввиду.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 25.06.2013, 14:02   #18
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...Саша прав, BASS прекрасно строит спектр и для потока с интернета, а поскольку он лишь обертка над DirectSound, то работа осуществляется с аудиоданными.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.06.2013, 14:06   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

прикол в том, что у ТС были проблемы именно с получением звука того что сейчас играет(общий), а не с тем как строить спектрограмму с файла.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа анализатор звука. язык любой darkzenon Помощь студентам 6 08.11.2012 15:31
Сдвиг (перенос) спектра частот buczhack Мультимедиа в Delphi 0 20.03.2011 22:06
Инверсия спектра речевого сигнала. buczhack Мультимедиа в Delphi 0 18.03.2011 15:01
Частота текущего звука Biohazard Мультимедиа в Delphi 1 13.07.2010 11:44