Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
3-1106229162
EthernalWonderer
2005-01-20 16:52
2005.02.20
TopRow в DBGrid


4-1104774029
Davinchi
2005-01-03 20:40
2005.02.20
Как заставить мою прогу не показывать себя на панели задач...


14-1107035321
DrPass
2005-01-30 00:48
2005.02.20
Delphi 2005 и буква "я"


4-1103533130
Ma3aXaka
2004-12-20 11:58
2005.02.20
какие winapi использует виндовая утилита net file?


8-1099765447
VasRog
2004-11-06 21:24
2005.02.20
Яркость и формат цвета





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский