Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/313: Рейтинг темы: голосов - 313, средняя оценка - 4.82
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341

bass.dll

28.10.2009, 15:10. Показов 65269. Ответов 129
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Так как гугл не помог мне, обращаюсь к этому форуму=) можете плз привести пример использование bass.dll . Если точнее- то показать как ее подключить к проекту, как обращаться к ее функциям(например привести примерчик проигрывания файла).зарание спасибо=)
3
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2009, 15:10
Ответы с готовыми решениями:

Куда закинуть bass.dll,bass.h,bass.lib
Ребят, пересмотрел темы на форуме, гуглил, толком ничего не нашел. Собственно такая проблема, вот я скачал архив bass.zip, в нем находится...

Где взять bass.dll bass.lib for win64
Приветствую. Тут много тем было на эти вопросы , но ответа не нашел. Где можно и вообще есть ли bass.dll,bass.lib для Windows 8.1 64...

[Linker Error] 'E:\Programming\C++\BASS.DLL\BASS.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
Народ, подскажите пожалуйста, из-за чего ошибку билдер выбивает?? 'E:\Programming\C++\BASS.DLL\BASS.LIB' contains invalid OMF record,...

129
2 / 2 / 0
Регистрация: 22.04.2010
Сообщений: 3
28.04.2010, 03:52
Студворк — интернет-сервис помощи студентам
Регулировка громкости
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include <mmsystem.h>
 
HMIXER hmix;
MIXERCAPS mixcaps;
int VolumeID,volmin,volmax;
MIXERCONTROLDETAILS details;
MIXERCONTROL mixctrl;
MIXERCONTROLDETAILS_UNSIGNED valdets;
DWORD curvolume;
bool svEnable;
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSetVol *SetVol;
//---------------------------------------------------------------------------
__fastcall TSetVol::TSetVol(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
// Change Volume (-)
void __fastcall TSetVol::SpeedButton1Click(TObject *Sender)
{
  if(!svEnable) return;
  VolBar->Position = VolBar->Position-(VolBar->Max-VolBar->Min)/10;
  if(VolBar->Position < VolBar->Min) VolBar->Position = VolBar->Min;
  details.cbStruct = sizeof(details);
  details.dwControlID = VolumeID;
  details.cChannels = 1;
  details.cMultipleItems = 0;
  details.cbDetails = sizeof(valdets);
  details.paDetails = &valdets;
  if(VolBar->Position > 4000)
    valdets.dwValue = VolBar->Position;
  else
    valdets.dwValue = 0;
  mixerSetControlDetails((HMIXEROBJ)hmix,&details,MIXER_SETCONTROLDETAILSF_VALUE);
}
//---------------------------------------------------------------------------
// Change Volume (+)
void __fastcall TSetVol::SpeedButton2Click(TObject *Sender)
{
  if(!svEnable) return;
  VolBar->Position = VolBar->Position+(VolBar->Max-VolBar->Min)/10;
  if(VolBar->Position > VolBar->Max) VolBar->Position = VolBar->Max;
  details.cbStruct = sizeof(details);
  details.dwControlID = VolumeID;
  details.cChannels = 1;
  details.cMultipleItems = 0;
  details.cbDetails = sizeof(valdets);
  details.paDetails = &valdets;
  if(VolBar->Position > 4000)
    valdets.dwValue = VolBar->Position;
  else
    valdets.dwValue = 0;
  mixerSetControlDetails((HMIXEROBJ)hmix,&details,MIXER_SETCONTROLDETAILSF_VALUE);
}
//---------------------------------------------------------------------------
void __fastcall TSetVol::FormDestroy(TObject *Sender)
{
  if(!svEnable) return;
  mixerClose(hmix);
}
//---------------------------------------------------------------------------
void __fastcall TSetVol::FormCreate(TObject *Sender)
{
  unsigned int i;
  MIXERLINE mixline;
  MIXERLINECONTROLS mixlinectrl;
  MIXERCONTROL mixctrl;
 
  MMRESULT rc; // Return code.
  rc = mixerOpen(&hmix,0,0,0,0);
  if (MMSYSERR_NOERROR == rc) { ; } else ShowMessage("Error");
 
  ZeroMemory(&mixline,sizeof(mixline));
  mixerGetDevCaps(0,&mixcaps,sizeof(mixcaps));
 
  for(i=0; i < mixcaps.cDestinations-1; i++)
   {
     mixline.dwDestination = i;
     mixline.cbStruct = sizeof(mixline);
     mixerGetLineInfo((HMIXEROBJ)hmix,&mixline,MIXER_GETLINEINFOF_DESTINATION);
     if(mixline.dwComponentType==MIXERLINE_COMPONENTTYPE_DST_SPEAKERS) break;
   }
/*  if(mixline.dwComponentType!=MIXERLINE_COMPONENTTYPE_DST_SPEAKERS)
   {
     ShowMessage("Error. Mixer is disabled !");
     svEnable = false;
     return;
   }*/
//  else
     svEnable = true;
 
  ZeroMemory(&mixlinectrl, sizeof(mixlinectrl));
  mixlinectrl.cbStruct = sizeof(mixlinectrl);
  mixlinectrl.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
  mixlinectrl.dwLineID = mixline.dwLineID;
  mixlinectrl.cControls = 2;
 
  ZeroMemory(&mixctrl, sizeof(mixctrl));
  mixlinectrl.cbmxctrl = sizeof(mixctrl);
  mixctrl.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
  mixlinectrl.pamxctrl = &mixctrl;
  mixerGetLineControls((HMIXEROBJ)hmix,&mixlinectrl,MIXER_GETLINECONTROLSF_ONEBYTYPE);
 
  VolumeID = mixctrl.dwControlID;
  volmin = mixctrl.Bounds.dwMinimum;
  volmax = mixctrl.Bounds.dwMaximum;
 
  details.cbStruct = sizeof(details);
  details.dwControlID = VolumeID;
  details.cChannels = 1;
  details.cMultipleItems =0;
  details.cbDetails = sizeof(valdets);
  details.paDetails = &valdets;
  mixerGetControlDetails((HMIXEROBJ)hmix,&details,MIXER_GETCONTROLDETAILSF_VALUE);
 
  curvolume = valdets.dwValue;
  VolBar->Min = volmin;
  VolBar->Max = volmax;
  VolBar->Position = curvolume;
}
//---------------------------------------------------------------------------
1
 Аватар для BARS1991
23 / 15 / 0
Регистрация: 16.11.2009
Сообщений: 332
25.10.2010, 17:24
Как сделать эквалайзер на bass.dll ? И получить разделение выходного сигнала на частоты ?
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
15.08.2011, 20:42
У меня почему то запускается проект и разу закрывается почему так происходит???
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.08.2011, 11:40
Проигривание сделал так но когда нжимаю на Play (тоест на батн) нечего не происходит, почему ето так?
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HSAMPLE samp;
HSTREAM chan;
//---------------------------------------------------------------------------
void __fastcall TForm6::FormCreate(TObject *Sender)
{
  BASS_Init(-1,44100,BASS_DEVICE_3D,0,NULL);
}
//---------------------------------------------------------------------------
void __fastcall TForm6::btn1Click(TObject *Sender)
{
UnicodeString FileNm = "D:\\Take me away from.mp3";
wchar_t *a = FileNm.c_str();
chan = BASS_StreamCreateFile(FALSE,a,0,0,0);
BASS_ChannelPlay(chan,FALSE);
}
1
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
16.08.2011, 12:53
Попробуй инициализировать так сначала
BASS_Init(-1,44100,0,NULL,NULL);, если не поможет
Внеси chan в состав класса(объяви в классе, а не глобально)

Добавлено через 1 минуту
и проверку на chan поставь, открыл он канал или нет!
1
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.08.2011, 15:37
pomkalk,
Сделал всё так как ты сказал но с "chan" ом проблемы! Вот так проверил и вилезает Message что "Something wrong witth chan"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void __fastcall TForm6::btn1Click(TObject *Sender)
{
HSAMPLE samp;
HSTREAM chan;
UnicodeString FileNm = "D:\\Take me away from.mp3";
wchar_t *a = FileNm.c_str();
chan = BASS_StreamCreateFile(FALSE,a,0,0,0);
if(chan == TRUE)
 {
  ShowMessage("now time to use BASS_ChannelPlay");
  if(BASS_ChannelPlay(chan,FALSE)==TRUE)
   {
       ShowMessage("Music is started now");
   }
   else
   ShowMessage("Somethin wrong with BASS_ChannelPlay");
 }
 else
 ShowMessage("Something wrong with chan");
}
1
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
16.08.2011, 16:40
*.h файле, в раздел private его нужно
+ попробуй в качестве парамметра не wchar_t а просто char.
Я суда вечером рабочий пример скину
1
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.08.2011, 16:53
pomkalk,
Цитата Сообщение от pomkalk Посмотреть сообщение
не wchar_t а просто char.
не понимаю причем char и wchar_t просто у меня XE версиа

Цитата Сообщение от pomkalk Посмотреть сообщение
*.h файле, в раздел private его нужно
Ето еше причем!

О_о

Спасибо жду вашего примера
1
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
16.08.2011, 17:19
попробуй просто char поставить, это от Unicode вряд ли зависит, так как это сторонняя библиотека, и подставляя туда wchar_t он его не явно в char переделывает, так что это нужно в первую очередь попробовать
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.08.2011, 18:08
pomkalk,
Цитата Сообщение от pomkalk Посмотреть сообщение
попробуй просто char поставить, это от Unicode вряд ли зависит, так как это сторонняя библиотека, и подставляя туда wchar_t он его не явно в char переделывает, так что это нужно в первую очередь попробовать
Пробовал и опять Message: "Something wrong with chan"
1
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
16.08.2011, 19:25
))Только щас обратил внимание
chan будет 0 если не загрузил музыку, если загрузил, вернет дескриптор этого канала, то есть нежно проверять так
C++
1
2
3
4
if (chan)
{
BASS_ChennelPlay(chan,TRUE);
}
Это по поводу chan
еще я сталкивался с такой же проблемой из за инициализации(кстати то же с 3д) так что лучше по стандарту инициализировать -1,44100,0,NULL,NULL , а потом играть с парамметрами

А так то у тебя все правильно
ps не забывай в диструкторе BASS_Free(); - не мало важно
1
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.08.2011, 23:01
pomkalk,
Сделал так как ты сказал, всё сделано спс!
1
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
25.08.2011, 13:55
Блин опять проблемы

Выдает ошибок!

C++
1
2
3
4
[ILINK32 Error] Error: Unresolved external 'BASS_Init' referenced from C:\DOCUMENTS AND SETTINGS\PRGRMMR\MY DOCUMENTS\RAD STUDIO\PROJECTS\DEBUG\WIN32\AWDAWDA.OBJ
[ILINK32 Error] Error: Unresolved external 'BASS_StreamCreateFile' referenced from C:\DOCUMENTS AND SETTINGS\PRGRMMR\MY DOCUMENTS\RAD STUDIO\PROJECTS\DEBUG\WIN32\AWDAWDA.OBJ
[ILINK32 Error] Error: Unresolved external 'BASS_ChannelPlay' referenced from C:\DOCUMENTS AND SETTINGS\PRGRMMR\MY DOCUMENTS\RAD STUDIO\PROJECTS\DEBUG\WIN32\AWDAWDA.OBJ
[ILINK32 Error] Error: Unresolved external 'BASS_Free' referenced from C:\DOCUMENTS AND SETTINGS\PRGRMMR\MY DOCUMENTS\RAD STUDIO\PROJECTS\DEBUG\WIN32\AWDAWDA.OBJ
Что делать?
0
Now I Matrix
137 / 134 / 28
Регистрация: 01.03.2010
Сообщений: 223
25.08.2011, 16:38
А bass.lib подключил? Или только bass.h?
Просто ошибки похожи на то, когда либу не подключаешь...
2
harimambura
07.10.2011, 17:43
 Комментарий модератора 
Не делайте из темы свалку. Правила
п.2.4. На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск.
Создайте новую тему со своим вопросом.
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
11.12.2011, 16:14
Цитата Сообщение от Emty Посмотреть сообщение
Project->Add to Project или Шифт+Ф11 Выбираешь в Типе файла ".lib" - что бы быстрее найти и добавляешь в проект файл - bass.lib
После того как подключил файл начал выдавать ошибку
[ILINK32 Error] Fatal: Unable to open file '܀.OBJ'
0
Denniska
11.12.2011, 21:19
Подскажите пожалуйста , а как сохранить и загрузить Плей-лист ??? )

вот код ) подскажите как будет правельно..

C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm2::N10Click(TObject *Sender)
{
if (SaveDialog1->Execute()) ListBox1->Items->SaveToFile(SaveDialog1->FileName+".plst");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::N11Click(TObject *Sender)
{
if (OpenDialog2->Execute() )  ListBox1->Items->LoadFromFile(OpenDialog2->FileName);
}
//---------------------------------------------------------------------------
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
14.05.2012, 19:47
Вот подскажите простому человеку, как загрузить файлы в лист бокс через OpenDialog ? А потом их дальнейшее воспроизведение?
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
26.02.2013, 14:51
Доброго всем! Вернулся к визуализации звука, однако возникла проблема, мне пока непонятная:

1) предварительно:
C++
1
2
3
4
5
6
HSTREAM chan;
...
void __fastcall TForm1::FormCreate(TObject *Sender)
{
BASS_Init( -1,44100, BASS_DEVICE_3D,0,NULL);
}
2) По таймеру при воспроизведении:
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
        {
        chan=BASS_StreamCreateFile(FALSE, OpenDialog1->FileName.c_str(), 0, 0, 0);
        }
}
...
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Timer4Timer(TObject *Sender)
{
DWORD level, left;
 
level=BASS_ChannelGetLevel(chan);
left=LOWORD(level);
 
int i=BASS_ChannelGetLength(chan, 0);
 
Memo1->Lines->Add(left);
}
Все работает как надо, в мемо данные пишутся.

3) По кнопке (т.е. попытка прогнать все сразу)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Button5Click(TObject *Sender)
{
QWORD len=BASS_ChannelGetLength(chan, BASS_POS_BYTE);
 
DWORD level;
 
for (int i=0; i<len; i+=10000)
{
BASS_ChannelSetPosition(chan, i, 0);
 
level=BASS_ChannelGetLevel(chan);
left=LOWORD(level);
 
Memo1->Lines->Add(left);
}
}
Заполняет все одной цифрой;
Если предварительно включить воспроизведение, в одном месте ставит цифру, остальное заполняет нулями.

Что я делаю не так?

П.С.: По сути, мне надо вытащить в таблицу "peak amplitude" всего звукового файла за каждые n мс. (Вроде как График звука в Nero Wave Editor)

Добавлено через 22 минуты
Цитата Сообщение от sh4d°_°ff Посмотреть сообщение
2) По таймеру при воспроизведении:
...

Все работает как надо, в мемо данные пишутся.
Ремарка: каждый раз разные данные =(

Добавлено через 1 час 16 минут
В общем, как я и предполагал, ошибка была в создании потока. Решение по кнопке:
C++
1
chan=BASS_StreamCreateFile(FALSE,OpenDialog1->FileName.c_str(),0,0,BASS_STREAM_PRESCAN|BASS_STREAM_DECODE);
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
28.02.2013, 06:19
Появилась еще пара вопросов по функции BASS_ChannelGetLevel
1) возвращается значение от 0 до 32768, в какой единице измерения?
2) как это дело перевести в децибелы?

используя функцию:
C++
1
2
3
4
5
double LevelToDB(int level)
{
float db=20*log10(level/32768);
return db;
}
получаю ошибку:
Название: err2.PNG
Просмотров: 282

Размер: 4.6 Кб
подскажите кто-нибудь как тут быть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.02.2013, 06:19

Получение спектра (bass.dll)
Добрый день! Начал писать выпускную работу по обработке аудио файлов и столкнулся с проблемой. Функция BASS_ChannelGetData(stream, fft,...

Освобождение файла из BASS.dll
Вопрос может немного не корректный, но все же. Проблема нашла меня при попытке переименовывать файл. Никак не хотел переименовывать, потом...

Bass.dll в CodeGear 2010
Народ подскажите как подключить bass к codegear 2010... что куда надо копировать и где что прописывать? Если сможете напишите пошагово.

Визуализация с использованием bass.dll
Как сделать визуализацию на bass.dll

BASS.DLL не работает на Windows XP
Я написал приложение с использованием аудио библиотеки bass.dll оно прекрасно работает на Win7 а вот на XP запускается но не воспроизводит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru