Jump to content
Eternal Lands Official Forums
Torg

Major NEW_SOUND update - EL gets a (complete?) sound system

Recommended Posts

Do you hear the "water" sound before you leave the docks? It looks like it was trying to play the first time.

Yes, I hear all the sounds. Crowd, water, wind.

The change of the background sound might be the problem.

 

I think I see a pattern

 

[14:13:23] update_streams - Not playing stream. Checking for background sound. Pos: 139, 96

[14:13:23] Playing stream (0) sound: 3

[14:13:23] stream_ogg_file

[14:13:23] ./sound/mystic-wind.ogg

...

[14:13:39] update_streams - Not playing stream. Checking for background sound. Pos: 139, 96

[14:13:39] Playing stream (0) sound: 3

[14:13:39] stream_ogg_file

[14:13:39] ./sound/mystic-wind.ogg

...

[14:13:55] update_streams - Not playing stream. Checking for background sound. Pos: 139, 96

[14:13:55] Playing stream (0) sound: 3

[14:13:55] stream_ogg_file

[14:13:55] ./sound/mystic-wind.ogg

...

[14:14:12] update_streams - Not playing stream. Checking for background sound. Pos: 139, 96

[14:14:12] Playing stream (0) sound: 3

[14:14:12] stream_ogg_file

[14:14:12] ./sound/mystic-wind.ogg

...

[14:14:28] update_streams - Not playing stream. Checking for background sound. Pos: 139, 96

[14:14:28] Playing stream (0) sound: 3

[14:14:28] stream_ogg_file

[14:14:28] ./sound/mystic-wind.ogg

...

[14:14:44] update_streams - Not playing stream. Checking for background sound. Pos: 139, 96

[14:14:44] Playing stream (0) sound: 3

[14:14:44] stream_ogg_file

[14:14:44] ./sound/mystic-wind.ogg

...

[14:15:00] update_streams - Not playing stream. Checking for background sound. Pos: 141, 79

[14:15:00] Playing stream (0) sound: 6

[14:15:00] stream_ogg_file

[14:15:00] ./sound/water.ogg <-- change to water w/o crash

...

[14:15:02] update_streams - Not playing stream. Checking for background sound. Pos: 141, 79

[14:15:02] Playing stream (0) sound: 6

[14:15:02] stream_ogg_file

[14:15:02] ./sound/water.ogg

...

[14:15:07] update_streams - Not playing stream. Checking for background sound. Pos: 128, 96

[14:15:07] update_streams - No background found, checking for defaults

[14:15:07] update_streams - Playing default background sound: 1

[14:15:07] stream_ogg_file

[14:15:07] ./sound/forest02.ogg <-- change to birds w/o crash

...

[14:15:14] update_streams - Not playing stream. Checking for crowd sound

[14:15:14] update_stream - Playing default crowd sound: 39

[14:15:14] stream_ogg_file

[14:15:14] sound/crowd.ogg <-- change to crowd w/o crash

...

[14:16:11] update_streams - Not playing stream. Checking for background sound. Pos: 100, 140

[14:16:11] update_streams - No background found, checking for defaults

[14:16:11] update_streams - Playing default background sound: 1

[14:16:11] stream_ogg_file

[14:16:11] ./sound/forest02.ogg

...

[14:16:50] process_stream - Checking for valid background sound. Pos: 127, 111

[14:16:51] process_stream - Checking for valid background sound. Pos: 129, 109

[14:16:51] Stopping default stream (0) sound <-- this is new!

[14:16:51] Playing stream (0) sound: 3

[14:16:51] stream_ogg_file

[14:16:51] ./sound/mystic-wind.ogg

 

and crash

Share this post


Link to post
Share on other sites
[14:16:50] process_stream - Checking for valid background sound. Pos: 127, 111

[14:16:51] process_stream - Checking for valid background sound. Pos: 129, 109

[14:16:51] Stopping default stream (0) sound <-- this is new!

[14:16:51] Playing stream (0) sound: 3

[14:16:51] stream_ogg_file

[14:16:51] ./sound/mystic-wind.ogg

 

and crash

Nicely spotted!!

 

Ok... I'll poke around and see what I can find.

Share this post


Link to post
Share on other sites

Google was my friend, now I've got a OpenAL Framework (latest svn) with complete debug information:

 

********** InitRenderQualityOnBusses:kDefaultLowQuality ***********
	OALSource::PostRenderRemoveBuffersFromQueue mState == AL_STOPPED - OALSource:GetQLength():mBufferQueueInactive->Size() = 2423:0:0

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000000b
[Switching to process 5998 thread 0x81bb]
0x0550dbbc in std::type_info::__do_catch (this=0x55363c0, thr_type=0x7) at ../../../../gcc-4.2.1/libstdc++-v3/libsupc++/tinfo.cc:89
89	  __do_catch (const type_info *thr_type, void **, unsigned) const
(gdb) bt full
#0  0x0550dbbc in std::type_info::__do_catch (this=0x55363c0, thr_type=0x7) at ../../../../gcc-4.2.1/libstdc++-v3/libsupc++/tinfo.cc:89
	this = (const type_info * const) 0x7
	thr_type = (const type_info *) 0x7
#1  0x90b42d1e in __cxa_get_globals ()
No symbol table info available.
#2  0x90b4342a in __gxx_personality_v0 ()
No symbol table info available.
#3  0x90bd7acb in _Unwind_RaiseException ()
No symbol table info available.
#4  0x90b43747 in __cxa_throw ()
No symbol table info available.
#5  0x05028a72 in OALSource::PostRenderRemoveBuffersFromQueue (this=0x13e0cd00, inBuffersToUnqueue=1) at /usr/src/openal/OpenAL-MacOSX/oalSource.cpp:1131
	i = 2957452184
	result = 89205809
#6  0x05029db2 in OALSource::DoPostRender (this=0x13e0cd00) at /usr/src/openal/OpenAL-MacOSX/oalSource.cpp:2584
	messages = (PlaybackMessage *) 0x19688e60
	renderProcsRemoved = false
	lastMessage = (PlaybackMessage *) 0x19688e50
	wasLocked = true
#7  0x0502a0e1 in OALSource::SourceNotificationProc (inRefCon=0x13e0cd00, inActionFlags=0xb047249c, inTimeStamp=0x13cbac80, inBusNumber=0, inNumberFrames=512, ioData=0x13cbaf80) at /usr/src/openal/OpenAL-MacOSX/oalSource.cpp:2182
	THIS = (OALSource *) 0x13e0cd00
#8  0x700090f9 in DefaultOutputAUEntry ()
No symbol table info available.
#9  0x700104d8 in AUHighShelfFilterEntry ()
No symbol table info available.
#10 0x700098ed in DefaultOutputAUEntry ()
No symbol table info available.
#11 0x700d31c7 in AUNetSendEntry ()
No symbol table info available.
#12 0x700d25e7 in AUNetSendEntry ()
No symbol table info available.
#13 0x93d7080d in AudioConverterChain::CallInputProc ()
No symbol table info available.
#14 0x93d704aa in AudioConverterChain::FillBufferFromInputProc ()
No symbol table info available.
#15 0x93d6fcaa in BufferedAudioConverter::GetInputBytes ()
No symbol table info available.
#16 0x93d6fb3b in CBRConverter::RenderOutput ()
No symbol table info available.
#17 0x93d6f89f in BufferedAudioConverter::FillBuffer ()
No symbol table info available.
#18 0x93d6fa2d in AudioConverterChain::RenderOutput ()
No symbol table info available.
#19 0x93d6f89f in BufferedAudioConverter::FillBuffer ()
No symbol table info available.
#20 0x93d6f72c in AudioConverterFillComplexBuffer ()
No symbol table info available.
#21 0x70009483 in DefaultOutputAUEntry ()
No symbol table info available.
#22 0x70009038 in DefaultOutputAUEntry ()
No symbol table info available.
#23 0x700084fd in DefaultOutputAUEntry ()
No symbol table info available.
#24 0x91476912 in HP_IOProc::Call ()
No symbol table info available.
#25 0x91475e4e in IOA_Device::CallIOProcs ()
No symbol table info available.
#26 0x91475bd9 in HP_IOThread::PerformIO ()
No symbol table info available.
#27 0x91474001 in HP_IOThread::WorkLoop ()
No symbol table info available.
#28 0x91473c43 in HP_IOThread::ThreadEntry ()
No symbol table info available.
#29 0x91468239 in CAPThread::Entry ()
No symbol table info available.
#30 0x90024227 in _pthread_body ()
No symbol table info available.
Current language:  auto; currently c++

Edited by Florian

Share this post


Link to post
Share on other sites

Hmmmm... In my quick look around the only thing I can see is there are 2 calls to stop_stream. One when stopping the default stream, and one before loading the file into the stream. Can you check what happens if you put "if (stream->playing)" around the stop at the top of stream_ogg_file().

Share this post


Link to post
Share on other sites

if (stream->playing) {
 LOG_ERROR("stop_stream");
 stop_stream(stream);
}

 

"stop_stream" is never logged.

 

this time it took around five minutes to crash, not five seconds ...

 

********** InitRenderQualityOnBusses:kDefaultLowQuality ***********
B: 3.1
WAITING: AddAudioData ---> WaitOneRenderCycle
B: 1.5
WAITING: AddAudioData ---> WaitOneRenderCycle
WAITING: AddAudioData ---> WaitOneRenderCycle
WAITING: AddAudioData ---> WaitOneRenderCycle
OALBuffer::AddAudioData: buffer ATTACHMENT > 0 - mSelfToken:mAttachedSourceList->Size() = 2419:1

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000000b
[Switching to process 5718 thread 0x8303]
0x0550dbbc in std::type_info::__do_catch (this=0x55363c0, thr_type=0x7) at ../../../../gcc-4.2.1/libstdc++-v3/libsupc++/tinfo.cc:89
89	  __do_catch (const type_info *thr_type, void **, unsigned) const
(gdb) bt full
#0  0x0550dbbc in std::type_info::__do_catch (this=0x55363c0, thr_type=0x7) at ../../../../gcc-4.2.1/libstdc++-v3/libsupc++/tinfo.cc:89
	this = (const type_info * const) 0x7
	thr_type = (const type_info *) 0x7
#1  0x90b42d1e in __cxa_get_globals ()
No symbol table info available.
#2  0x90b4342a in __gxx_personality_v0 ()
No symbol table info available.
#3  0x90bd7acb in _Unwind_RaiseException ()
No symbol table info available.
#4  0x90b43747 in __cxa_throw ()
No symbol table info available.
#5  0x0502ad60 in OALBuffer::AddAudioData (this=0x18ba6180, inAudioData=0xb04e3bf8 "", inAudioDataSize=65536, format=4355, freq=44100, inPreConvertToHalFormat=false) at /usr/src/openal/OpenAL-MacOSX/oalBuffer.cpp:222
	inPreConvertToHalFormat = false
	wasLocked = true
	attachedCount = 1
	result = 2419
	result = -1337050552
#6  0x050192a0 in alBufferData (bid=2419, format=4355, data=0xb04e3bf8, size=65536, freq=44100) at /usr/src/openal/OpenAL-MacOSX/oalImp.cpp:1430
	oalBuffer = (OALBuffer *) 0x18ba6180
	result = 854613
#7  0x000d0bbb in stream_ogg (buffer=2419, inStream=0x3fa11d8, info=0x1977e2e0) at sound.c:1817
	data = '\0' <repeats 22 times>, "ÿÿ\000\000ÿÿ\000\000þÿÿÿþÿ\000\000ÿÿ\001\000ÿÿ\001\000\000\000\002\000\001\000\002\000ûÿÿÿ÷ÿýÿýÿþÿ\002\000üÿ\005\000üÿ\003\000ýÿùÿüÿõÿøÿÿÿûÿ\a\000\003\000\v\000\a\000\t\000\000\000öÿóÿëÿíÿôÿ÷ÿýÿ\t\000\003\000\022\000\b\000\r\000üÿüÿìÿíÿñÿïÿþÿùÿ\001\000þÿüÿ\004\000ñÿ\001\000ôÿõÿ\004\000ùÿ\t\000\001\000\002\000ûÿøÿñÿöÿðÿ\002\000úÿ\b\000\001\000\003\000ÿÿ\003\000üÿþÿûÿôÿüÿõÿûÿÿÿüÿùÿ"...
	size = <value optimized out>
	section = 0
	error = <value optimized out>
	str = "3840", '\0' <repeats 16 times>, "ûÙ1\004\001\000\000\000\000\000\000\000È<O°NÙ1\004Ø\021ú\003", '\0' <repeats 12 times>, "ô2z\000\000\000\000\002\000\000\000\000\000\000\000<O°L\022ú\003 <O°°<O°Ø\021ú\003ô2zõ\016\000\000\000\000\000\0004\022ú\003\000\000\000\000\001\000\000\000\000\b\000\000\000\000\000\000\020\000\000\000\b\000\000\000\000\000\000\000\000Mä\0249\002\000\000\000\000\000\000\000\000\000\000@\024\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000v=\027\037\000\000\000\037v=\027<\002\000\000\000v=\027\037\000\000\000\037v=\027<\002\000\000c\001X¿\000 "...
	format = 4355
#8  0x000d6e43 in stream_ogg_file (file_name=0x3fc14a4 "./sound/forest02.ogg", stream=0x3fa11c0, numBuffers=4) at sound.c:1753
	error = <value optimized out>
	more_stream = <value optimized out>
	i = <value optimized out>
#9  0x000d71c8 in play_stream (sound=1, stream=0x3fa11c0) at sound.c:1929
	result = <value optimized out>
	file = 0x3fc14a4 "./sound/forest02.ogg"
	tmp_file_name = "ÿ\000\000\000\024\000\000\000æ\001\000\000£\000\000\000ÿ\000\000\000¨\001\000\000Ò\001\000\000\001\000\000\000ÿÿÿÿ£\000\000\000\t\000\000\000£\000\000\000ß\001\000\000æ\001\000\000ß\001\000\000æ\001\000\000ÿ\000\000\000jº\030\001\000\000\000°hº\030"
#10 0x000d7458 in check_for_valid_stream_sound (tx=466, ty=424, stream=0x3fa11c0) at sound.c:2091
	i = 66858544
	snd = 1
#11 0x000da137 in update_streams (dummy=0x0) at sound.c:2277
	error = <value optimized out>
	sleep = 500
	music_fade = 0
	sound_fade = 0
	crowd_fade = 0
	i = 0
	tx = 466
	ty = 424
	old_tx = 466
	old_ty = 424
#12 0x3002f734 in SDL_Linked_Version ()
No symbol table info available.
#13 0x3003cde6 in SDL_SemWait ()
No symbol table info available.
#14 0x90024227 in _pthread_body ()
No symbol table info available.
Current language:  auto; currently c++

 

[16:44:54] Trying to add sound: 24 (Walk) at 459, 421. Camera: 466, 424

[16:44:54] Inserting new source at index 0/9

[16:44:54] Cookie 95. Playing this sound unless out of range.

[16:44:56] Stopping cookie 95 with sound source index 0

[16:45:00] Stopping cookie 94 with sound source index 0

[16:45:11] Trying to add sound: 24 (Walk) at 468, 418. Camera: 466, 424

[16:45:11] Inserting new source at index 0/8

[16:45:11] Cookie 96. Playing this sound unless out of range.

