April 25, 2024, 02:57:42 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


Emergence Audio Engine

Started by Ionic Wind Support Team, June 27, 2009, 07:08:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ionic Wind Support Team

June 27, 2009, 07:08:44 PM Last Edit: May 21, 2011, 04:13:53 PM by LarryMc
Hello all Emergence BASIC enthusiasts!

The Emergence Audio Engine (EAE) is approaching it's first milestone beta release! EAE is a music and sound effects library for the Emergence BASIC compiler.  In development for over 6 years now the EAE features:

* Up to 512 simultaneous playing channels.
* Streaming audio support for WAV, WMA, MPEG, MP3*, ASF, OGG, and others (TBD).
* Amiga MOD support.
* DirectX or Windows Multi Media output drivers.
* 3D positional sound through the DirectX driver.
* CD Playback functions.
* Multi octave tone generation.
* Media recording.
* Multiple mixing drivers.
* Much more!

The EAE is a command library, meaning full integration into the Emergence BASIC development environment with no DLL's to distribute with your program.  And best yet, no per-product licensing fees!

Comparable products sell for over $1000 for an unlimited license. You can reserve your copy of the EAE today for only $39.95 for a limited time.

Expected beta release is July 31st 2009, with full release by September.  Final price to be determined but will be in the $100-$200 range, so by pre-ordering now you will save a bundle!

Watch this category for further announcements and demo programs.


[EDIT]
The beta is now available.
Ionic Wind Support Team

Ionic Wind Support Team

June 27, 2009, 07:22:16 PM #1 Last Edit: September 30, 2010, 09:39:57 AM by Larry McCaughn
OK..Now that you've seen the announcement it is time for the background ;)

EAE started its life back in 2003 as the music library for IBasic Pro.  At the time Idigicon was supposed to buy a commercial license for another product, but that company didn't want to "play nice" and kept changing the licensing requirements. Much discussion and deliberation ensued and the commercial product went by the wayside.  They searched for many alternatives and asked if I could build one from scratch.

I did quite a bit of work on it, but they didn't want to give me what I wanted to complete it, since it wasn't part of the original deal.  As you all know Idigicon and I parted ways long ago, and the audio engine sat in obscurity until just a few months ago.  I dug out the source code, and realized that with the current capabilities of Emergence (classes, COM, forthcoming MMX support) that not only would it be easier to complete that it would be an excellent addition to the already available libraries.

Over the last two months I have worked on it here and there, and along with four beta testers, have gotten it to the point of usability and stability.  We have been testing the core mixing code on a wide variety of systems, including windows 7 of course ;)

Questions are welcome.


Ionic Wind Support Team

Barney

Quote from: Paul Turley on June 27, 2009, 07:08:44 PMThe EAE is a command library, meaning full integration into the Emergence BASIC development environment with no DLL's to distribute with your program.

That's the way how it has to be.  ;D

I am looking forward to the first demo and hopefully I'll have enough money to get it.

Barney

yujinwunz

well done. yay. EB is complete. 8)
edit
will be complete

Duffer

Quote from: Paul Turley on June 27, 2009, 07:08:44 PM
* Multi octave tone generation.

You mean I can finally create retro sounds and retro music for my retro-styled games  ;D

Ionic Wind Support Team

Ionic Wind Support Team

Ionic Wind Support Team

June 27, 2009, 11:00:46 PM #6 Last Edit: September 30, 2010, 09:41:32 AM by Larry McCaughn
Just a note about the * after mp3

While we are including the ability for you to write programs and games that can stream MP3 music, it is up to you to comply with the licensing requirements of Thompson Multimedia.

http://www.mp3licensing.com/help/developers.html

Which is fairly lenient, if you sell less than 5000 copies of a game then no licensing is needed.
Ionic Wind Support Team

Dennisc

I have just bought it. Don't know what I'll do with it - hopefully I can build a CD management and player system for my CD collection or something.  ;D ;D

Thanks Paul for keeping EB alive and kicking even if it does not make you mega-rich.....

Regards
Dennis

Failure is only the opportunity to begin again more intelligently
www.denniscomninos.com

Blue Steel

I've been waiting quietly patiently .. ever furlorn thinking it was only a pipe dream.. remembering just how dam easy it was to make and muck around with sounds wave forms (sine triangle square noise )reverb echo volume dutation .. all of that combine them in 4 voices (sound channels) of the good old C64 ;)

Paul knows just how much i've been after a programming language that supports this is a speedy small tight manner. (wav files have their place.. but to do a 1/2 second beep or grunt groan slash thud creek.. its way too much over head and way too cumbersome to write retro style games or even great 3d games where the masses of sound effect files are larger than the program itself lol..

so yes here i was sitting dreaming and thinking that the day i'd see it happen would never get here .. and then blam {yes another cool sound effect of yesteryear} out of nowhere Paul drags out the old code and starts working on it again..

This feature alone i think will be a major selling point if its quick enough and small enough

Now I still have to wait till i can afford it and till it comes out :( .. But at least at last its on its way..
;)
  http://www.codingmonkeys.com
Covers many languages including Aurora , IWBasicEbasic (Ebasic, IBasic) , Creative Basic

Duffer

QuoteWhich is fairly lenient, if you sell less than 5000 copies of a game then no licensing is needed.
This is incorrect.  For games, it goes by distributed copies, not sold copies.  You can easily get 5,000 downloads in a day if you post a demo that gets linked to by a gaming site, blog, portal.  MP3s are a no-go for games unless you can afford the $$.


Duffer

June 28, 2009, 09:03:22 AM #10 Last Edit: June 28, 2009, 09:41:56 AM by BriceManuel
Quote from: Blue Steel on June 28, 2009, 07:41:54 AMNow I still have to wait till i can afford it
Same here :'(

Ionic Wind Support Team

June 28, 2009, 09:36:04 AM #11 Last Edit: September 30, 2010, 09:41:55 AM by Larry McCaughn
Brice.  There are always options, use lower quality wma or ogg files for your game demo, which saves space, and only include mp3 on sold copies.  If you ever sell 5000 copies I don't think the $2500 would be an issue.

You can also chose the "grey area" method.  ;) There are two options for EAE, one that uses DirectShow to play streams and another that has the built in decoder.  If you use the DirectShow version of the library then there isn't an mp3 decoder in the software that you distribute.
Ionic Wind Support Team

Duffer

I was just pointing out an error.  I don't and never would, use MP3s in a game.

Ionic Wind Support Team

June 28, 2009, 09:49:51 AM #13 Last Edit: September 30, 2010, 09:42:18 AM by Larry McCaughn
Either would I, just pointing out alternatives.

I actually prefer games that let me chose my own background music, some of the tracks included with games are just, well, not my cup of tea  ;D  I can understand a console title forcing you to chose from a set of included tracks, but a PC game?  please.
Ionic Wind Support Team

Duffer

June 28, 2009, 10:57:03 AM #14 Last Edit: June 28, 2009, 11:00:18 AM by BriceManuel
Choosing your own background music is done all of the time on the iPhone and iPod Touch (I have neither) and people love it.  It is a shame it is not more common on the PC.

Personally, I don't like game music (except for retro games), only sound effects.  I always make a point of allowing sound and/or music to be turned off in my games.

The last game I made for the HYDRA console, I made a simple PC app that lets people create their own little background songs and save them in a a ringtone format which the HYDRA game can read.  It should be VERY simple to port this game to the PC using the new sound engine and use it to read ringtones and generate the sounds.

I will say, that you have this working on XP/Vista/7 is amazing given the changes MS made to DirectSound in Vista and deprecating MCI in Vista.  From the sounds of this, one (with some hard work) could create some custom multitrack studio software :o

QuoteI've been waiting quietly patiently .. ever furlorn thinking it was only a pipe dream..
As Journey sang "Don't Stop Believing"  ;D

chris

okay this is something that sounds qute cool i'm buying my copy as soon as i post this, thanks for all of your  hard work paul

Ionic Wind Support Team

Thanks.  It is well worth the reserve price.

Writing it has brought many improvements to the compiler as well, which I'll be releasing before the beta of course ;).  Mainly with the 64 bit operators, but also with the debugger.

Paul.
Ionic Wind Support Team

Rock Ridge Farm (Larry)

I am in - another thing to add to the EB collection.

JoaoAfonso

JoÃÆ'ƒÂÃ,£o Afonso
Viriato
-----------------
Iberia MUD
www.iberiamud.com
iberiamud.com:5900

Ionic Wind Support Team

Added .asf files to the list.  Of course it only plays the audio stream in the .asf file, but I am finding a lot of music encoded as such.

Paul

Ionic Wind Support Team

Duffer

Any chance you could say how many kb this will add to the EXE?

Ionic Wind Support Team

Hard to be exact as I haven't separated all of the functions into separate source files yet, which is how the linker excludes them if they aren't referenced.

However if you were to use every function in the library at once, which is very unlikely, you would add about 250K in it's current form.  Compared to fmod at over 2mb that isn't too bad ;)

There are places I can save size as well, for example during development I have a bunch of log and sine tables that are just created using the array continuation operator:

sinetable[0] = 1,5,7,9....
sinetable[8] = ....

which makes the code segments larger than they need to be. Creating them as assembly data takes a 1/3 of the space.

Paul.

Ionic Wind Support Team


yoko

I want XM music support, that's the only thing that makes sense for me.

I'm planning to buy it when I have spare time to work on a new project.

Ionic Wind Support Team

XM will be one of the supported formats.
Ionic Wind Support Team