Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Звуковой движок   Найти похожие ветки 

 
П7   (2004-10-05 16:06) [0]

Дорогие товарищи, не могли бы вы мне посоветовать какой-нибудь крайне бесплатный и крайне функциональный звуковой движок. Чтобы он как минимум мог воспроизвести mp3 или ogg. Естественно не сильно напрягая проц и в многопоточном режиме...
Так же очень желательно, чтобы он не был в отдельной DLL"ке. Ибо нефиг... (:

Наверняка многих интересует этот вопрос, поэтому выписываю требования в таблицу:
- Поддержка mp3 или ogg
- Бесплатность (полная)
- Исходники или DLL
- Многопоточность
- Маленький размер
- Высокая скорость работы

Вот, кто какие движки может предложить?


 
NailMan ©   (2004-10-05 17:01) [1]

Нету таких наверно.

На ум приходит BASS, но он бесплатен для бесплатных софтин(Я лично его использую у себя). Естественно он в DLL.

Ищи и может найдешь свою несбыточную мечту.

В крайняк DSound в руки.

---
WBR, NailMan aka 2:5020/3337.13


 
DeadMeat ©   (2004-10-05 17:38) [2]

И еще FMOD...
Правда насчет него ничего не знаю... Но кажется он тамже, где и BASS


 
П7   (2004-10-05 18:04) [3]

BASS и FMOD - маст дайт - не проходят по второму пункту. Но мне вот интересно - чем пользуются большинство разработчиков шароварных игр? Неужели покупают лицензию?
Ищу, есть уже кое какие исходники, поэтому и решил задать вопрос здесь. Начинаю вплотную работать в этом направлении - если чего умного накопаю - с вами поделюсь.


 
NailMan ©   (2004-10-05 18:11) [4]

Наверно покупают, лицензия не так уж и дорого стоит

---
WBR, NailMan aka 2:5020/3337.13


 
XProger ©   (2004-10-05 22:20) [5]

OpenAL


 
Darth   (2004-10-05 22:52) [6]

Занимаюсь разработкой шаровары. Использовать буду БАСС, у издателя он уже куплен. Это к вопросу о покупке ;)
А так OpenAL абсолютно бесплатный.


 
П7   (2004-10-12 10:28) [7]

Нашёл очень неплохой исходник самопального декодинга mp3 файлов. Тесты показали достаточно стабильную работу при проигрывании нескольких треков одновременно. Теперь ищю то же самое для OGG и какого-нибудь нормального трекерного формата. Всё-таки для маленьких игр трекерная музыка будет предпочтительнее даже OGG"шной.

Сейчас собираю единую, независимую DLL"льку для использования в своих мерзких целях покорения вселенной! (:

Если кому надо, мыльте, скину и исходники и вообще, всё. Сделаю полностью бесплатный звуковой движок! Может памятник поставят... (:


 
П7   (2004-10-12 10:32) [8]

Ковыряясь на форуме GameDev.RU случайно наткнулся на топик, где чувак предлагает бесплатный ЗвукДвиг - Шквал.

Вот ссылка на этот топик: http://www.gamedev.ru/forum/?group=0&topic=11368

Скачал, нужно будет сейчас затестить...


 
cyborg ©   (2004-10-12 12:06) [9]


> и какого-нибудь нормального трекерного формата.

У FMOD вроде есть такая штука.


 
П7   (2004-10-12 12:48) [10]

Мне нужны исходники на Delphi, что бы достаточно быстро разобраться - что к чему и собрать собственную библиотеку для обработки звуковых форматов.

Под исходниками я подразумеваю полный декодер формата. А не заголовочные файлы для подключения левой библиотеки...


 
cyborg ©   (2004-10-12 12:57) [11]


> Под исходниками я подразумеваю полный декодер формата. А
> не заголовочные файлы для подключения левой библиотеки...

читай> [9] cyborg ©   (12.10.04 12:06)
по крайней мере, если на Си она, можно наверное провернуть через Obj или ещё как нибудь. В крайнем случае попробовать переписать на паскаль ;)


 
П7   (2004-10-12 15:21) [12]

Вот, P7Snd со всеми исходниками. Пока только MP3.
http://tzlab.amillo.net/delphi/sound/p7snd.htm

Товарищи, подскажите пожалуйста, где в Сети можно скачать любой OGG файлик? А то я какие-то исходники надыбал, а тестить не на чем. (: Ссылочку бы какую кто дал бы... (:


 
NikeOLD ©   (2004-10-12 15:50) [13]


> П7   (12.10.04 15:21) [12]

Скачай пару шароварных игр или Unreal Tournament 2003 Demo

Кодирование и декодирование Mp3 требует лицензионных отчислений.


 
WondeRu ©   (2004-10-12 16:04) [14]

а собственно OpenAL чем не устраивает? там 3Д звук и поддержка ogg (куча dll - не проблема, пихай из в папку windows, юзеру не обязательно знать чот ты используешь OpenAL)))


 
П7   (2004-10-12 16:13) [15]


> NikeOLD ©   (12.10.04 15:50) [13]

То бишь сам акт использования формата mp3 должен оплачиваться? Даже если я пишу свой собственный декодер? Как-то глупо тогда получается. Мне не влом будет немного перемешать данные в файле и выдать это всё за свой формат. (: Как тогда они будут мне своей лицензией тыкать? (:

OpenAL не имеется в исходниках на Delphi. Или я ошибаюсь? Я всё же хочу свои библиотеки. Хотя с OpenAL нужно будет тоже разобраться, вдруг пригодится... (:


 
wiz ©   (2004-10-12 16:35) [16]

to П7: как я понимаю, с mp3 такая же ситуация как и с JPEG"ом (в jpg запатентовали не сам формат (JPEG), а принцип сжатия (JFIF)). Таким образом, если даже ты придумаешь свой формат и напишешь с нуля кодер/декодер к нему, но идею сжатия оставишь той же (т.е. "преобразование Фурье с последующей обработкой") - то тебе смогут сделать "Ата-та по попке..."

[конечно, можно попытаться обойти и это, оформив по всем правилам в патентном бюро "Улучшеную Модель" (или как-то похоже это называется)... но это немеренный геморрой и куча пыльной работы %) ]


 
П7   (2004-10-12 17:17) [17]

Это точные данные или домыслы? Просто у меня сейчас немного недостаток свободного времени в Сети, чтобы выяснить этот вопрос.
Добрые люди, если кто-нибудь обладает достоверной информацией о mp3, поделитесь пожалуйста. Если что, то можно на мыло скинуть, если там много какой инфы...

Заранее спасибо.


 
WondeRu ©   (2004-10-12 17:33) [18]

П7   (12.10.04 16:13) [15]
OpenAL не имеется в исходниках на Delphi.


исходников библиотеки нет, но примеров куча на Делфи

http://www.noeska.com/doal/tutorials.aspx

на gamedev.ru в разделе "Звук" поищи


 
NailMan ©   (2004-10-12 17:54) [19]

П7
насколько я в курсе IT-новостей, ДА, именно такая ситуация с MP3. Именно поэтому все настоящие(в смысле выходящие с недавних пор) игры пользуют OGG для хранения ВСЕГО саунда(и музыки и SFX). Doom3 не исключение. Также как и мелкомягкие игрушки(от MS).

Так что забудь о MP3 и делай декодер OGG.

---
WBR, NailMan aka 2:5020/3337.13


 
П7   (2004-10-12 18:21) [20]

Хм. Ну, видимо так тому и быть. А то, что уже есть воплощю в простенький mp3"плеер. Исключительно для гнутия пальцОв. (: Мол у меня весь софт свой... (:
Значит решено, курс на OGG и трекерные форматы. ВотЪ! (:

Ждите обновлений! (:


 
NailMan ©   (2004-10-13 09:32) [21]

трекерные форматы это какие? Есть же старые форматы(S3m, XM, MOD) и новые на основе старых, но с mp3-семплами.

Лучше имхо нормальный OGG, просто воспроизводить и никаких подвдных камней, а с трекерными форматами(сужу по геморру моего друга, который пытался сделать качественную поддержку XM у себя в плеере) очень много ньюансов, как-то реализация всевозможных паттерных эффектов, всяческих мультиканальностей и некоторых особенностей общего принципа построения звукового ряда.

Тем более особенного качества ты не получишь на этих форматах - для веса надо юзать слабенькие по качеству сэмплы, а если с нормальным(44100), то смысла нет особого. OGG нивелирует разницу между потоковым форматом и сэмплово-паттерным, так как последний не подразумевает сжатие сэмплов(не будем о форматах с mp3-сэмплами).

Вобщем про трекерки тоже забудь и не трать свои силы и задор впустую.

---
WBR, NailMan aka 2:5020/3337.13


 
П7   (2004-10-13 10:50) [22]

У меня появилась идея сделать на основе OGG свой простенький трекерный формат. Без наворотов, но с пожатыми семплами. Но в начале нужно декодер OGG написать. Уже есть кое какие исходники. Сегодня вот разгребу, может чего даже выложу.


 
Micah'GF ©   (2004-10-13 15:39) [23]

[22] П7
хм, интересные замыслы...
..добавляем в закладки, будем наблюдать..


 
П7   (2004-10-13 15:47) [24]

Надыбал много-много исходников на С. Разбираться откровенно не хочется, поэтому пока продолжаю искать. Если не найду придётся, видимо, транслировать с С на Delphi. ):
А транслировать там около метра Сишного кода - ЖУТЬ!!! ):
Всем молиться за меня, в бой!!! (:


 
tsalBSM   (2004-10-14 05:06) [25]

У меня появилась идея сделать на основе OGG свой простенький трекерный формат. Без наворотов, но с пожатыми семплами. Но в начале нужно декодер OGG написать. Уже есть кое какие исходники. Сегодня вот разгребу, может чего даже выложу.

Уже есть такой формат называется MO3


 
tsalBSM   (2004-10-14 05:20) [26]

А вообще я ползуюсь Прямым-Звуком от дядюшки Билла, а файлы разных форматов открываю с помощю FLT библиотек Adobe Audition aka CoolEdit.

вот передрал и доплнил заголовки с С++, может кому понадобятся


 
tsalBSM   (2004-10-14 05:21) [27]

unit AuditionFLT;

interface
uses Windows,Sysutils,Classes;

const
R_5500                = 1;
R_11025               = 2;
R_22050               = 4;
R_32075               = 8;
R_44100               = 16;
R_48000               = 32;
R_88200               = 64;
R_96000               = 128;
R_132300              = 256;
R_176400              = 512;

C_VALIDLIBRARY        = 1154;

QF_RATEADJUSTABLE     = $001;  // if can handle non-standard sample rates
// if not, only rates in bit rate table understood
QF_CANSAVE            = $002;
QF_CANLOAD            = $004;
QF_UNDERSTANDSALL     = $008;  // will read ANYTHING, so it is the last resort if no other
// formats match
QF_READSPECIALFIRST   = $010;  // read special info before trying to read data
QF_READSPECIALLAST    = $020;  // read special info after reading data
QF_WRITESPECIALFIRST  = $040;  // when writing a file, special info is sent to DLL before data
QF_WRITESPECIALLAST   = $080;  // when writing, special info is sent to DLL after data
QF_HASOPTIONSBOX      = $100;  // set if options box implemented
QF_NOASKFORCONVERT    = $200;  // set to bypass asking for conversion if original in different rate, auto convert
QF_NOHEADER           = $400;  // set if this is a raw data format with no header
QF_CANDO32BITFLOATS   = $800;  // set if file format can handle 32-bit sample data for input
QF_CANOPENVIRTUAL     = $1000; // Set if data is in Intel 8-bit or 16-bit sample format, or floats

// special types are read from and written to DLL in the order below

// special types (particular to Windows waveforms)
SP_IART               = 20;
SP_ICMT               = 21;
SP_ICOP               = 22;
SP_ICRD               = 23;
SP_IENG               = 24;
SP_IGNR               = 25;
SP_IKEY               = 26;
SP_IMED               = 27;
SP_INAM               = 28;
SP_ISFT               = 29;
SP_ISRC               = 30;
SP_ITCH               = 31;
SP_ISBJ               = 32;
SP_ISRF               = 33;
SP_DISP               = 34;
SP_CUE                = 40; // returns number of cues of size cue_type
SP_LTXT               = 41; // returns number of adtl texts of size 8 (4,id and 4,len)
SP_NOTE               = 42; // returns LO=size, HI=number of strings (sz sz sz...)
SP_LABL               = 43; // returns LO=size, HI=number of strings (sz sz sz...)
SP_PLST               = 44; // returns number of playlist entries size play_type

Type
FOURCC = DWORD;

riffspecialdata_t = record
hSpecialData:DWORD;
hData       :DWORD;
dwSize      :DWORD;
dwExtra     :DWORD;
szListType  :array[0..7] of Char;
szType      :array[0..7] of Char;
end;

cue_type = record
dwName       :DWORD;
fccChunk     :FOURCC;
dwChunkStrart:DWORD;
dwBlockStart :DWORD;
dwSampeOffset:DWORD;
end;

play_type = record
dwName       :DWORD;
dwLength     :DWORD;
dwLoops      :DWORD;
end;

coolquery_tag = record
szName     :array[0..23] of Char;
szCopyright:array[0..79] of Char;

Quad32     :WORD;  // Quads are 3-D encoded
Quad16     :WORD;
Quad8      :WORD;
Stereo8    :WORD;  // rates are from lowest bit:
Stereo12   :WORD;  // bit 0 set: 5500 (5512.5)
Stereo16   :WORD;  // bit 1 set: 11025 (11K)
Stereo24   :WORD;  // bit 2 set: 22050 (22K)
Stereo32   :WORD;  // bit 3 set: 32075 (32K, or 32000)
Mono8      :WORD;  // bit 4 set: 44100 (44K)
Mono12     :WORD;  // bit 5 set: 48000 (48K)
Mono16     :WORD;  // bit 6 set: 88200 (88K)   (future ultra-sonic rates?)
Mono24     :WORD;  // bit 7 set: 96000 (96K)
Mono32     :WORD;

dwFlags    :DWORD;
szExt      :array[0..3] of Char;
lChunkSize :LongInt;
szExt2     :array[0..3] of Char;
szExt3     :array[0..3] of Char;
szExt4     :array[0..3] of Char;

end;

TQueryCoolFilter           = Function(COOLQUERY:coolquery_tag):ShortInt;pascal;
TFilterUnderstandsFormat   = Function(lpszFilename:string):Boolean;pascal;
TGetSuggestedSampleType    = Procedure(lplSamprate:Pinteger; lplwBitsPerSample:PWORD; lpwChannels:PWORD);pascal;
TOpenFilterOutput          = Function( lpszFilename:String; lSamprate:Integer; wBitsPerSample:WORD;wChannels:WORD; lSize:Integer; lplChunkSize:Pinteger; dwOptions:DWORD ):DWORD;pascal;
TCloseFilterOutput         = Procedure( hOutput:Dword);pascal;
TWriteFilterOutput         = Function( hOutput:DWORD; lpbData:PByte; lBytes:integer):Dword;pascal;
TOpenFilterInput           = Function( lpszFilename:string; lplSamprate:PInteger; lpwBitsPerSample:PWORD;pwChannels:PWORD; Wnd:Hwnd; lplChunkSize:Pinteger ):DWORD;pascal;
TFilterGetFileSize         = Function( hInput:Dword ):DWORD;pascal;
TReadFilterInput           = Function( hInput:DWord; lpbData:PByte; lBytes:integer):Dword;pascal;
TCloseFilterInput          = Procedure( hInput:Dword );pascal;
TFilterGetOptions          = Function( Wnd:HWND; hInst:DWORD; lSamprate:integer; wChannels:WORD;wBitsPerSample:WORD; dwDefaultOptions:DWORD ):Dword;pascal;
TFilterOptions             = Function( hInput:Dword ):Dword;pascal;
TFilterOptionsString       = Function( hInput:Dword; lpszString:String ):Dword;pascal;
TFilterSetOptions          = Function( hInput:DWORD; dwOptions:DWORD; lSamprate:integer; wChannels:WORD; wBPS:WORD ):DWORD;pascal;
TFilterWriteSpecialData    = Function(hOutput:DWORD; szListType:STRING; szType:STRING; pData:PChar; dwSize:Dword):DWORD;pascal;
TFilterGetFirstSpecialData = Function( hInput:DWORD; psp:Pointer ):DWORD;pascal;
TFilterGetNextSpecialData  = Function( hInput:DWORD; psp:Pointer ):DWORD;pascal;


 
tsalBSM   (2004-10-14 05:21) [28]

FLTfuncInfo = record
DLLInstance                : THandle;

pQueryCoolFilter           :BOOLEAN;
pFilterUnderstandsFormat   :BOOLEAN;
pGetSuggestedSampleType    :BOOLEAN;
pOpenFilterOutput          :BOOLEAN;
pCloseFilterOutput         :BOOLEAN;
pWriteFilterOutput         :BOOLEAN;
pOpenFilterInput           :BOOLEAN;
pFilterGetFileSize         :BOOLEAN;
pReadFilterInput           :BOOLEAN;
pCloseFilterInput          :BOOLEAN;
pFilterGetOptions          :BOOLEAN;
pFilterOptions             :BOOLEAN;
pFilterOptionsString       :BOOLEAN;
pFilterSetOptions          :BOOLEAN;
pFilterWriteSpecialData    :BOOLEAN;
pFilterGetFirstSpecialData :BOOLEAN;
pFilterGetNextSpecialData  :BOOLEAN;
end;

var
QueryCoolFilter           :TQueryCoolFilter ;
FilterUnderstandsFormat   :TFilterUnderstandsFormat;
GetSuggestedSampleType    :TGetSuggestedSampleType;
OpenFilterOutput          :TOpenFilterOutput;
CloseFilterOutput         :TCloseFilterOutput;
WriteFilterOutput         :TWriteFilterOutput;
OpenFilterInput           :TOpenFilterInput;
FilterGetFileSize         :TFilterGetFileSize;
ReadFilterInput           :TReadFilterInput;
CloseFilterInput          :TCloseFilterInput;
FilterGetOptions          :TFilterGetOptions;
FilterOptions             :TFilterOptions;
FilterOptionsString       :TFilterOptionsString;
FilterSetOptions          :TFilterSetOptions;
FilterWriteSpecialData    :TFilterWriteSpecialData;
FilterGetFirstSpecialData :TFilterGetFirstSpecialData;
FilterGetNextSpecialData  :TFilterGetNextSpecialData;

Function LoadFLT(LibFilename:String):FLTFuncInfo;
Procedure FreeFLT(DLLHandle:Thandle);

implementation

Procedure FreeFLT(DLLHandle:Thandle);
begin
FreeLibrary(DLLHandle);
end;

Function LoadFLT(LibFilename:String):FLTFuncInfo;
begin
Result.pQueryCoolFilter           := False;
Result.pFilterUnderstandsFormat   := False;
Result.pGetSuggestedSampleType    := False;
Result.pOpenFilterOutput          := False;
Result.pCloseFilterOutput         := False;
Result.pWriteFilterOutput         := False;
Result.pOpenFilterInput           := False;
Result.pFilterGetFileSize         := False;
Result.pReadFilterInput           := False;
Result.pCloseFilterInput          := False;
Result.pFilterGetOptions          := False;
Result.pFilterOptions             := False;
Result.pFilterOptionsString       := False;
Result.pFilterSetOptions          := False;
Result.pFilterWriteSpecialData    := False;
Result.pFilterGetFirstSpecialData := False;
Result.pFilterGetNextSpecialData  := False;
Result.DLLInstance := 0;

Result.DLLInstance := LoadLibrary(Pchar(LibFilename));
if Result.DLLInstance = 0 then exit;

@QueryCoolFilter           := getProcAddress(Result.DLLInstance,"QueryCoolFilter");
@FilterUnderstandsFormat   := getProcAddress(Result.DLLInstance,"FilterUnderstandsFormat");
@GetSuggestedSampleType    := getProcAddress(Result.DLLInstance,"GetSuggestedSampleType");
@OpenFilterOutput          := getProcAddress(Result.DLLInstance,"OpenFilterOutput");
@CloseFilterOutput         := getProcAddress(Result.DLLInstance,"CloseFilterOutput");
@WriteFilterOutput         := getProcAddress(Result.DLLInstance,"WriteFilterOutput");
@OpenFilterInput           := getProcAddress(Result.DLLInstance,"OpenFilterInput");
@FilterGetFileSize         := getProcAddress(Result.DLLInstance,"FilterGetFileSize");
@ReadFilterInput           := getProcAddress(Result.DLLInstance,"ReadFilterInput");
@CloseFilterInput          := getProcAddress(Result.DLLInstance,"CloseFilterInput");
@FilterGetOptions          := getProcAddress(Result.DLLInstance,"FilterGetOptions");
@FilterOptions             := getProcAddress(Result.DLLInstance,"FilterOptions");
@FilterOptionsString       := getProcAddress(Result.DLLInstance,"FilterOptionsString");
@FilterSetOptions          := getProcAddress(Result.DLLInstance,"FilterSetOptions");
@FilterWriteSpecialData    := getProcAddress(Result.DLLInstance,"FilterWriteSpecialData");
@FilterGetFirstSpecialData := getProcAddress(Result.DLLInstance,"FilterGetFirstSpecialData");
@FilterGetNextSpecialData  := getProcAddress(Result.DLLInstance,"FilterGetNextSpecialData");

if addr(QueryCoolFilter)           <> NIL then Result.pQueryCoolFilter           := True;
if addr(FilterUnderstandsFormat)   <> NIL then Result.pFilterUnderstandsFormat   := True;
if addr(GetSuggestedSampleType)    <> NIL then Result.pGetSuggestedSampleType    := True;
if addr(OpenFilterOutput)          <> NIL then Result.pOpenFilterOutput          := True;
if addr(CloseFilterOutput)         <> NIL then Result.pCloseFilterOutput         := True;
if addr(WriteFilterOutput)         <> NIL then Result.pWriteFilterOutput         := True;
if addr(OpenFilterInput)           <> NIL then Result.pOpenFilterInput           := True;
if addr(FilterGetFileSize)         <> NIL then Result.pFilterGetFileSize         := True;
if addr(ReadFilterInput)           <> NIL then Result.pReadFilterInput           := True;
if addr(CloseFilterInput)          <> NIL then Result.pCloseFilterInput          := True;
if addr(FilterGetOptions)          <> NIL then Result.pFilterGetOptions          := True;
if addr(FilterOptions)             <> NIL then Result.pFilterOptions             := True;
if addr(FilterOptionsString)       <> NIL then Result.pFilterOptionsString       := True;
if addr(FilterSetOptions)          <> NIL then Result.pFilterSetOptions          := True;
if addr(FilterWriteSpecialData)    <> NIL then Result.pFilterWriteSpecialData    := True;
if addr(FilterGetFirstSpecialData) <> NIL then Result.pFilterGetFirstSpecialData := True;
if addr(FilterGetNextSpecialData)  <> NIL then Result.pFilterGetNextSpecialData  := True;

end;

end.


 
П7   (2004-10-14 13:02) [29]

Блин, нафиг сюда постишь исходники??? Скинул бы мне на мыло, я бы выложил в сети.
Самая трабла в том, что если бы я хотел поиметь на Delphi какую-нибудь звуковую библиотеку, то проблем бы не возникало. Вон их куча какая с доками со всеми. Да к томуже почти ко всем написаны заголовочники на Delphi. Только вот не хочу я этого, хочу свою библиотеку написать.

Чем выводить - это одно, а вот декодировать формат - это другое.


 
WondeRu ©   (2004-10-14 13:16) [30]

П7   (14.10.04 13:02) [29]
хочу свою библиотеку написать.

а потом детям рассказывать, мол Ваш батька был куллл, и звуковой движок сам написал и Лениным бревна таскал на субботниках))))))


 
wicked ©   (2004-10-14 13:16) [31]

кулибины блин.... чем не устраивают исходники от xiph.org?... завра что то поменяется и "опять в бой с мельницами"?....


 
П7   (2004-10-14 13:44) [32]


> wicked ©   (14.10.04 13:16) [31]

Может я такой тупой, но как-то я там не замечал порта на Delphi всех исходных кодов OGG.DLL и VORBIS.DLL. Если вы их там заметили, не поделитесь ли ссылочкой?


 
wicked ©   (2004-10-14 17:03) [33]

а зачем порт?.... можно линковаться с дллками (это кстати, поощряется LGPL, под которой OGG и выпущен)...
или, если уж так влом, то с obj-файлами - почти тот же порт, но работы в 10 раз меньше - перевести тока заголовочные файлы....

ничего личного, но намерение однозначно (1 к 1) перевести на паскаль больше чем 100-150 кб кода попахивают "Полесовщиной"... :)


 
П7   (2004-10-14 17:55) [34]


> wicked ©   (14.10.04 17:03) [33]

Блин, если бы ты внимательно прочитал все посты, то не говорил бы про линковку в dll. На счёт obj - это нужно подумать. Точнее поподробнее узнать, как? Тогда можно будет поиграться и написать свою DLL"ку на Delphi.

Так что, если можно - поподробнее про obj. (:

Ну да, попахивает. Даже больше скажу - разит за три версты... (: А чё делать? (: "Не я такой, жизнь такая!" (с)БоКонь (:

А левые dll"ки "на пол", не нужны они мне, мне нужно, чтобы у меня была одна DLL"ина для работы со всем звуковым барахлом, которое я придумаю. Например для собственного не_до_трекерного формата. (:

Так что про OBJ, плз, поподробнее. И желательно с примерами... (:


 
wicked ©   (2004-10-14 18:01) [35]

опция компилятора {$L}...
а поскольку на паскале уже полтора года не писал ничего, то - подробности в справке...


 
П7   (2004-10-14 18:12) [36]

ок, завтра потестЮ! (: Может действительно - "ну его на пол", этот "собственно_ручный_декодер". Геморой, это, конечно, занятие интересное, но конечный результат мне немного дороже... (:

А на счёт хидеров, так JEDI давно уже портировала их. (: Ну прямо-таки халява валится в руки. Если всё выгорит, то можно будет со спокойной совестью заняться разработкой P7-Track-OGG формата... (:


 
П7   (2004-11-16 09:21) [37]

Хорошая новость. Компания "Антитанк", опубликовавшая звуковой двиг "Шквал" (я писал об этом в одном из постов) подготовила хидеры для подключения двигла из Delphi. Сайт их, правда, сейчас в ауте и не знаю как долго он там проваляется. Первая публичная версия порта у меня, так что можете обращаться мылом - вышлю. (:
Сегодня буду извращаться... (:


 
П7   (2004-11-16 16:43) [38]

Блин, написал большой постинг, где много и сильно восхищался Шквалом, но грёбаный сервак его не пропустил и как на зло продублированный в бефер обмена текст постинга умер по неосторожности... Так что вот: http://tzlab.amillo.net/delphi/sound/p7snd.htm



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.028 c
1-1107344199
Bless
2005-02-02 14:36
2005.02.20
Overriding versus hiding


14-1107233404
DelphiN!
2005-02-01 07:50
2005.02.20
Народ, помогите найти компонент для видеозахвата с веб камеры


1-1107752017
dreamse
2005-02-07 07:53
2005.02.20
Как узнать что программа запущена с компакт диска ?


4-1104488042
Vaitek
2004-12-31 13:14
2005.02.20
Ярлычек


14-1106602153
Чеширский_Кот
2005-01-25 00:29
2005.02.20
Как вы понимаете второй закон термодинамики?