Custom Search
|
Date: November 26, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> I have been using SmartCVS for some time now and am extremely pleased with > it. > Might be another good one for your link list. Thanks for the additional reccomendation! Since SmartCVS is Java-based, I assume it's fairly cross-platform as well, which is cool. I'll check it out and put up a link soon... Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 26, 2003
From: "David Yazel" <david@xxxxxxxxx>
References:
<200311250009.hAP09da20108@xxxxxxxxxxxxxxxxxxxxx>
|
I have been using SmartCVS for some time now and am
extremely pleased with it. Might be another good one for your link
list.
David Yazel
http://www.magicosm.net http://xith3d.dev.java.net/ "No matter how complicated it looks, in the end it is just a bunch of triangles"
|
Date: November 25, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
FYI -- For Windows users -- I've added a link to TortoiseCVS (http://www.tortoisecvs.org/index.shtml) on the download section of the OpenAL page, but I figured I'd mention it here since there have been continuing reports of dissatisfaction with WinCVS. TortoiseCVS integrates with Windows Explorer and seems to work pretty well as near as I can tell from five minutes of playing with it... Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 24, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> when windows ogg support will be available? There should be a beta Windows OpenAL put up on openal.org before the end of the year which will have Ogg Vorbis support. I'll send an annoucement to this list when it's up. > will it work as in linux? here i can simply open a ogg file ,( in the same > way i open a wav file and openal does all the work) an play it > will ti work this way? Ogg Vorbis support can be compiled into both the Linux and MacOS codebases right now. > will be possible to set more than a source to play form the same buffer > simoultaneously? or there will be problem? That should work for any type of OpenAL buffer, including Ogg Vorbis. Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 24, 2003
From: elcabesa <elcabesa@xxxxxxxxx>
hi when windows ogg support will be available? will it work as in linux? here i can simply open a ogg file ,( in the same way i open a wav file and openal does all the work) an play it will ti work this way? will be possible to set more than a source to play form the same buffer simoultaneously? or there will be problem? bye _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 20, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> You need to pass -seg1addr <address> to the > linker. Adding -seg1addr 0x10000000 to the "Other Linker Flags" fixed > my build problems. > > Here's a link describes the problem in more detail... That seems to work fine -- thanks for the help! I'll incorporate the change into CVS as well as the prebuilt installer ASAP. Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 20, 2003
From: Michael Marks <mmarks@xxxxxxx>
Here's a link describes the problem in more detail:http://cocoadevcentral.com/articles/000042.php (Follow to // Framework Settings)
Thank you, Michael Marks. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 19, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> Is there a way to detect what part of an buffer is played at a certain > moment in time? No, but what you can do is queue multiple small buffers and poll for which ones have been processed. Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 19, 2003
From: dpeacock@xxxxxxxxxxxxxxxx
Hi All,
I would just like to add that if you are planning to add support for EAX,
that I would highly recommend that you pass in all your units as metres.
This is because some of the internal calculations used by EAX for features
like Air Absorption are assuming that units are in metres.
Dan
"Garin Hiebert"
<garinh@xxxxxxxxxxxxxxxxx To: Amit Mathew
<amitmathewjunk@xxxxxxxxx>, openal@xxxxxxxxxxxxxxxxxxxxxxx
g> cc:
Sent by: Subject: Re: [Openal]
distance factor
openal-admin@xxxxxxxxxxxx
reative.com
11/19/03 11:15 AM
Please respond to garinh
> Is there a way to change the distance factor in
> OpenAL? By distance factor, I mean change the default
> units that are used, so say you could specify that one
> unit would indicate 1 meter, 1 km, etc?
OpenAL doesn't have a notion of distance factor (for better or for worse
-- I don't really want to re-ignite an old debate here). The factors
controlling distance attenuation are -- AL_GAIN (for the listener and
sources), AL_ROLLOFF_FACTOR, AL_REFERENCE_DISTANCE, AL_MAX_DISTANCE,
AL_MIN_GAIN, and AL_MAX_GAIN. The relevant part of the OpenAL 1.0 spec
is 3.3-3.4. The factor you're most concerned about is indeed
AL_REFERENCE_DISTANCE.
Garin
_______________________________________________
openal mailing list
openal@xxxxxxxxxxxxxxxxxxxxxxx
http://opensource.creative.com/mailman/listinfo/openal
_______________________________________________
openal mailing list
openal@xxxxxxxxxxxxxxxxxxxxxxx
http://opensource.creative.com/mailman/listinfo/openal
Date: November 19, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> Is there a way to change the distance factor in > OpenAL? By distance factor, I mean change the default > units that are used, so say you could specify that one > unit would indicate 1 meter, 1 km, etc? OpenAL doesn't have a notion of distance factor (for better or for worse -- I don't really want to re-ignite an old debate here). The factors controlling distance attenuation are -- AL_GAIN (for the listener and sources), AL_ROLLOFF_FACTOR, AL_REFERENCE_DISTANCE, AL_MAX_DISTANCE, AL_MIN_GAIN, and AL_MAX_GAIN. The relevant part of the OpenAL 1.0 spec is 3.3-3.4. The factor you're most concerned about is indeed AL_REFERENCE_DISTANCE. Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 19, 2003
From: "Marten van der Honing" <m.van.der.honing@xxxxxx>
Date: November 19, 2003
From: "Stephen Hack" <stephenhack@xxxxxxxxxxxx>
yet another silly static link question: does anyone have a windows staticly linked openal library available for use? i'd like to make some performance comparisons between it and the standard dll... thanks a ton steve -- http://www.fastmail.fm - One of many happy users: http://www.fastmail.fm/docs/quotes.html _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 19, 2003
From: Amit Mathew <amitmathewjunk@xxxxxxxxx>
Hi, Is there a way to change the distance factor in OpenAL? By distance factor, I mean change the default units that are used, so say you could specify that one unit would indicate 1 meter, 1 km, etc? If not, are there any alternatives to achieve this affect? I don't know if AL_REFERENCE_DISTANCE relates to this somehow. Thanks for your help. Amit __________________________________ Do you Yahoo!? Protect your identity with Yahoo! Mail AddressGuard http://antispam.yahoo.com/whatsnewfree _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 18, 2003
From: "Anders Backman" <andersb@xxxxxxxxx>
In-reply-to:
<OF2C91202A.7B68A4F7-ON88256DE1.00699482-88256DE1.006A8E14@xxxxxxxxxxxxx>
References:
<OF2C91202A.7B68A4F7-ON88256DE1.00699482-88256DE1.006A8E14@xxxxxxxxxxxxx>
My dime into this. OpenAL++ have something called group sound that can do some rudimentary mixing of sound. So several samples can be mixed into one. Also ontop of this in our simulation framework I have something called SoundState and SoundMgr. A soundstate is a specification of a sound with position, velocity, sample etc which is a rather light object. SoundMgr can handle lots of them through a FlyWeight pattern. SoundStates can either be looped or non looped. Non-looped SoundStates can be used as a sound event. A SoundEvent can be thought as a short, nonlooping sound that probably wont move during its life... An explosion, a scream... so: SoundState state; state.setSample(aSample); state.setPosition(collisionPosition); state.setGain(1.2) g_SoundMgr->pushSoundEvent(state, 1); // a state and a priority the sound manager is then responsible for using the available sound sources the best way possible... The source for theese two classes can be found at: http://binky.cs.umu.se/soundstate/ Perhaps it can help in some way? /Anders -----Original Message----- From: openal-admin@xxxxxxxxxxxxxxxxxxxxxxx [mailto:openal-admin@xxxxxxxxxxxxxxxxxxxxxxx] On Behalf Of jmt@xxxxxxxxxxxxxxxx Sent: den 17 november 2003 20:24 To: aspirin@xxxxxxxxxxxx Cc: openal@xxxxxxxxxxxxxxxxxxxxxxx Subject: Re: [Openal] Voice management? Adam D. Moss wrote: >I really hope that given >an even fairly basic prioritisation scheme, 64 Voices Ought To Be >Enough For Anybody. :) For games and multimedia apps, this is still a reasonable limit but you're in a non-realistic situation where content authors, just like a movie sound mixer, are there to select which sounds matter. This thread started with a problem encountered in the development of a virtual-reality platform, which is a totally different beast. At GDC last year, there was a talk by the guy doing the sound mixing for the Matrix sequels and he was describing how they tried to integrate in the soundtrack ALL the sounds of what could be seen on the screen. He said that the result was absolutely horrendous and they gave up on this approach, preferring an approach where they selected what they'd want the spectator to focus on. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 17, 2003
From: jmt@xxxxxxxxxxxxxxxx
In-reply-to:
<3FB91C9F.8020403@xxxxxxxx>
References:
<3FB91C9F.8020403@xxxxxxxx>
Adam D. Moss wrote: >I really hope that given >an even fairly basic prioritisation scheme, 64 Voices Ought To Be >Enough For Anybody. :) For games and multimedia apps, this is still a reasonable limit but you're in a non-realistic situation where content authors, just like a movie sound mixer, are there to select which sounds matter. This thread started with a problem encountered in the development of a virtual-reality platform, which is a totally different beast. At GDC last year, there was a talk by the guy doing the sound mixing for the Matrix sequels and he was describing how they tried to integrate in the soundtrack ALL the sounds of what could be seen on the screen. He said that the result was absolutely horrendous and they gave up on this approach, preferring an approach where they selected what they'd want the spectator to focus on. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 17, 2003
From: "Adam D. Moss" <adam@xxxxxxxx>
In-reply-to:
<OF6914E622.8F040468-ON88256DE1.0066CA74-88256DE1.0067B0AD@xxxxxxxxxxxxx>
References:
<OF6914E622.8F040468-ON88256DE1.0066CA74-88256DE1.0067B0AD@xxxxxxxxxxxxx>
jmt@xxxxxxxxxxxxxxxx wrote:
A strategy that can be adopted is source clustering where instead of not playing some sources, you pre-mix groups of sources before spatializing each group as one source. This can greatly reduce the number of hardware voices you use. An excellent reference article written by Nicolas Tsingos and his colleagues on this topic is "Breaking the 64 spatialized sources barrier" which you can find here:http://www.gamasutra.com/resource_guide/20030528/tsingos_01.shtml
I hope at some point in the future I won't encounter a real-life situation that will make me eat my words, but... "way to massively over-engineer a solution to a non-problem"! I really hope that given an even fairly basic prioritisation scheme, 64 Voices Ought To Be Enough For Anybody. :) --Adam -- Adam D. Moss . ,,^^ adam@xxxxxxxx http://www.foxbox.org/ co:3 "I may have libeled Aquaman, noble fish friend, for which I am sorry" _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 17, 2003
From: "Noeska Software" <mvdhoning@xxxxxxxxxx>
Is it possible to change the frequency of a buffer without deleting and recreating it? As i am trying to write a .mod player i need the change the frequency to play different notes. I know i can change the pitch value of a source but that only allows me to use values from 0.1 until 1.9 . And it is dependend on the original buffer frequency. It would be nice to have a way to be able to dynamicaly change the frequency on a buffer (via the source without being dependend on original frequency of the buffer). Also the way i do it now with deleting and recreating buffers gives a memory leak. As the buffer cannot be deleted from memory as it is still being played. It now gets freed from memory on closing the program. If you want to take a look at the source it is available at: http://www.noeska.com/doal/almod.aspx I hope i do not double post this as i used the wrong email account the first time. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 17, 2003
From: "Noeska Software" <mvdhoning@xxxxxxxxxx>
Will there be an installer for openal under linux. There are installers for windows and mac, but i cannot find one for linux. Wat are the steps to install openal under linux? Where can i get the .lib files? I hope i do not double post this as i used the wrong email account the first time. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 17, 2003
From: jmt@xxxxxxxxxxxxxxxx
In-reply-to:
<200311150748.hAF7mVY15186@xxxxxxxxxxxxxxxxxxxxx>
References:
<200311150748.hAF7mVY15186@xxxxxxxxxxxxxxxxxxxxx>
> The big problem is: what to do with those "virtual sources" that have no "real sources" left to play? A strategy that can be adopted is source clustering where instead of not playing some sources, you pre-mix groups of sources before spatializing each group as one source. This can greatly reduce the number of hardware voices you use. An excellent reference article written by Nicolas Tsingos and his colleagues on this topic is "Breaking the 64 spatialized sources barrier" which you can find here: http://www.gamasutra.com/resource_guide/20030528/tsingos_01.shtml Hope this helps, Jean-Michel. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 16, 2003
From: "Adam D. Moss" <adam@xxxxxxxx>
In-reply-to:
<000001c3ac7f$0ce3ddf0$0101a8c0@noeska
>
References:
<000001c3ac7f$0ce3ddf0$0101a8c0@noeska
>
Marten van der Honing wrote:
Will there be an installer for openal under linux. There are installers for windows and mac, but i cannot find one for linux.
I think that the only 'official' source for getting OpenAL for linux is straight from OpenAL CVS, if OpenAL does not already come with your version of Linux. I don't know what the situation is with modern Linux distributions but I expect that most of them nowadays come with runtime OpenAL support already, with compile-time support as an optional package (perhaps) available on the Linux media or from the distribution vendor's site. --Adam -- Adam D. Moss . ,,^^ adam@xxxxxxxx http://www.foxbox.org/ co:3 "I may have libeled Aquaman, noble fish friend, for which I am sorry" _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 16, 2003
From: "Adam D. Moss" <adam@xxxxxxxx>
In-reply-to:
<000101c3ac7f$0d302930$0101a8c0@noeska
>
References:
<000101c3ac7f$0d302930$0101a8c0@noeska
>
Marten van der Honing wrote:
Is it possible to change the frequency of a buffer without deleting and recreating it? As i am trying to write a .mod player i need the change the frequency to play different notes.
I'm sure that you asked this question a couple of days ago -- and Garin answered. You may want to check the list archives. <http://opensource.creative.com/pipermail/openal/2003-November/000174.html>
I know i can change the pitch value of a source but that only allows me to use values from 0.1 until 1.9 . And it is dependend on the original bufferfrequency.
Hmm, I don't know why it's constrained between that particular range, though it makes sense for it to be dependant on the original buffer frequency; a relative pitch change is desired a lot more often than an absolute frequency change. I don't know off the top of my head whether you can mix pitch-shift and doppler, but if you can then you might be able to hackily shift the pitch further with doppler tricks. --Adam -- Adam D. Moss . ,,^^ adam@xxxxxxxx http://www.foxbox.org/ co:3 "I may have libeled Aquaman, noble fish friend, for which I am sorry" _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 16, 2003
From: "Marten van der Honing" <m.van.der.honing@xxxxxx>
Is it possible to change the frequency of a buffer without deleting and recreating it? As i am trying to write a .mod player i need the change the frequency to play different notes. I know i can change the pitch value of a source but that only allows me to use values from 0.1 until 1.9 . And it is dependend on the original buffer frequency. It would be nice to have a way to be able to dynamicaly change the frequency on a buffer (via the source without being dependend on original frequency of the buffer). Also the way i do it now with deleting and recreating buffers gives a memory leak. As the buffer cannot be deleted from memory as it is still being played. It now gets freed from memory on closing the program. If you want to take a look at the source it is available at: http://www.noeska.com/doal/almod.aspx _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 16, 2003
From: "Marten van der Honing" <m.van.der.honing@xxxxxx>
Will there be an installer for openal under linux. There are installers for windows and mac, but i cannot find one for linux. Wat are the steps to install openal under linux? Where can i get the .lib files? _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 15, 2003
From: James Dolan <james@xxxxxxxxxx>
In-reply-to:
<20031115200005.25713.35095.Mailman@xxxxxxxxxxxxxxxxxxxxxxx>
References:
<20031115200005.25713.35095.Mailman@xxxxxxxxxxxxxxxxxxxxxxx>
What we do is give every voice a priority (nothing new here), then we will continuously get the voices that *should* be playing at any given time and scale the priority by the same function you scale gain (so when a voice moves from the listener its priority lessens, when it is beyond the maxdistance, its priority is negative and so forth).
We then sort the voices by their new scaled priority, and run through all the voices from maxsources (16, 32, or 62) to the end of the list and remove their source and add it to a stack.
Then we run from voice 0 to the maxsources or maxvoices (which ever is least) and make sure they have a source, if not, we pop one off the open source stack.
To the user of this interface, they think they have a voice that is can play at any time, they can call any function they want on it, play it, stop it, never knowing if its playing or not (because they don't have to).
My implementation hasn't taking much hit on overall game performance and we are banging the hell out of it, trust me. I might write a tutorial on voice management or something as I don't think there are many OpenAL tutorials beyond "How to make a buffer and source."
-James DolanOn Nov 15, 2003, at 3:00 PM, openal-request@xxxxxxxxxxxxxxxxxxxxxxx wrote:
Send openal mailing list submissions to openal@xxxxxxxxxxxxxxxxxxxxxxx To subscribe or unsubscribe via the World Wide Web, visit http://opensource.creative.com/mailman/listinfo/openal or, via email, send a message with subject or body 'help' to openal-request@xxxxxxxxxxxxxxxxxxxxxxx You can reach the person managing the list at openal-admin@xxxxxxxxxxxxxxxxxxxxxxx When replying, please edit your Subject line so it is more specific than "Re: Contents of openal digest..." Today's Topics: 1. Voice management? (Thiago Bastos) 2. Re: Voice management? (Garin Hiebert) --__--__-- Message: 1 Date: Fri, 14 Nov 2003 21:30:35 -0200 From: "Thiago Bastos" <hellraider@xxxxxxxxx> To: openal@xxxxxxxxxxxxxxxxxxxxxxx Subject: [Openal] Voice management? Greetings, And... sorry for this large message :)I'm designing and implementing a 3D sound framework for a (software engineering) course in college. I intend to use it for other professional (Virtual Reality & Games) stuff later on, as well as release it under an open-source license if it renders into something useful.Although I'm into the CG/VR business, I've never played with sound for real so far. That's why I seek some expert's advice.Some of my framework goals are: - Offer a nice OO design (lots of patterns). (OK)- Flexible sound compositions & loading from arbitrary file formats. (OK)- Efficient resource management. (OK) - Automatic 'sources' management (PENDING)Maybe what I call 'sources management' is what you (at least Garin?) call 'voice management'. I'm not sure what to call it.I want my framework to hide the sources limit present in today's OpenAL implementations. I plan to accomplish this by letting the client have as many "virtual sources" they want, but do some background management (scheduling) on which sources are actually playing (through "real AL sources"). So the client would have 500 sources, but only 16-62 would be producing sound at the same time.My problem here is that after thinking for some hours I still have no GOOD idea of what would be a good strategy for sources management.I know a good criteria would be attaching priorities to my "virtual sources", and maybe also sorting by their distance to the listener.That is not the problem. The big problem is: what to do with those "virtual sources" that have no "real sources" left to play?In my framework, the client requests a source to play some sound. At that time, if no sources are available, I can discard the sound entirely if it's a small sound. However, it wouldn't be good to discard long sounds. Ideally, I think, I should auto-play ignored long sounds as soon as a source is made available -- but not from its beginning, as that would ruin any intended synchronism. It would be nice to play it from the position where it would be if it had started playing when it should. Get what I mean? :)I guess there's no way to predict how long a sound in a buffer is in OpenAL, nor set the current position within the buffer (both are necessary for my algorithm).I can do it at the streaming level, when reading an Ogg Vorbis file for example, but it would be much nicer to support it at some common point in my framework, otherwise that approach would not work for long sounds that are completely loaded in memory.Would it be a good idea to implement my own classes to find out how long a PCM buffer is, and maybe to cut-off some of it? Are there libraries available that can do it?If my ideas are completely insane please tell. I need some directions/advice.Thanks for any help, Thiago Bastos --__--__-- Message: 2 Date: Fri, 14 Nov 2003 23:48:31 -0800 From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>To: "Thiago Bastos" <hellraider@xxxxxxxxx>, openal@xxxxxxxxxxxxxxxxxxxxxxxReply-To: garinh@xxxxxxxxxxxxxxxxxx Subject: Re: [Openal] Voice management?Maybe what I call 'sources management' is what you (at least Garin?)call 'voice management'. I'm not sure what to call it. Yep -- we're talking about the same thing. An OpenAL "source" is the equivalent to what an audio hardware manufacturer would call a "voice."The term "voice" would be a carryover from the days when MIDI synthesis(FM and beyond...) was the only polyphonic part of the hardware. Now it's applied both to 3D audio processing _and_ MIDI synthesis.The big problem is: what to do with those "virtual sources" that haveno "real sources" left to play? Hopefully one of the professional game developers on the list will comment further on this, but here are my two cents:As far as I know, the issue you bring up of playing part of a previouslydiscarded buffer is not normally addressed at all. I think what's normally done is to determine at the time the play request is made whether or not a sound has an available source. If not, it is then determined if another sound can be discarded in favor of the new one.If so, then the lower-priority sound is dropped and the new one started.If not, the new sound is never played. The issue you bring up of long-playing sounds being playable later can be addressed by giving those sounds a high-enough priority that they will always bump _something_. For games, I think this normally works fairly well because the designers can normally get the number of mandatory (high-priority) sounds down to a fairly low number (16 or so to cover a stereo soundtrack, player noises, the immediate environment, a narrator, and the few nearest "enemies"). If you can't hear all the gunshots from a gunfight that you can't even see, then it's not _too_ big a deal in terms of moving the game forward.One semi-reasonable alternative to the above where you could handle morelow-priority voices would be to reserve one voice with no positioning and mix all (or a subset of) the low-priority audio into that voice through software. Then you could hear these low-priority sounds, but they wouldn't receive the benefits of any 3D processing. That's a pretty significant downside I would think, but might be worth someexperimentation. If you were using a sound card with 32 or more voices,then the loss of all these low-priority sounds with 31 or more other sounds playing might not even be noticable. (One weird thought I just had might be to do something like this with some of the lowest-prioritysounds and then apply some EAX filtering to it to make these sounds partof the background in a subtle way. I'm not sure if the CPU hit for the mixing would be worth it, but it might be fun to try...)If my ideas are completely insane please tell. I need somedirections/advice.Welcome to the asylum -- I hope you like it here. (I've been working onthe DS3D backend all day, so I _know_ I'm a little insane.) Garin --__--__-- _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal End of openal Digest
_______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 15, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> Maybe what I call 'sources management' is what you (at least Garin?) call 'voice management'. I'm not sure what to call it. Yep -- we're talking about the same thing. An OpenAL "source" is the equivalent to what an audio hardware manufacturer would call a "voice." The term "voice" would be a carryover from the days when MIDI synthesis (FM and beyond...) was the only polyphonic part of the hardware. Now it's applied both to 3D audio processing _and_ MIDI synthesis. > The big problem is: what to do with those "virtual sources" that have no "real sources" left to play? Hopefully one of the professional game developers on the list will comment further on this, but here are my two cents: As far as I know, the issue you bring up of playing part of a previously discarded buffer is not normally addressed at all. I think what's normally done is to determine at the time the play request is made whether or not a sound has an available source. If not, it is then determined if another sound can be discarded in favor of the new one. If so, then the lower-priority sound is dropped and the new one started. If not, the new sound is never played. The issue you bring up of long-playing sounds being playable later can be addressed by giving those sounds a high-enough priority that they will always bump _something_. For games, I think this normally works fairly well because the designers can normally get the number of mandatory (high-priority) sounds down to a fairly low number (16 or so to cover a stereo soundtrack, player noises, the immediate environment, a narrator, and the few nearest "enemies"). If you can't hear all the gunshots from a gunfight that you can't even see, then it's not _too_ big a deal in terms of moving the game forward. One semi-reasonable alternative to the above where you could handle more low-priority voices would be to reserve one voice with no positioning and mix all (or a subset of) the low-priority audio into that voice through software. Then you could hear these low-priority sounds, but they wouldn't receive the benefits of any 3D processing. That's a pretty significant downside I would think, but might be worth some experimentation. If you were using a sound card with 32 or more voices, then the loss of all these low-priority sounds with 31 or more other sounds playing might not even be noticable. (One weird thought I just had might be to do something like this with some of the lowest-priority sounds and then apply some EAX filtering to it to make these sounds part of the background in a subtle way. I'm not sure if the CPU hit for the mixing would be worth it, but it might be fun to try...) > If my ideas are completely insane please tell. I need some directions/advice. Welcome to the asylum -- I hope you like it here. (I've been working on the DS3D backend all day, so I _know_ I'm a little insane.) Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 14, 2003
From: "Thiago Bastos" <hellraider@xxxxxxxxx>
Greetings, And... sorry for this large message :) I'm designing and implementing a 3D sound framework for a (software engineering) course in college. I intend to use it for other professional (Virtual Reality & Games) stuff later on, as well as release it under an open-source license if it renders into something useful. Although I'm into the CG/VR business, I've never played with sound for real so far. That's why I seek some expert's advice. Some of my framework goals are: - Offer a nice OO design (lots of patterns). (OK) - Flexible sound compositions & loading from arbitrary file formats. (OK) - Efficient resource management. (OK) - Automatic 'sources' management (PENDING) Maybe what I call 'sources management' is what you (at least Garin?) call 'voice management'. I'm not sure what to call it. I want my framework to hide the sources limit present in today's OpenAL implementations. I plan to accomplish this by letting the client have as many "virtual sources" they want, but do some background management (scheduling) on which sources are actually playing (through "real AL sources"). So the client would have 500 sources, but only 16-62 would be producing sound at the same time. My problem here is that after thinking for some hours I still have no GOOD idea of what would be a good strategy for sources management. I know a good criteria would be attaching priorities to my "virtual sources", and maybe also sorting by their distance to the listener. That is not the problem. The big problem is: what to do with those "virtual sources" that have no "real sources" left to play? In my framework, the client requests a source to play some sound. At that time, if no sources are available, I can discard the sound entirely if it's a small sound. However, it wouldn't be good to discard long sounds. Ideally, I think, I should auto-play ignored long sounds as soon as a source is made available -- but not from its beginning, as that would ruin any intended synchronism. It would be nice to play it from the position where it would be if it had started playing when it should. Get what I mean? :) I guess there's no way to predict how long a sound in a buffer is in OpenAL, nor set the current position within the buffer (both are necessary for my algorithm). I can do it at the streaming level, when reading an Ogg Vorbis file for example, but it would be much nicer to support it at some common point in my framework, otherwise that approach would not work for long sounds that are completely loaded in memory. Would it be a good idea to implement my own classes to find out how long a PCM buffer is, and maybe to cut-off some of it? Are there libraries available that can do it? If my ideas are completely insane please tell. I need some directions/advice. Thanks for any help, Thiago Bastos _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 14, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> One think i think is a bit hasle is that setting a > buffer to a different frequency is not possible wihout deleting that source > and recreating it new. It will stay at the the first set frequency. This should not be the case with OpenAL. If you have multiple buffers at different frequencies, you should be able to attach one to a source, play it, attach a buffer with another frequency to the same source, and then play the new buffer with no problems. The source should play the buffer at the correct frequency in both cases. If what you are actually trying to do is change the frequency of a buffer that has already been loaded, then I would expect the kind of behavior you report. The problem is that OpenAL doesn't guarantee that it will store the buffer in the same format that you sent it in -- so a change in frequency after it is loaded may not make any sense. Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 14, 2003
From: "Noeska Software" <mvdhoning@xxxxxxxxxx>
In-reply-to:
<20031113200006.13243.70842.Mailman@xxxxxxxxxxxxxxxxxxxxxxx>
References:
<20031113200006.13243.70842.Mailman@xxxxxxxxxxxxxxxxxxxxxxx>
I am currently writing a mod player for openal. It shows of using different frequencies at once. One think i think is a bit hasle is that setting a buffer to a different frequency is not possible wihout deleting that source and recreating it new. It will stay at the the first set frequency. Are there other ways to do? Setting the pitch at the source level is not precise enough. But mixing diferent frequencies at once is just matter of setting the buffer frequencies and openal handles the rest. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 13, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> Does anybody know how mixing different frequencies ( 22050, 44100, ...) work > on windows (with the Windows WDM model)? > > Is it there something like the primary buffer? Who makes this mixing? The > kmixer? The hw? > > Is it useful to use the ALC_FREQUENCY attribute when creating the context? The ALC_FREQUENCY attribute is ignored under Windows. The mixing buffer is at 22050Hz for the MMSYSTEM and DirectSound devices. For the native devices under the DS3D backend, the implementation details are left up to the hardware manufacturer but in general they will have a native frequency of 48kHz. So where does this leave you? For cleanest interpolation across all backends, you're best off staying with 22050Hz and 44100Hz. Both will sound good with the software mixers, and the hardware solutions mitigate interpolation issues by being at a higher frequency and in the case of Creative equipment will use a higher-order level of interpolation than linear (7 for Live cards, 8 for Audigy boards). > Is there any recommendation about using sounds with different frequencies? > Is it better to have all sounds in the same frequency? Or is it good to have > sounds using 22050 (voices for example) and other using 44100 (effects for > example)? >From OpenAL's perspective -- it's not a problem to handle multiple >frequencies. With the software mixer, the "cleanest" frequencies are going to be 11025Hz, 22050Hz, and 44100Hz. Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 13, 2003
From: "Carlos Abril" <carabril@xxxxxxxxxxxxxx>
|
Hello: A ‘couple’ of questions: Does anybody know how mixing different frequencies ( 22050, 44100, ...) work on windows (with the Windows WDM model)? Is it there something like the primary buffer? Who makes this mixing? The kmixer? The hw? Is it useful to use the ALC_FREQUENCY attribute when creating the context? Is there any recommendation about using sounds with different frequencies? Is it better to have all sounds in the same frequency? Or is it good to have sounds using 22050 (voices for example) and other using 44100 (effects for example)?
Thanks.
_______________________________
|
Date: November 11, 2003
From: ghiebert@xxxxxxxxxxxxxxxx
Date: November 11, 2003
From: Peter Strempel <zotan@xxxxxx>
Hello,no big thing, but I noticed the new Win32 OpenAL installer crashes if there is an application running which accesses openal32.dll (taken the user reinstalls over an existing installation).
Not too serious as normally the enduser would not run the application while installing it (or another one which installs OpenAL), but thought I mention it. Crashing installers always leave a bad impression at the enduser. :)
Peter _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 11, 2003
From: Jesse Edmunds <shmiznac@xxxxxxxxx>
In-reply-to:
<200311110217.hAB2HRo05871@xxxxxxxxxxxxxxxxxxxxx>
References:
<200311110217.hAB2HRo05871@xxxxxxxxxxxxxxxxxxxxx>
This is in the software mixing code. It appears to be stuffing more
data into the mixing buffer than it can accept -- some kind of "off by
one" error I expect. If you could give more context on how you are
creating this problem -- a description of the simplest test case you can
devise -- I'd like to investigate it further. Ideal would be a simple
modification to an existing test program such as altest which exposes
the issue, but any hints or sample code are appreciated...
Garin
>
> I'm getting an access violation in ALu.c on line 398 here:
>
>
value=((Data[k]*((1L<>FRACTIONBITS;
>
> It appears that "k" is outside the bounds of "Data". Anyone have an
idea why this would occur? Any help ASAP would be appreciated.
_______________________________________________
openal mailing list
openal@xxxxxxxxxxxxxxxxxxxxxxx
http://opensource.creative.com/mailman/listinfo/openal
Date: November 11, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
This is in the software mixing code. It appears to be stuffing more data into the mixing buffer than it can accept -- some kind of "off by one" error I expect. If you could give more context on how you are creating this problem -- a description of the simplest test case you can devise -- I'd like to investigate it further. Ideal would be a simple modification to an existing test program such as altest which exposes the issue, but any hints or sample code are appreciated... Garin > > I'm getting an access violation in ALu.c on line 398 here: > > value=((Data[k]*((1L<<FRACTIONBITS)-fraction))+(Data[k+1]*(fraction)))>>FRACTIONBITS; > > It appears that "k" is outside the bounds of "Data". Anyone have an idea why this would occur? Any help ASAP would be appreciated. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 11, 2003
From: Jesse Edmunds <shmiznac@xxxxxxxxx>
Date: November 10, 2003
From: dpeacock@xxxxxxxxxxxxxxxx
Hi Carlos,
>When are those changes made? Immediately after each call?
Yes - these calls will be immediately executed ... unless you have
suspended the AL Context, in which case no processing will occur (including
Play & Stop calls) until you next call alcProcessContext. If an
application wishes to use the Suspend / Process functionality it is
responsible for calling these functions often enough to get good sounding
audio (30Hz is probably a good bet). (Note - at this time, the Open AL
wrapper does not support this functionality).
>Another related question: I read sometime (I don’t remember where/when or
if it was just a dream) that Windows
>implementations of OpenAL include parameter caching. Is it true for native
and DirectSound OpenAL implementations?
Yes, both the DirectSound based Open AL ('wrapper') and the Creative
hardware accelerated ('native') DLL have implemented parameter caching.
Dan
"Carlos Abril"
<carlosabril@xxxxxxxxxxxx To: "'OpenAL
LIST'" <openal@xxxxxxxxxxxxxxxxxxxxxxx>
> cc:
Sent by: Subject: [Openal]
Deferred settings
openal-admin@xxxxxxxxxxxx
reative.com
11/10/03 05:04 AM
I’m doing some, per-frame, changes in the sources: gain, position,
velocity, ...
When are those changes made? Immediately after each call?
In DSound I made all those with DS3D_DEFERRED and at the end of the frame
(at 30Hz) I called CommitDefferedSettings. So all the spatialization
calculations were done at this moment. How does this work in OpenAL? Is it
done automatically? Do I have to call alcProcessContext?
(are the attributes ALC_REFRESH or AL_SYNC when creating the context
something to do with this? How can I set this attributes?)
Another related question: I read sometime (I don’t remember where/when or
if it was just a dream) that Windows implementations of OpenAL include
parameter caching. Is it true for native and DirectSound OpenAL
implementations?
Thanks.
_______________________________
c a r l o s a b r i l
_______________________________
FX Interactive Madrid - Milan
_______________________________
_______________________________________________
openal mailing list
openal@xxxxxxxxxxxxxxxxxxxxxxx
http://opensource.creative.com/mailman/listinfo/openal
Date: November 10, 2003
From: "Carlos Abril" <carlosabril@xxxxxxxxxxxx>
|
I’m doing some, per-frame, changes in the sources: gain, position, velocity, ... When are those changes made? Immediately after each call? In DSound I made all those with DS3D_DEFERRED and at the end of the frame (at 30Hz) I called CommitDefferedSettings. So all the spatialization calculations were done at this moment. How does this work in OpenAL? Is it done automatically? Do I have to call alcProcessContext? (are the attributes ALC_REFRESH or AL_SYNC when creating the context something to do with this? How can I set this attributes?)
Another related question: I read sometime (I don’t remember where/when or if it was just a dream) that Windows implementations of OpenAL include parameter caching. Is it true for native and DirectSound OpenAL implementations?
Thanks.
_______________________________
|
Date: November 10, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> To include OpenAL in a product (Windows): > > - Do I have to include the OpenAL installer and launch it when installing > the product? No -- You can build your own custom version of OpenAL for your product and keep it in an application directory or use any pre-built version in the same way. > - Can I include the OpenAL installer that appear in Creative's website? Yes -- This is the best option if you want your users to be able to take advantage of hardware-accelerated OpenAL libraries. > - Instead of the installer, is it enough to include OpenAL.dll in the > program path? > > - In this case, which OpenAL.dll do I have to include? From the repository, > the one that is under win\OpenAL32? The one that is under win\Router? > > - Which one do you think is the preferred method? Here are the best options in my opinion: 1) Just use the OpenAL installer from within your installer. (You can call it with the /s option to make it "silent" by the way.) After installation, there will definately be a version of OpenAL available system-wide, and if you use the enumeration extension you'll be able to make hardware-accelerated libraries available as well. 2) If you want to make absolutely sure that a version of OpenAL is available to your end-users which you personally tested but also want to use enumeration, then use both openal32.dll and wrap_oal.dll in your application's executable directory. If you do it this way, then any of the wrapper devices (MMSYSTEM, DirectSound, DS3D) will be from the local version which you tested with, and hardware accelerated versions will still be available. NOTE -- if you do this you should still run the AL Installer with the /s option so that the installer has a chance to do version checking and cleanup of the hardware versions to make everything work well with the router. 3) You could be very careful and dynamically link to an application-local version of OpenAL (either wrap_oal.dll or something you compiled) so that the user can't use a version of OpenAL which you didn't test. This denies the user the opportunity (at least without behind-the-scenes hacking) to use hardware-accelerated libraries. I consider this the worst option in that it partially defeats the purpose of OpenAL -- now that enumeration is available you can have the best of both worlds. > The different possibilities I can find are: > > - The soundcard driver installs the OpenAL dll with its implementation in > the system folder. In this case, I don't need to install anything or the > router dll. Current Creative hardware drivers would indeed work this way, but going forward all hardware installers from NVIDIA and Creative are going to work with the router DLL. For instance, an NVIDIA NForce 2-based system with a Creative Audigy 2 will end up with a router DLL (openal32.dll), an NVIDIA hardware-accelerated DLL (nvopenal.dll), a Creative hardware-accelerated DLL (ct_oal.dll), and a wrapper DLL (wrap_oal.dll). The router DLL never does the core OpenAL operations itself -- it just hands off the work to the appropriate hardware or wrapper DLL. > - The soundcard driver don't install the OpenAL dll. In this case I will > need the openal.dll in my program path (or use the OpenAL installer). Is the > router dll enough? Hopefully the above descriptions answer this well enough -- if you use the router DLL then you'll always need at least one other DLL somewhere to provide the functionality you need. If you haven't already seen the code for using the ALC_ENUMERATION_EXT context extension in ALTest, take a look (openal/demos/altest). Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 10, 2003
From: "Carlos Abril" <carlosabril@xxxxxxxxxxxx>
|
To include OpenAL in a product (Windows): - Do I have to include the OpenAL installer and launch it when installing the product? - Can I include the OpenAL installer that appear in Creative’s website? - Instead of the installer, is it enough to include OpenAL.dll in the program path? - In this case, which OpenAL.dll do I have to include? |
Date: November 05, 2003
From: "LS Feldman" <bbman@xxxxxxx>
There is a nice new OpenAL tutorial on www.gamedev.ru: http://www.gamedev.ru/articles/read.shtml?id=100102. BTW, it's in Russian. _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 05, 2003
From: "Garin Hiebert" <garinh@xxxxxxxxxxxxxxxxxx>
> If I may suggest, I think it would also be nice if there were a way to > query how much buffer space is available. With all the current versions of OpenAL, this shouldn't be an issue -- they'll use virtual memory if necessary to create room for new buffers. For many (but not all) applications this will result in unacceptable performance -- if your app would be one of those you'll want to come up with your own way of deciding an acceptable upper limit (percentage of available physical RAM, or some other scheme). Garin _______________________________________________ openal mailing list openal@xxxxxxxxxxxxxxxxxxxxxxx http://opensource.creative.com/mailman/listinfo/openal
Date: November 05, 2003
From: Brian Ellis <nullroute@xxxxxxxxx>
If I may suggest, I think it would also be nice if there were a way to query how much buffer space is available. It might be noted, since audio data may be stored in compressed or uncompressed form depending on the implementation, that the amount of buffer space available is the amount of memory not currently used and does not accurately describe how much audio can be stored. It can, however, help determine if the next buffer you wish to load will fit or not and potentially aid in voice management. --- Garin Hiebert <garinh@xxxxxxxxxxxxxxxxxx> wrote: > > > > I agree, there should be some way to get the max number of sources > easily, > > specially since its right in ALCdevice::MaxNoOfSources. > > > > I suggest making an define like ALC_MAX_SOURCES that works with > > alcGetIntegerv() to do the job. Damn, I might as well just do that > right > > now. > > This is something that needs to be addressed in the next major rev of > OpenAL. It seems like a simple issue, and for the most part it can > be > treated as such. The problem is that there are cases where it would > be > nice if the number of sources were allowed to