[16:45:15] Stopping cookie 96 with sound source index 0

[16:45:21] update_streams - Not playing stream. Checking for background sound. Pos: 466, 424 <-- in WS

[16:45:21] Playing stream (0) sound: 1

[16:45:21] stream_ogg_file

[16:45:21] ./sound/forest02.ogg

 

I'll recompile EL without any optimization flags.

 

/EDIT

here it is, w/o optimizations

 

********** InitRenderQualityOnBusses:kDefaultLowQuality ***********
B: 1.5
WAITING: AddAudioData ---> WaitOneRenderCycle
OALBuffer::AddAudioData: buffer ATTACHMENT > 0 - mSelfToken:mAttachedSourceList->Size() = 2419:1

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000000b
[Switching to process 8613 thread 0x8303]
0x0550dbbc in std::type_info::__do_catch (this=0x55363c0, thr_type=0x7) at ../../../../gcc-4.2.1/libstdc++-v3/libsupc++/tinfo.cc:89
89	  __do_catch (const type_info *thr_type, void **, unsigned) const
(gdb) bt full
#0  0x0550dbbc in std::type_info::__do_catch (this=0x55363c0, thr_type=0x7) at ../../../../gcc-4.2.1/libstdc++-v3/libsupc++/tinfo.cc:89
	this = (const type_info * const) 0x7
	thr_type = (const type_info *) 0x7
#1  0x90b42d1e in __cxa_get_globals ()
No symbol table info available.
#2  0x90b4342a in __gxx_personality_v0 ()
No symbol table info available.
#3  0x90bd7acb in _Unwind_RaiseException ()
No symbol table info available.
#4  0x90b43747 in __cxa_throw ()
No symbol table info available.
#5  0x0502ad60 in OALBuffer::AddAudioData (this=0x1400c940, inAudioData=0xb04e3c7c "", inAudioDataSize=65536, format=4355, freq=44100, inPreConvertToHalFormat=false) at /usr/src/openal/OpenAL-MacOSX/oalBuffer.cpp:222
	inPreConvertToHalFormat = false
	wasLocked = true
	attachedCount = 1
	result = 2419
	result = -1337050424
#6  0x050192a0 in alBufferData (bid=2419, format=4355, data=0xb04e3c7c, size=65536, freq=44100) at /usr/src/openal/OpenAL-MacOSX/oalImp.cpp:1430
	oalBuffer = (OALBuffer *) 0x1400c940
	result = 4
#7  0x000c4844 in stream_ogg (buffer=2419, inStream=0x4004e88, info=0x1aada460) at sound.c:1817
	data = '\0' <repeats 22 times>, "ÿÿ\000\000ÿÿ\000\000þÿÿÿþÿ\000\000ÿÿ\001\000ÿÿ\001\000\000\000\002\000\001\000\002\000ûÿÿÿ÷ÿýÿýÿþÿ\002\000üÿ\005\000üÿ\003\000ýÿùÿüÿõÿøÿÿÿûÿ\a\000\003\000\v\000\a\000\t\000\000\000öÿóÿëÿíÿôÿ÷ÿýÿ\t\000\003\000\022\000\b\000\r\000üÿüÿìÿíÿñÿïÿþÿùÿ\001\000þÿüÿ\004\000ñÿ\001\000ôÿõÿ\004\000ùÿ\t\000\001\000\002\000ûÿøÿñÿöÿðÿ\002\000úÿ\b\000\001\000\003\000ÿÿ\003\000üÿþÿûÿôÿüÿõÿûÿÿÿüÿùÿ"...
	size = 65536
	section = 0
	result = 3840
	error = 0
	str = "3840\000<O°üN\000\004à<O°ð<O°N\000\004ô2zõ\016\000\000\000\000\000\000äN\000\004\000\000\000\000\001\000\000\000\000\b\000\000\000\000\000\000\020\000\000\000\b\000\000\000\000\000\000\000\000Íð\0229\002\000\000\000\000\000\000\000\000\000\000@\024\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\032,\027\037\000\000\000\037\032,\027<\002\000\000\000\032,\027\037\000\000\000\037\032,\027<\002\000\000c\001~\000\000\000H=O°OÚA\004X¿\000 N\000\004\000\000\000\000\000\000\000\000c\001ùÉA\004à\016\001O5\003c\001ùÉA\004à\016O5\003uC\f\000"...
	format = 4355
#8  0x000c4564 in stream_ogg_file (file_name=0x4025154 "./sound/forest02.ogg", stream=0x4004e70, numBuffers=4) at sound.c:1753
	error = 335596800
	result = 1
	more_stream = 808899
	i = 0
#9  0x000c4ceb in play_stream (sound=1, stream=0x4004e70) at sound.c:1929
	result = 808563
	file = 0x4025154 "./sound/forest02.ogg"
	tmp_file_name = "\001\000\000å\001\000\000\005\000\000\000ÿÿÿÿ\001\000\000\t\000\000\000\001\000\000i\000\000\000Æ\001\000\000i\000\000\000\020\002\000\000\t\000\000\000pN\000\004å\001\000\000\001\000\000\022\020\000\000\005\000\000\000\006\000\000\000\032+AÖ\032+AÖ"
#10 0x000c6402 in update_streams (dummy=0x0) at sound.c:2297
	error = 0
	sleep = 500
	music_fade = 0
	sound_fade = 3
	crowd_fade = 0
	i = 0
	day_time = 0
	tx = 401
	ty = 485
	old_tx = 403
	old_ty = 483
	gain = 0.400000006
#11 0x3002f734 in SDL_Linked_Version ()
No symbol table info available.
#12 0x3003cde6 in SDL_SemWait ()
No symbol table info available.
#13 0x90024227 in _pthread_body ()
No symbol table info available.
Current language:  auto; currently c++

 

[16:55:47] Trying to add sound: 37 (Sheep) at 467, 423. Camera: 468, 418

[16:55:47] Inserting new source at index 0/9

[16:55:47] Attemping to load sound: File: sound/sheep.ogg

[16:55:47] Result: File: sound/sheep.ogg, Format: 4353, Size: 259022, Freq: 44100.000000

[16:55:47] Cookie 43. Playing this sound unless out of range.

[16:55:48] process_stream - Checking for valid crowd sound. Pos: 465, 421

[16:55:48] process_stream - Checking for valid crowd sound. Pos: 462, 424

[16:55:49] process_stream - Checking for valid crowd sound. Pos: 460, 426

[16:55:49] process_stream - Checking for valid crowd sound. Pos: 459, 427

[16:55:49] Trying to add sound: 24 (Walk) at 466, 421. Camera: 459, 427

[16:55:49] Inserting new source at index 1/10

[16:55:49] Cookie 44. Playing this sound unless out of range.

[16:55:50] process_stream - Checking for valid crowd sound. Pos: 457, 429

[16:55:51] Stopping cookie 44 with sound source index 0

[16:56:06] update_streams - Not playing stream. Checking for background sound. Pos: 401, 485

[16:56:06] update_streams - No background found, checking for defaults

[16:56:06] update_streams - Playing default background sound: 1

[16:56:06] stream_ogg_file

[16:56:06] ./sound/forest02.ogg

 

 

walking around WS again

Edited by Florian

Share this post


Link to post
Share on other sites

#5  0x0456f7ac in OALBuffer::AddAudioData (this=0x187a5b40, inAudioData=0xb04e3c7c "", inAudioDataSize=65536, format=4355, freq=44100, inPreConvertToHalFormat=false) at /usr/src/openal/OpenAL-MacOSX/oalBuffer.cpp:222
	wasLocked = true
	attachedCount = 1
	result = 2419

 

from oalBuffer.cpp:

OSStatus	OALBuffer::AddAudioData(char*	inAudioData, UInt32	inAudioDataSize, ALenum format, ALsizei freq, bool	inPreConvertToHalFormat)
{
// creates memory if needed
// reallocs if needed
// returns an error if buffer is in use

 

the code throwing the exception:

		if (attachedCount > 0){
			DebugMessageN2("OALBuffer::AddAudioData: buffer ATTACHMENT > 0 - mSelfToken:mAttachedSourceList->Size() = %ld:%ld", (long int) mSelfToken, (long int) mAttachedSourceList->Size());
			throw ((OSStatus) AL_INVALID_OPERATION);   
		}

 

This error message is there:

OALBuffer::AddAudioData: buffer ATTACHMENT > 0 - mSelfToken:mAttachedSourceList->Size() = 2419:1

 

To me this looks like this

// returns an error if buffer is in use

is happening here.

 

My openAL now has "a little bit" more debug output ...

 

before login screen:

alGenBuffers--> requested buffers = 4

alGenBuffers--> (4) 2414, 2415, 2416, 2417,

alGenBuffers--> requested buffers = 4

alGenBuffers--> (4) 2419, 2420, 2421, 2422,

alGenBuffers--> requested buffers = 4

alGenBuffers--> (4) 2424, 2425, 2426, 2427,

alGenBuffers--> requested buffers = 1

alGenBuffers--> (1) 2429,

alGetBufferi--> buffer 2429 : property = UNKNOWN ATTRIBUTE - WARNING WARNING WARNING

alGetBufferi--> buffer 2429 : property = UNKNOWN ATTRIBUTE - WARNING WARNING WARNING

alSourceQueueBuffers--> (1) 2429,

 

after login standing around on IP

alGenBuffers--> requested buffers = 1

alGenBuffers--> (1) 2431,

alGetBufferi--> buffer 2431 : property = UNKNOWN ATTRIBUTE - WARNING WARNING WARNING

alGetBufferi--> buffer 2431 : property = UNKNOWN ATTRIBUTE - WARNING WARNING WARNING

alSourceQueueBuffers--> (1) 2431,

alSourceQueueBuffers--> (4) 2419, 2420, 2421, 2422,

sid = 2423 alSourceUnqueueBuffers--> (1) 2419,

alSourceQueueBuffers--> (1) 2419,

sid = 2423 alSourceUnqueueBuffers--> (1) 2420,

alSourceQueueBuffers--> (1) 2420,

sid = 2423 alSourceUnqueueBuffers--> (1) 2421,

alSourceQueueBuffers--> (1) 2421,

sid = 2423 alSourceUnqueueBuffers--> (1) 2422,

alSourceQueueBuffers--> (1) 2422,

sid = 2423 alSourceUnqueueBuffers--> (1) 2419,

alSourceQueueBuffers--> (1) 2419,

sid = 2423 alSourceUnqueueBuffers--> (1) 2420,

alSourceQueueBuffers--> (1) 2420,

sid = 2423 alSourceUnqueueBuffers--> (1) 2421,

alSourceQueueBuffers--> (1) 2421,

sid = 2423 alSourceUnqueueBuffers--> (1) 2422,

alSourceQueueBuffers--> (1) 2422,

...

 

EL error_log:

[18:03:45] update_streams - Not playing stream. Checking for background sound. Pos: 99, 147

[18:03:45] update_streams - No background found, checking for defaults

[18:03:45] update_streams - Playing default background sound: 1

[18:03:45] stream_ogg_file

[18:03:45] ./sound/forest02.ogg

 

openAL output om gdb:

alSourceQueueBuffers--> (1) 2427,

alGenBuffers--> requested buffers = 1

alGenBuffers--> (1) 2440,

alGetBufferi--> buffer 2440 : property = UNKNOWN ATTRIBUTE - WARNING WARNING WARNING

alGetBufferi--> buffer 2440 : property = UNKNOWN ATTRIBUTE - WARNING WARNING WARNING

alSourceQueueBuffers--> (1) 2440,

sid = 2423 alSourceUnqueueBuffers--> (1) 2420,

alSourceQueueBuffers--> (1) 2420,

sid = 2423 alSourceUnqueueBuffers--> (1) 2421,

alSourceQueueBuffers--> (1) 2421,

sid = 2428 alSourceUnqueueBuffers--> (1) 2424,

alSourceQueueBuffers--> (1) 2424,

sid = 2428 alSourceUnqueueBuffers--> (1) 2425,

alSourceQueueBuffers--> (1) 2425,

WAITING: AddAudioData ---> WaitOneRenderCycle

OALBuffer::AddAudioData: buffer ATTACHMENT > 0 - mSelfToken:mAttachedSourceList->Size() = 2419:1

 

... crash

 

#0  0x05075bbc in std::type_info::__do_catch (this=0x509e3c0, thr_type=0x7) at ../../../../gcc-4.2.1/libstdc++-v3/libsupc++/tinfo.cc:89
	this = (const type_info * const) 0x7
	thr_type = (const type_info *) 0x7
#1  0x90b42d1e in __cxa_get_globals ()
No symbol table info available.
#2  0x90b4342a in __gxx_personality_v0 ()
No symbol table info available.
#3  0x90bd7acb in _Unwind_RaiseException ()
No symbol table info available.
#4  0x90b43747 in __cxa_throw ()
No symbol table info available.
#5  0x0456d82c in OALBuffer::AddAudioData (this=0x13b0c920, inAudioData=0xb04e3c7c "", inAudioDataSize=65536, format=4355, freq=44100, inPreConvertToHalFormat=false) at /usr/src/openal/OpenAL-MacOSX/oalBuffer.cpp:222
	wasLocked = true
	attachedCount = 1
	result = 2419
#6  0x0455bc96 in alBufferData (bid=2419, format=4355, data=0xb04e3c7c, size=65536, freq=44100) at /usr/src/openal/OpenAL-MacOSX/oalImp.cpp:1430
	oalBuffer = (OALBuffer *) 0x13b0c920
#7  0x000c4778 in stream_ogg (buffer=2419, inStream=0x4004e88, info=0x6165d70) at sound.c:1819
	data = '\0' <repeats 22 times>, "ÿÿ\000\000ÿÿ\000\000þÿÿÿþÿ\000\000ÿÿ\001\000ÿÿ\001\000\000\000\002\000\001\000\002\000ûÿÿÿ÷ÿýÿýÿþÿ\002\000üÿ\005\000üÿ\003\000ýÿùÿüÿõÿøÿÿÿûÿ\a\000\003\000\v\000\a\000\t\000\000\000öÿóÿëÿíÿôÿ÷ÿýÿ\t\000\003\000\022\000\b\000\r\000üÿüÿìÿíÿñÿïÿþÿùÿ\001\000þÿüÿ\004\000ñÿ\001\000ôÿõÿ\004\000ùÿ\t\000\001\000\002\000ûÿøÿñÿöÿðÿ\002\000úÿ\b\000\001\000\003\000ÿÿ\003\000üÿþÿûÿôÿüÿõÿûÿÿÿüÿùÿ"...
	size = 65536
	section = 0
	result = 3840
	error = 0
	str = "3840\000<O°üN\000\004à<O°ð<O°N\000\004ô2zõ\016\000\000\000\000\000\000äN\000\004\000\000\000\000\001\000\000\000\000\b\000\000\000\000\000\000\020\000\000\000\b\000\000\000\000\000\000\000\000\rÍ\0229\002\000\000\000\000\000\000\000\000\000\000@\024\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000°%\027\037\000\000\000\037°%\027<\002\000\000\000°%\027\037\000\000\000\037°%\027<\002\000\000c\001~\000\000\000H=O°OÚA\004X¿\000 N\000\004\000\000\000\000\000\000\000\000c\001ùÉA\004à\016\001O5\003c\001ùÉA\004à\016\001O5\003B\f\000"...
	format = 4355
#8  0x000c4484 in stream_ogg_file (file_name=0x4025154 "./sound/forest02.ogg", stream=0x4004e70, numBuffers=4) at sound.c:1753
	error = 330353888
	result = 1
	more_stream = 808709
	i = 0

 

/EDIT

about this unknown attribute thing:

these lines in sound.c are the cause

alGetBufferi(*pBuffer, AL_BITS, &pSample->bits);

alGetBufferi(*pBuffer, AL_CHANNELS, &pSample->channels);

 

the warning is caused by oalImp::alGetBufferi which calls

DebugMessageN2("alGetBufferi--> buffer %ld : property = %s", (long int) bid, GetALAttributeString(pname));

 

GetALAttributeString translates the enum values to strings, but has no string for AL_BITS and AL_CHANNELS, so I suppose that's not the cause of the crash ...

Edited by Florian

Share this post


Link to post
Share on other sites

Well, without the stop_stream in check_for_valid_stream_sound the client does not crash anymore with the C++ exception raised by openAL.

 

Now my client froze completely, I had to ctrl-c it in gdb ...

 

(gdb) bt full
#0  0x900248c7 in semaphore_wait_signal_trap ()
No symbol table info available.
#1  0x90001582 in pthread_mutex_lock ()
No symbol table info available.
#2  0x3003ca78 in SDL_mutexP ()
No symbol table info available.
#3  0x000c71c6 in add_sound_object (type=17, x=99, y=140) at sound.c:2610
	i = 0
	loops = 0
	error = 0
	tx = 102
	ty = 142
	distanceSq = 0
	source = -1
	pSource = (source_data *) 0x0
	pType = (sound_type *) 0x0
	pNewType = (sound_type *) 0x40270e0
	maxDistanceSq = 0
	stage = 1953656688
	sourcePos = {99, 140, 0}
	sourceVel = {0, 0, 0}
	buffer = 0
#4  0x000aac17 in add_particle_sys (file_name=0x1c2480 "./particles/teleport_in.part", x_pos=49.75, y_pos=70.25, z_pos=0, dynamic=1) at particles.c:686
	snd = 17
#5  0x000ab7c7 in add_particle_sys_at_tile (file_name=0x1c2480 "./particles/teleport_in.part", x_tile=99, y_tile=140, dynamic=1) at particles.c:822
	height = 11
#6  0x00099616 in process_message_from_server (in_data=0x193361c0 "\f\005", data_length=7) at multiplayer.c:865
	text_buf = "\205SynI: \201:P\000ahais: gratz\000ts\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000à\000\000\000\200\000\000\000ÿÿÿÿD'\027\006 \026\000\2204`\026\006\016\000\000\000.\004\000\000 \021\000\2204`\026\006\000\000\000\000h\031\024\022\000\000\000\000\026\004\000\000\035\000\000\000\023\003\000\000÷È2\2200`\026\006\000\000\000\000ØÅÿ¿dÆ2\2200`\026\006ݱø\021+\000\000\000\035\000\000\000P_\026\006$\000\000\000(Æÿ¿:Ê2\2200`\026\006\003\000\000\000\004\000\000\000+\000\000\000\024\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000"...
#7  0x0008fa84 in start_rendering () at main.c:155
	message = (message_t *) 0x187da760
	event = {
 type = 24 '\030', 
 active = {
type = 24 '\030', 
gain = 254 'þ', 
state = 46 '.'
 }, 
 key = {
type = 24 '\030', 
which = 254 'þ', 
state = 46 '.', 
keysym = {
  scancode = 3 '\003', 
  sym = 328496016, 
  mod = 805729281, 
  unicode = 2589
}
 }, 
 motion = {
type = 24 '\030', 
which = 254 'þ', 
state = 46 '.', 
x = 3, 
y = 0, 
xrel = 29584, 
yrel = 5012
 }, 
 button = {
type = 24 '\030', 
which = 254 'þ', 
button = 46 '.', 
state = 176 '°', 
x = 3, 
y = 0
 }, 
 jaxis = {
type = 24 '\030', 
which = 254 'þ', 
axis = 46 '.', 
value = 3
 }, 
 jball = {
type = 24 '\030', 
which = 254 'þ', 
ball = 46 '.', 
xrel = 3, 
yrel = 0
 }, 
 jhat = {
type = 24 '\030', 
which = 254 'þ', 
hat = 46 '.', 
value = 176 '°'
 }, 
 jbutton = {
type = 24 '\030', 
which = 254 'þ', 
button = 46 '.', 
state = 176 '°'
 }, 
 resize = {
type = 24 '\030', 
w = 3, 
h = 328496016
 }, 
 expose = {
type = 24 '\030'
 }, 
 quit = {
type = 24 '\030'
 }, 
 user = {
type = 24 '\030', 
code = 3, 
data1 = 0x13947390, 
data2 = 0x30067401
 }, 
 syswm = {
type = 24 '\030', 
msg = 0x3
 }
}
	network_thread = (SDL_Thread *) 0x5ac8600
	message_queue = (queue_t *) 0x612c220
	done = 0
	network_thread_data = {0x612c220, 0x645c14}
#8  0x0008ff85 in SDL_main (argc=1, argv=0x6106f20) at main.c:290
No locals.
#9  0x001b43f7 in -[SDLMain applicationDidFinishLaunching:] (self=0x6120230, _cmd=0x1d32a0, note=0x6116160) at SDLmain.m:197
	status = -1868196602
#10 0x927ec17b in _nsnote_callback ()
No symbol table info available.
#11 0x908563e6 in __CFXNotificationPost ()
No symbol table info available.
#12 0x9084dbd1 in _CFXNotificationPostNotification ()
No symbol table info available.
#13 0x927e4724 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
No symbol table info available.
#14 0x927eb6c9 in -[NSNotificationCenter postNotificationName:object:] ()
No symbol table info available.
#15 0x93294e94 in -[NSApplication _postDidFinishNotification] ()
No symbol table info available.
#16 0x93294d7e in -[NSApplication _sendFinishLaunchingNotification] ()
No symbol table info available.
#17 0x9329487d in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] ()
No symbol table info available.
#18 0x93294448 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
No symbol table info available.
#19 0x927f1e65 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
No symbol table info available.
#20 0x927f1c8f in _NSAppleEventManagerGenericHandler ()
No symbol table info available.
#21 0x915226c5 in aeDispatchAppleEvent ()
No symbol table info available.
#22 0x915225f6 in dispatchEventAndSendReply ()
No symbol table info available.
#23 0x915224c2 in aeProcessAppleEvent ()
No symbol table info available.
#24 0x92def0e4 in AEProcessAppleEvent ()
No symbol table info available.
#25 0x9329263d in _DPSNextEvent ()
No symbol table info available.
#26 0x93292056 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
No symbol table info available.
#27 0x9328bddb in -[NSApplication run] ()
No symbol table info available.
#28 0x001b4339 in CustomApplicationMain (argc=1, argv=-1073744328) at SDLmain.m:175
	pool = (class NSAutoreleasePool *) 0x6107280
	sdlMain = (class SDLMain *) 0x6120230
#29 0x001b471d in main (argc=1, argv=0xbffff638) at SDLmain.m:276
	i = 1

 

Sitting around at the beam ...

 

Log started at 2007-08-20 23:15:18 localtime (CEST)

 

[23:15:18] Frame buffer format: NONE, depth bits: 16, stencil bits: 0 is supported

[23:15:18] Frame buffer format: NONE, depth bits: 24, stencil bits: 0 is supported

[23:15:18] Frame buffer format: NONE, depth bits: 32, stencil bits: 0 is supported

[23:15:18] Frame buffer format: RGBA4, depth bits: 0, stencil bits: 0 is supported

[23:15:18] Frame buffer format: RGBA4, depth bits: 16, stencil bits: 0 is supported

...

[23:39:38] Trying to add sound: 24 (Walk) at 93, 135. Camera: 102, 142

[23:39:38] Inserting new source at index 0/2

[23:39:38] Cookie 954. Playing this sound unless out of range.

[23:39:39] update_streams - Not playing stream. Checking for crowd sound

[23:39:39] update_stream - Playing default crowd sound: 39

[23:39:39] sound.c stream_ogg_file stop_stream called

[23:39:39] Stopping cookie 954 with sound source index 0

[23:39:40] Trying to add sound: 25 (Male pain) at 91, 132. Camera: 102, 142

[23:39:40] Inserting new source at index 0/2

[23:39:40] Cookie 955. Playing this sound unless out of range.

[23:39:40] Trying to add sound: 30 (Bone attack) at 91, 132. Camera: 102, 142

[23:39:40] Inserting new source at index 0/2

[23:39:40] Cookie 956. Playing this sound unless out of range.

[23:39:41] Stopping cookie 953 with sound source index 0

[23:39:41] Trying to add sound: 25 (Male pain) at 91, 132. Camera: 102, 142

[23:39:41] Inserting new source at index 0/1

[23:39:41] Cookie 957. Playing this sound unless out of range.

[23:39:41] Trying to add sound: 24 (Walk) at 94, 122. Camera: 102, 142

[23:39:41] Inserting new source at index 1/2

[23:39:41] Cookie 958. Playing this sound unless out of range.

[23:39:41] Stopping cookie 957 with sound source index 0

[23:39:41] Trying to add sound: 30 (Bone attack) at 91, 132. Camera: 102, 142

[23:39:41] Inserting new source at index 0/2

[23:39:41] Cookie 959. Playing this sound unless out of range.

[23:39:45] Looking for particle sound for: ./particles/teleport_in.part

[23:39:45] Trying to add sound: 17 (Teleport_in) at 99, 140. Camera: 102, 142

Edited by Florian

Share this post


Link to post
Share on other sites

Hmmm, having a quick look I notice mutex stuff. I'm guessing there is some kind of problem locking sounds... not really sure atm.

Share this post


Link to post
Share on other sites

Ok, next big installment of NEW_SOUND. This requires the updated packages found in the first post of this thread.

 

There are now non-player actor sounds, so if you fight a wolf, it will snarl and yelp... or it should. :-P

 

Also, defaults can be defined per map, as well as globally to make things a little more diverse (when we have a full config).

 

There are also some bug fixes and what not.

 

Kibora, it appears to be a MS compiler issue, so I've used the MS VC define around the ov_open calls. Hopefully that will work for everyone, with the smallest number of updated libs required.

 

Florian, your Mac fixes should be in. Given the lack of contact I'm guessing that it's fairly stable (except for the known locking issues). Yay!

Share this post


Link to post
Share on other sites

Florian, your Mac fixes should be in. Given the lack of contact I'm guessing that it's fairly stable (except for the known locking issues). Yay!

Yes, +1 line -1 line :D

 

And regarding the locking issue ...

Log started at 2007-08-21 19:51:07 localtime (CEST)

...

[20:40:49] Cookie 1544. Playing this sound unless out of range.

[20:40:50] Stopping cookie 1543 with sound source index 4

[20:40:52] Stopping cookie 1544 with sound source index 3

[20:40:53] Trying to add sound: 24 (Walk) at 98, 140. Camera: 98, 137

[20:40:53] Creating a new source: 3/3

[20:40:53] Cookie 1545. Playing this sound unless out of range.

...

 

no freeze until now

 

Can't hear a wulf snarling or yelping ... but i hear some creepy sound when i take a bag

 

Hmm, wolf sounds yes, bag sounds no ... (for me)

 

/EDIT

gnaa, with the new sound pack I had several freezes in short time ...

(gdb) bt full
#0  0x900248c7 in semaphore_wait_signal_trap ()
No symbol table info available.
#1  0x90001582 in pthread_mutex_lock ()
No symbol table info available.
#2  0x3003ca78 in SDL_mutexP ()
No symbol table info available.
#3  0x000c7c27 in add_sound_object (type=22, x=105, y=146) at sound.c:2657
	i = 0
	loops = 0
	error = 0
	tx = 99
	ty = 142
	distanceSq = 0
	source = -1
	pSource = (source_data *) 0x0
	pType = (sound_type *) 0x0
	pNewType = (sound_type *) 0x402ec30
	maxDistanceSq = 0
	stage = 1734959711
	sourcePos = {105, 146, 0}
	sourceVel = {0, 0, 0}
	buffer = 0
#4  0x000ab044 in add_fire_at_tile (kind=2, x_tile=105, y_tile=146) at particles.c:617
	x = 52.75
	y = 73.25
	z = 0
	snd = 22
#5  0x0009a24c in process_message_from_server (in_data=0x1c8acb10 "=\a", data_length=9) at multiplayer.c:1102
	text_buf = "\205[Florian]: \201eben weil nen bsd drunter ist fnd ich OSX so toll\000 waere console Pfui-Baeh.\000\000\000\000\001\000\000\000ÿÿÿÿs es dort anpruchsvolle Soft\001\000\000\000\001\000\000\000 als alpha g#D\000\2208\000\200\005\000\000\220\023\001\000\000\000\000\000\200\005\000\000\000\000\000\000\000\000\a\000\000\000áí\177\030\001\000\000\000À 5\031\000\000\200\005¾R\000\220"...
#6  0x00090070 in start_rendering () at main.c:155
	message = (message_t *) 0x1c8acb00
	event = {
 type = 4 '\004', 
 active = {
type = 4 '\004', 
gain = 0 '\000', 
state = 0 '\000'
 }, 
 key = {
type = 4 '\004', 
which = 0 '\000', 
state = 0 '\000', 
keysym = {
  scancode = 39 '\'', 
  sym = 327683, 
  mod = KMOD_NONE, 
  unicode = 0
}
 }, 
 motion = {
type = 4 '\004', 
which = 0 '\000', 
state = 0 '\000', 
x = 807, 
y = 777, 
xrel = 3, 
yrel = 5
 }, 
 button = {
type = 4 '\004', 
which = 0 '\000', 
button = 0 '\000', 
state = 0 '\000', 
x = 807, 
y = 777
 }, 
 jaxis = {
type = 4 '\004', 
which = 0 '\000', 
axis = 0 '\000', 
value = 807
 }, 
 jball = {
type = 4 '\004', 
which = 0 '\000', 
ball = 0 '\000', 
xrel = 807, 
yrel = 777
 }, 
 jhat = {
type = 4 '\004', 
which = 0 '\000', 
hat = 0 '\000', 
value = 0 '\000'
 }, 
 jbutton = {
type = 4 '\004', 
which = 0 '\000', 
button = 0 '\000', 
state = 0 '\000'
 }, 
 resize = {
type = 4 '\004', 
w = 50922279, 
h = 327683
 }, 
 expose = {
type = 4 '\004'
 }, 
 quit = {
type = 4 '\004'
 }, 
 user = {
type = 4 '\004', 
code = 50922279, 
data1 = 0x50003, 
data2 = 0x0
 }, 
 syswm = {
type = 4 '\004', 
msg = 0x3090327
 }
}
	network_thread = (SDL_Thread *) 0x58a3800
	message_queue = (queue_t *) 0x139a2a10
	done = 0
	network_thread_data = {0x139a2a10, 0x646c14}
#7  0x00090571 in SDL_main (argc=1, argv=0x6106f20) at main.c:290
No locals.
#8  0x001b50df in -[SDLMain applicationDidFinishLaunching:] (self=0x6120250, _cmd=0x1d42a0, note=0x6116180) at SDLmain.m:197
	status = -1868196602
#9  0x927ec17b in _nsnote_callback ()
No symbol table info available.
#10 0x908563e6 in __CFXNotificationPost ()
No symbol table info available.
#11 0x9084dbd1 in _CFXNotificationPostNotification ()
No symbol table info available.
#12 0x927e4724 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
No symbol table info available.
#13 0x927eb6c9 in -[NSNotificationCenter postNotificationName:object:] ()
No symbol table info available.
#14 0x93294e94 in -[NSApplication _postDidFinishNotification] ()
No symbol table info available.
#15 0x93294d7e in -[NSApplication _sendFinishLaunchingNotification] ()
No symbol table info available.
#16 0x9329487d in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] ()
No symbol table info available.
#17 0x93294448 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
No symbol table info available.
#18 0x927f1e65 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
No symbol table info available.
#19 0x927f1c8f in _NSAppleEventManagerGenericHandler ()
No symbol table info available.
#20 0x915226c5 in aeDispatchAppleEvent ()
No symbol table info available.
#21 0x915225f6 in dispatchEventAndSendReply ()
No symbol table info available.
#22 0x915224c2 in aeProcessAppleEvent ()
No symbol table info available.
#23 0x92def0e4 in AEProcessAppleEvent ()
No symbol table info available.
#24 0x9329263d in _DPSNextEvent ()
No symbol table info available.
#25 0x93292056 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
No symbol table info available.
#26 0x9328bddb in -[NSApplication run] ()
No symbol table info available.
#27 0x001b5021 in CustomApplicationMain (argc=1, argv=-1073744328) at SDLmain.m:175
	pool = (class NSAutoreleasePool *) 0x6107280
	sdlMain = (class SDLMain *) 0x6120250
#28 0x001b5405 in main (argc=1, argv=0xbffff638) at SDLmain.m:276
	i = 1

Edited by Florian

Share this post


Link to post
Share on other sites

Holly hell, this is impressive, very nice work done :D

Do you think it will be ready for the official client update, which will be late October or November?

Share this post


Link to post
Share on other sites

Overall very good job so far Torg! It really livens up the game a LOT!

 

Is it possible to fade sounds in/out? For example with the crowd sounds, when someone walks away and the crowd sounds stop it's very abrupt.

 

Also I noticed that your footstep sounds are direction sensitive, but it doesn't make sense because you're the one who's walking and you're always at the center. (If you turn left, your footstep sounds come out of the left speaker only, and vise versa)

 

One thing that needed to be tested was battle sounds with many people fighting in range. I took an audio sample of it here(there were many fighters): http://www.eternal-lands.com/misc/fightsounds.ogg

Sometimes it sounds like a rap song :)

