April 3, 2008  
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30

[00:18:09] *** Alam_Debian has quit IRC
[00:21:21] *** Alam_Debian has joined #openal
[00:21:22] *** ChanServ sets mode: +v Alam_Debian
[00:29:57] *** prophile has quit IRC
[01:10:33] *** juanmabc has quit IRC
[01:28:56] *** Walt has quit IRC
[01:32:07] *** barra has quit IRC
[03:46:40] <rsp> KittyCat: Are you gonna write a backend for PA?
[03:47:24] <KittyCat> someone else was
[03:51:23] <rsp> Cool
[04:07:58] <rsp> Why does sound on Linux mini lag
[04:08:25] <KittyCat> mini?
[04:08:29] <rsp> Just a bit
[04:08:46] <KittyCat> oh
[04:09:11] <KittyCat> it depends on how its all set up, mostly
[04:09:30] <rsp> But if i don't have an RT kernel
[04:10:01] <KittyCat> the more software mixing and indirection between program and soundcard you get, the more time it takes for the program's changes to reach the soundcard and play
[04:10:14] <rsp> Pretty bad if you want to set your sound up in a game to match the unaware lag :P then you compile it for X and go "what the?"
[04:10:25] <KittyCat> the larger the mixing buffers, the more time it takes for the soundcard to get it
[04:10:34] <rsp> Ok
[04:19:31] *** rsp has left #openal
[05:25:35] *** rsp has joined #openal
[05:25:36] *** ChanServ sets mode: +v rsp
[06:32:41] <rsp> KittyCat: My music class makes the sound repeat when it's supposed to be done!
[06:32:47] <rsp> 1 second
[06:35:30] <rsp> bool Music::Playing() {ALenum State; alGetSourcei(Source,AL_SOURCE_STATE,&State); return State==AL_PLAYING;}
[06:38:10] <rsp> if(MyMusic.Playing()) MyMusic.Update();
[06:38:15] <rsp> Is that correct?
[06:38:34] <KittyCat> so far, yeah
[06:39:31] <rsp> Wait I'm cutting out the code
[06:40:09] <rsp> I remember this bug from many games actually, is it common?
[06:45:22] <KittyCat> hmm. actually your Playing()Update() thing is wrong
[06:45:29] <KittyCat> you don't need to check Playing()
[06:45:34] <rsp> Ok!
[06:45:55] <KittyCat> and at the end of Update(), if the source state isn't playing, you want to play it.
[06:46:09] <KittyCat> actually..
[06:46:58] <KittyCat> you can probably make active part of the class, instead of global to the function
[06:47:25] <rsp> Ok
[06:48:12] <KittyCat> set it to true when you start playing
[06:48:26] <KittyCat> and return that value in Playing()
[06:49:00] <rsp> Instead of State==AL_PLAYING
[06:49:22] <KittyCat> yeah
[06:53:45] <rsp> Weird, it plays the buffer 1 more time
[06:53:48] <rsp> Then stops
[06:59:15] <rsp> Ok it works when I wrote this in the while(processed--)
[06:59:19] <rsp> 		if(!Active)break;
[07:00:11] <KittyCat> can do that at the beginning of Update
[07:00:55] <rsp> It loops one more time then
[07:01:15] <KittyCat> huh?
[07:01:41] <rsp> I know
[07:02:30] <KittyCat> oh.
[07:03:00] <KittyCat> put the if(Size == 0) check after alBufferData, in Stream
[07:04:18] <rsp> Thanks!
[07:07:52] <KittyCat> while(processed--) {  should also be  while(processed-- && Active) {
[07:10:32] <rsp> Ok!
[07:11:56] <rsp> I have a regular sound that moves from left to right
[07:12:09] <rsp> Around center, it clicks real fast once
[07:12:37] <rsp> Just as it is changing to the right speaker
[07:13:07] <rsp> Sometimes it's soft and ok sometimes it's more aggressive
[07:13:55] <rsp> (Only happens when Z is 0 afaik)
[07:14:24] <rsp> Maybe that's a limitation though
[07:15:31] <rsp> When Z 0.1 it sounds great
[07:16:14] <KittyCat> when z = 0, the sound will just jump from hard left to hard right
[07:16:37] <KittyCat> when z != 0, it'll have a smoother path  (smoothness depending on the distance)
[07:17:02] <rsp> Okay then it's just normal!
[07:19:12] <rsp> By the way, that problem with fullscreen changing seemed to dissapear when I changed the define to #define MUSIC_BUFFER_SIZE (4096*16)
[07:19:37] <rsp> Is that possible or is it temporary
[07:19:54] <rsp> It was *8 before I changed
[07:20:33] <KittyCat> I don't see what would cause that to change anything
[07:20:46] <rsp> Me neither
[07:21:13] <rsp> Is it recommended to stick with the lower value?
[07:21:24] <rsp> 0.1MiB memory difference
[07:21:48] <KittyCat> hmm
[07:22:26] <KittyCat> personally, I'd probably use 16*1024, with 3 Buffers
[07:22:35] <rsp> Ok
[07:22:45] <KittyCat> actually, I think I realized what it is
[07:22:53] <rsp> 2 buffers?
[07:22:58] <rsp> Is that the problem?
[07:23:21] <KittyCat> when you switch away, it drains the process of CPU time. however, it's still playing.
[07:23:26] <rsp> Yes
[07:23:44] <KittyCat> when it gets to the end of the buffer queue, the source stops. even though it has more to play, you don't restart the source
[07:24:24] <KittyCat> which is why at the end of Update(), you check the source state and make sure it's playing (and if not, start the source again)
[07:24:53] <KittyCat> so even if it gets to the end, it'll start up again
[07:24:58] <rsp> Yeah that's it!
[07:25:18] <KittyCat> the larger buffer just keeps it from hitting the end prematurely
[07:26:02] <rsp> ok!
[07:26:41] <rsp> Yes that was the reason
[07:26:55] <rsp> You've been everywhere hehe
[07:27:45] <KittyCat> :) I use openal quite a bit. just not much I've released
[07:28:35] <rsp> :3 I'm curious about what your projects must be like
[07:29:51] <rsp> A higher music buffer size would allow a user with a slow cpu to still get the music to play smooth when changing window mode fullscreen
[07:30:08] <rsp> That's a fact right?
[07:30:37] <KittyCat> yeah. directshow seems to use a 1-second long buffer for streaming playback
[07:30:44] <rsp> Ok!
[07:30:55] <KittyCat> 16K * 3 should be good enough
[07:31:02] <rsp> One second of raw audio
[07:31:09] <KittyCat> yeah
[07:31:12] <rsp> Ok
[07:32:08] <rsp> #define MUSIC_BUFFER_SIZE 16384*3
[07:32:31] <rsp> Works great
[07:32:38] <KittyCat> no, 16K each
[07:32:55] <rsp> per buffer?
[07:33:12] <KittyCat> whatever you set MUSIC_BUFFER_SIZE to will be multipled by the number of buffers you have queued
[07:33:30] <rsp> automatically yeah that's true
[07:34:08] <rsp> Though I get small hang ups
[07:34:18] <rsp> When I alt+tab and test some stuff
[07:34:31] <KittyCat> having 3 buffers is probably better than 2, so you can be filling one buffer, and AL can be playing another and ready to pick up the next
[07:35:05] <rsp> Yeah that's a way to do it
[07:35:53] <rsp> 3 buffers is to small to care about putting in a vector right?
[07:35:59] <rsp> too*
[07:36:19] <KittyCat> yeah. 3 ints is fine
[07:37:34] <rsp> I think I am using 3 buffers now
[07:37:38] <KittyCat> just make sure to generate, queue, and destroy all 3
[07:37:47] <rsp> Yes that's what I changed
[07:37:56] <rsp> No cange in ::Stream though
[07:38:01] <rsp> That was what I was worried about
[07:38:24] <KittyCat> Stream and Update shouldn't need to be changed
[07:38:35] <rsp> Yeah ok I guess I am using 3 buffers now then I'll test again
[07:38:58] <rsp> Works great, thanks for the advice
[07:39:08] <KittyCat> no problem
[07:39:13] <rsp> :)
[07:40:23] <rsp> Is there any OpenAL Soft function that returns the compiled version as a cstring or something?
[07:41:20] <KittyCat> no, other than maybe parsing the lib filename (for unices)
[07:41:27] <rsp> Ok
[07:45:26] <rsp> Have you ever used geany?
[07:45:36] <KittyCat> nope
[07:45:55] <KittyCat> never heard of it
[07:46:00] <rsp> What IDE/text editor do you use?
[07:46:23] <rsp> I usually code with gedit but geany is good for larger projects
[07:46:52] <KittyCat> nano, kate, or kdevelop, depending on what I need to do at the moment
[07:46:59] <rsp> Ok :)
[07:48:09] <rsp> You know Sound *Snd=new Sound;
[07:48:33] <rsp> Is there anyway I can do that in a function and get access to it from another without a global declaration?
[07:48:52] <rsp> My only thought is map with enum
[07:49:07] *** rsp has left #openal
[07:49:10] *** rsp has joined #openal
[07:49:11] *** ChanServ sets mode: +v rsp
[07:49:15] <rsp> oops :P
[07:52:09] <KittyCat> depends on what functions need to access it
[07:53:14] <KittyCat> if it's global functions, it'll need to be a global variable/list (unless you want to pass it around as a parameter, but that's not very clean).
[07:53:39] <rsp> Ok.
[09:08:15] <rsp> Time for school
[09:08:40] <rsp> I guess it's good night in your time zone!
[09:08:43] *** rsp has left #openal
[09:26:25] *** predaeus has joined #openal
[09:26:26] *** ChanServ sets mode: +v predaeus
[10:09:25] *** Dentoid has joined #openal
[10:16:09] * KittyCat is away: sleep
[13:41:16] *** predaeus has quit IRC
[13:44:17] *** juanmabc has joined #openal
[13:44:18] *** ChanServ sets mode: +v juanmabc
[15:12:47] *** Walt_ has joined #openal
[15:20:32] *** Walt_ has quit IRC
[15:23:42] *** Walt_ has joined #openal
[15:25:43] *** Walt_ has quit IRC
[15:39:20] *** barra_library has joined #openal
[16:22:44] *** rs1 has joined #openal
[16:23:07] *** rs1 is now known as rsp
[16:27:01] *** ChanServ sets mode: +v rsp
[16:59:27] *** barra_ has joined #openal
[17:13:03] *** barra_library has quit IRC
[17:19:19] *** predaeus has joined #openal
[17:19:19] *** ChanServ sets mode: +v predaeus
[18:21:38] *** Dentoid has quit IRC
[18:32:32] *** barra_ has quit IRC
[21:04:30] *** predaeus has quit IRC
[21:18:24] *** juanmabc has quit IRC
[21:25:00] * KittyCat is back.
[21:58:39] *** nitrotrigger has joined #openal
[21:59:20] <nitrotrigger> how do I make sure that openal is installed properly?
[22:00:28] <KittyCat> on your system? just try running an openal app
[22:00:45] <KittyCat> what OS?
[22:01:35] <nitrotrigger> fedora 8
[22:02:59] <KittyCat> just running an openal app is the best way, really
[22:04:37] <nitrotrigger> I haven't any :(
[22:12:36] <nitrotrigger> http://pastebin.com/m911b89e
[22:13:36] <KittyCat> hmm..
[22:13:51] <KittyCat> what if you include AL/al.h and AL/alc.h before AL/alut.h?
[22:14:15] <nitrotrigger> let's see
[22:15:13] <nitrotrigger> didn't help
[22:33:28] <nitrotrigger> 0.0.8
[22:34:03] <KittyCat> never heard of an issue with the headers before
[22:34:13] <KittyCat> what compiler are you using, and what version?
[22:34:45] <nitrotrigger> g++ (GCC) 4.2.2
[22:34:47] <nitrotrigger> Copyright (C) 2007 Free Software Foundation, Inc.
[22:34:47] <nitrotrigger> This is free software; see the source for copying conditions.  There is NO
[22:34:47] <nitrotrigger> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[22:39:17] <KittyCat> I don't see anything wrong with the headers..
[22:39:29] <KittyCat> where did you get alut?
[22:41:06] <nitrotrigger> I installed it from my package manager
[22:41:10] <nitrotrigger> freealut
[22:47:26] <nitrotrigger> I have to go to sleep (can't keep my eyes open)...
[22:47:41] *** nitrotrigger has quit IRC

top