-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Import instruments from ADL format #158
Comments
@alexeik dude gave a useful information for work, and he have attached a code sample that is able to work with Dune's ADL files: adlib.zip |
in_adlib использует очень неточный эмулятор чипа OPL3, и очень сильно глючит, пробовал я через него играть разную музыку в своё время, в итоге из всего, что было, самый лучший вариант, это конечно же самопал на базе одного из имеющихся на публике решений. |
Перешел в эту ветку. да in_adlib играет тяп ляп через xmplay или winamp у меня есть полный код этого проекта из которого взял adlib.zip, он из dune legacy проекта. Смотрел уже целые сутки на этот C++ код. memset(buf + bufSize - 1024, 0, 1024);
SoundAdlibPC::callback(this, buf + bufSize - 1024, 1024);
bSilent = true; Не понятен. Этот callback уходит в такие дали, что даже код не понятно как читать. +почему код, так плохо форматируется на гитхабе? |
Что, скажешь? |
Пока ещё не посмотрел детально, но как посмотрю, отпишусь обязательно 🦊 |
https://github.com/OmniBlade/libeastwood еще вот, проект, который может читать из ADL. |
Надо будет глянуть... |
может я тебе задоначу 1к , чтобы ты посмотрел? :) вот тут лежит sln: |
В Дискорде есть, конечно же 🦊, я там |
Можешь даже подключить моего друга @jpcima, он тоже смыслит в этих делах нехило, и мы часто работаем вместе. Он говорит по-французски, но английский хорошо знает, если что. |
I've no idea what's said about me here.. let's translate this 😃 |
It seems there doesn't exist a clean specification unfortunately. There exists some players of it. If it's esentially extracting instruments which is desired, it's no doubt feasible to dump the tracks into vgm files. |
@Wohlstand окей)
i dont understand about midi playing. because of that @Wohlstand suggest your person :) and u MUST DOWNLOAD DUNE2 ORIGINAL for PAK files to run DuneLegacy |
Мы для разработки используем Qt Creator, CLion или Emacs, поэтому, нам хватит CMakeLists.txt для сборки на CMake, и да, мы все линуксоиды, на винду залазим только для отладки виндоспецифичных фич. Я только что стянул репу с Dune Legacy, и вижу там сборку на AutoTools, так что "./confugure; make -j 9; make install" всегда рулит тут 😁 |
@Wohlstand you are lucky)) |
The |
@jpcima but they doesnt play adl like a dosbox i suppose. |
A tool has been created based on parts of dunelegacy engine. (found at jpcima/dunelegacy repository) It plays back the set of tracks, and also it has permitted to extract a set of VGM dumps, that can be replayed on more accurate emulators. It's not a full track set, for now it's only non-looping ones. |
nice. tested. |
Dune Music build for Windows |
@jpcima i imagine only one function for this library: |
@alexeik ok I don't mind to look at the OpenRA project, if non-Windows are able to run it. |
@jpcima to look openRA? and if u want to loop openRA u r welcome:) |
@alexeik ok I understand ! well yeah preferably I like to have it interact with the engine. |
maybe this can be suitable for .net interop seems to be /clr does not what i want. it tries to compile C++ to MSIL :( |
I've posted the music player as a library. See dunemusic.h inside repository. A problem is : Nuked OPL works as emulator, Woody OPL also, but not DOSbox. |
thank you |
@jpcima |
It contains
|
@jpcima |
@alexeik , I don't think it's a good idea, you better to just pass a path to PAK files. Pointer to raw bytes of PAK files is required for only cases where these packs are packed inside of another archive. |
@Wohlstand its only one idea. |
The access into files is wrapped by SDL's RWops, so it can't be too difficult to make it to wrap streams of anything. @alexeik are byte streams representing PAK files or ADL files? |
adl files |
@jpcima can u to consider |
I've added the memory API I hope it's working, I have't tried myself.
there exists a sound effects management that I'm aware of but it's not yet in the library. |
@jpcima thank u |
The only way is only play them. They are should be generated in real time: you getting a context of specific song or SFX, and then, you streaming the audio with |
@Wohlstand I refer to this when I mentioned Adlib-based sfx. |
I see, which is used for SFX, then yeah. |
I've added a function to synthesize a sample for audio effects. I also have to modify the generating function.
|
nice work |
It's how to produce and save a chunk to a file, for example.
|
In the latest, Dosbox emulator was fixed. |
@jpcima can u make some binary for windows? |
@alexeik I added some automatic builds. The build process is in |
seems to i must to compilte it myself because i need to attach this library to .net |
@alexeik, check this https://github.com/flibitijibibo/SDL2-CS/blob/master/src/SDL2.cs @Wohlstand has shared me this method which is used by a SDL binding to C#. It's able to use the native library direct from C# language, by the |
@alexeik I've made the following in Monodevelop a bit ago. It builds, but I don't know if it works. |
cant get, how to use that its all about filename i must pass to dunemusic.
nor x86 , nor x64 can not be loaded from DllImport. |
I have got a question about Dune II songs and they're sounding on OPL chip: WohlSoft/Moondust-Project#294. I thought they are using AIL's mechanism with AD/OPL banks like other games do, however, they are using AIL for SFX, GeneralMIDI, and MT32. For OPL they are using own odd crap.
Music from the game include ADL files: http://www.vgmpf.com/Wiki/index.php/Dune_II:_The_Building_of_a_Dynasty_(DOS)
The ADL format itself: http://www.shikadi.net/moddingwiki/ADL_Format
I think the format is similar to the IMF, but that possibly something different. I would like to try to play it on libADLMIDI also if that possible. First off I need the proper specification of format to work on it.
The text was updated successfully, but these errors were encountered: