Форум: "Игры";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизЗвуковой движок Найти похожие ветки
← →
П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;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.041 c