Share this post


Link to post
Share on other sites
Holly hell, this is impressive, very nice work done :)
Overall very good job so far Torg! It really livens up the game a LOT!
Thanks!

 

Do you think it will be ready for the official client update, which will be late October or November?

I fully intend on it being ready. There should be plenty of time to do all the work, unless I run into a massive horrible bug. I have an idea about how I'm going to do the rest of what's on my todo list, I just need the time to code it.

 

Is it possible to fade sounds in/out? For example with the crowd sounds, when someone walks away and the crowd sounds stop it's very abrupt.
Well its possible that I've broken it again, but the background and crowd sounds are meant to fade out. It was working, but I have redesigned some of that code recently and I haven't quite finished so haven't fully tested everything.

 

Also I noticed that your footstep sounds are direction sensitive, but it doesn't make sense because you're the one who's walking and you're always at the center. (If you turn left, your footstep sounds come out of the left speaker only, and vise versa)
Yeah, I haven't been looking at "static" sounds code much because I wanted to get the streamed sounds working properly. I'm planning on setting the sounds for your actor as non-directional, I just haven't coded it yet. (It is a work in progress. Basically an idea of what's possible.)

 

One thing that needed to be tested was battle sounds with many people fighting in range. I took an audio sample of it here(there were many fighters): http://www.eternal-lands.com/misc/fightsounds.ogg

Sometimes it sounds like a rap song :)

LOL!! That's funny. I've been wanting to find several people fighting so I could listen to that, but there is never anyone in KF when I'm around.

 

All the actor sounds are triggered by the actor movements so I'm not really sure how we'll deal with this one.

I think better sounds (and similar sounding sounds) would mix together better. There is also a lot of one sound, where as I'd hoped with the different actor animations and sounds linked to those, that there would be more variety. Maybe there isn't enough variety in the code that handles actor movements?

Another possibility is to put a small random delay on playing each sound so that while the commands from the server are coming reasonably constantly and almost in a tempo, they are slightly offset when being played. I don't know how well this will work though.

I personally would prefer not to have to go to prerecorded sequences for the fighting, but most of the code is there (looking at the crowd sounds) if we can't get it to work reasonably.

Share this post


Link to post
Share on other sites

Sorry for not responding sooner, I didn't notice the posts under Florian's backtraces. I need to look a little closer. ;-)

 

Can't hear a wulf snarling or yelping ... but i hear some creepy sound when i take a bag

That sounds like patch 1, not patch 2. ;-)

 

Out of interest, there is a sound for both creating and removing bags... they are (or should be) commented out in the config... but feel free to enable them. The 2 sounds used are orc and dragon, so yeah... I agree on the creepy!

 

In patch 1, one of them was enabled and the sound below it was disabled which was unintended.

 

Florian, your Mac fixes should be in. Given the lack of contact I'm guessing that it's fairly stable (except for the known locking issues). Yay!

Yes, +1 line -1 line :)
Cool.

 

And regarding the locking issue ...

Log started at 2007-08-21 19:51:07 localtime (CEST)

...

[20:40:49] Cookie 1544. Playing this sound unless out of range.

[20:40:50] Stopping cookie 1543 with sound source index 4

[20:40:52] Stopping cookie 1544 with sound source index 3

[20:40:53] Trying to add sound: 24 (Walk) at 98, 140. Camera: 98, 137

[20:40:53] Creating a new source: 3/3

[20:40:53] Cookie 1545. Playing this sound unless out of range.

...

 

no freeze until now

Woohoo!sucessive

 

gnaa, with the new sound pack I had several freezes in short time ...
Ahhh dammit!

 

It looks like another mutex problem. I need to stop avoiding it and get into it. It is likely to take me a while though because don't understand how the mutex's are handled so I need to spend some time learning about it before I'm able to make sense enough to fix it.

 

 

/edit: 2 "Out of interest"'s in adjacent sentances... *shakes head*

Edited by Torg

Share this post


Link to post
Share on other sites

Out of interest, there is a sound for both creating and removing bags... they are (or should be) commented out in the config.

 

:)

 

I got a crash on client exit though:

#0  0x0441161e in mdct_backward ()
No symbol table info available.
#1  0x0440ed04 in mapping0_inverse ()
No symbol table info available.
#2  0x0441c74a in _fetch_and_process_packet ()
No symbol table info available.
#3  0x0441eeb5 in ov_read ()
No symbol table info available.
#4  0x000c4cfc in stream_ogg (buffer=2426, inStream=0x4004048, info=0x193ad370) at sound.c:1792
	data = "\222\000Øÿ\232\000íÿ³\000\024\000Î\000Q\000Í\000\204\000¶\000\217\000§\000\177\000©\000v\000\235\000t\000v\000\\\000X\000/\000k\000\030\000\237\0001\000Ê\000f\000Þ\000\222\000è\000°\000í\000Ë\000ç\000å\000æ\000ÿ\000ÿ\000+\001\037\001i\001\037\001\230\001û\000\226\001Õ\000r\001À\000N\001ª\0005\001\211\000\024\001y\000ð\000\221\000â\000¾\000ð\000Ý\000\002\001Ý\000\b\001Á\000û\000\214\000Õ\000@\000\220\000òÿ?\000¶ÿþÿ\211ÿÐÿ`ÿ\237ÿ@ÿcÿ+ÿ/ÿ\026ÿ\tÿìþÛþ°þ\226þ{þJþaþ\023þbþùýtþúý\215þ\024þ\234þ4þ"...
	size = 63744
	section = 0
	result = 4096
	error = 0
	str = "4096\0003\232\023°<{\030è<O°ú\204+\004°Á\034\00606\232\0230<O°1¬\a\005@_\232\023Ðc\026\006\b=O° \021\000\220$5\232\02306\232\023\0243\232\023\216ø*\004\001\000\000\000\0245\232\023H=O°\204Ð*\004\000¸\e\027\0245\232\023H=O°±Ð*\004 5\232\023\000¸\e\027H=O°z\t\000\000@_\232\023 6\232\023X=O°n\037+\004\001\000\000\000ð4\232\023\230=O°\025!+\004\0245\232\023ð4\232\023\000\000\000\000\001\000\000\000\0245\232\023\204=O°\0245\232\023Í~+\004\220Z\037\006H>O°\230=O°\r-*\001\220Z\037\006"...
	format = 4355
#5  0x000c6220 in process_stream (stream=0x4004030, gain=0.400000006, sleep=0xb04f3ed0, fade=0xb04f3ec4, tx=101, ty=143, old_tx=101, old_ty=143) at sound.c:2176
	buffer = 2426
	error = 0
	state = 4114
	state2 = 4114
	day_time = 1
#6  0x000c6c9e in update_streams (dummy=0x0) at sound.c:2332
	error = 0
	sleep = 500
	music_fade = 0
	sound_fade = 0
	crowd_fade = 0
	i = 0
	day_time = 1
	tx = 101
	ty = 143
	old_tx = 101
	old_ty = 143
	gain = 0.400000006
	cur_map = (map_sound_data *) 0x4006588
#7  0x3002f734 in SDL_Linked_Version ()
No symbol table info available.
#8  0x3003cde6 in SDL_SemWait ()
No symbol table info available.
#9  0x90024227 in _pthread_body ()
No symbol table info available.

 

[10:31:56] Trying to add sound: 24 (Walk) at 102, 139. Camera: 101, 143

[10:31:56] Creating a new source: 0/0

[10:31:56] Cookie 13. Playing this sound unless out of range.

[10:31:58] Stopping cookie 13 with sound source index 0

[10:31:58] Client closed

Share this post


Link to post
Share on other sites
I got a crash on client exit though:

Ahhh yes. That's one of the ones I forgot to list. It's because it doesn't properly stop all the sounds when closing the client so the stream tries to update when it shouldn't.

Share this post


Link to post
Share on other sites

I think for the battle sounds all that we need are more sounds, and have the code be able to move through different sounds for the same character action.

 

Example: Pain

Have at least 3 different pain sounds for each race/sex(although some races can use the same ones of course).

Also do this with other sounds too(I haven't checked the xml files yet to see if this is being done already).

 

But I think if we do this it should be fine as it is.

Share this post


Link to post
Share on other sites

Ok, should have fixed the crowd sounds fading out, but if they don't its because the gain in the config file I distributed is way too high. I've reduced mine to 2.0. It will need tweaking eventually.

 

I have changed the processing of sound names to sound id's for the actors, from every time a sound is played, to when the client loads... so that should reduce a bit of latency when it gets busy with loads of sounds.

 

I started to fix the "your own sounds come from wierd places" bug, but haven't finished it because what I thought would work, broke it more. :-P

 

I probably fixed a couple of other bugs that I can't think of now... *shrug*. Sorry, I haven't got to some of the big ones yet. That will probably take the weekend.

 

 

/edit: Could you tell that was 3am when I wrote that?

Edited by Torg

Share this post


Link to post
Share on other sites

Oh I just remembered something I forgot to ask you..

Can we have inventory sounds? For example, when you pick up/drop something in an inventory box, or when you drink a potion to get a watery like sound, etc...?

Share this post


Link to post
Share on other sites
Can we have inventory sounds? For example, when you pick up/drop something in an inventory box, or when you drink a potion to get a watery like sound, etc...?

Ahhhh. Good idea. It should be roughly possible. I'm assuming it will need to be based on the image id (haven't looked at the code yet), and that means that they won't all be unique, but I don't think that is likely to be an issue.

Share this post


Link to post
Share on other sites

They woudlnt' need to be all unique, like for example, all potions can have the same water/drinking noise. Some won't need any noise.

And the pickup/drop noise can work with all cursors(use, use with, drop, pickup) that lift an item onto your mouse cursor, it can have a lifting noise and a drop down noise(for putting it back in an inv or equip slot). Hope that makes sense :) I've seen other games that have that.

 

PS. Crowd sounds seem to be working really well now with the fade in/outs! :omg:

Share this post


Link to post
Share on other sites

Log started at 2007-08-22 18:56:11 localtime (CEST)

 

[18:56:11] Frame buffer format: NONE, depth bits: 16, stencil bits: 0 is supported

[18:56:11] Frame buffer format: NONE, depth bits: 24, stencil bits: 0 is supported

...

[18:56:28] Cookie 6. Playing this sound unless out of range.

[18:56:28] Trying to add sound: 24 (Walk) at 90, 147. Camera: 0, 0

[18:56:28] Inserting new source at index 1/4

[18:56:28] Not playing this sound as we are out of range! maxDistanceSq: 1225, distanceSq: 29709

[18:56:28] Cookie 7. Playing this sound unless out of range.

[18:56:28] Trying to add sound: 24 (Walk) at 99, 143. Camera: 0, 0

...

[23:04:26] Trying to add sound: 24 (Walk) at 222, 379. Camera: 233, 395

[23:04:26] Inserting new source at index 3/11

[23:04:26] Cookie 1328. Playing this sound unless out of range.

[23:04:34] Stopping cookie 1328 with sound source index 3

[23:04:34] Trying to add sound: 24 (Walk) at 236, 405. Camera: 233, 395

[23:04:34] Inserting new source at index 3/11

[23:04:34] Cookie 1329. Playing this sound unless out of range.

[23:04:37] Stopping cookie 1329 with sound source index 3

[23:05:12] Client closed

[23:05:12] Exiting streams thread. have_music: 1, music_on: 1, have_sound: 1, sound_opts: 3, exit_now: 1

 

 

I'd consider that pretty stable :)

Share this post


Link to post
Share on other sites
PS. Crowd sounds seem to be working really well now with the fade in/outs! :omg:

Log started at 2007-08-22 18:56:11 localtime (CEST)

<snip>

[18:56:28] Trying to add sound: 24 (Walk) at 99, 143. Camera: 0, 0

...

[23:04:26] Trying to add sound: 24 (Walk) at 222, 379. Camera: 233, 395

<snip>

[23:05:12] Exiting streams thread. have_music: 1, music_on: 1, have_sound: 1, sound_opts: 3, exit_now: 1

 

I'd consider that pretty stable :)

Ah yes, i hear wolves now and no bags.

Woohoo!! Getting closer! :-)

 

They woudlnt' need to be all unique, like for example, all potions can have the same water/drinking noise. Some won't need any noise.
I don't expect we'll need a specific sound for an object if it uses the same image as another, unless we want a special sound for a magic item or something. We can cross that bridge when we come to it, certainly not an issue now though.

 

And the pickup/drop noise can work with all cursors(use, use with, drop, pickup) that lift an item onto your mouse cursor, it can have a lifting noise and a drop down noise(for putting it back in an inv or equip slot). Hope that makes sense :o I've seen other games that have that.
Yes, that description makes sense. It should be reasonably easy to do.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×