or Connect
AVS › AVS Forum › Home Entertainment & Theater Builder › Dedicated Theater Design & Construction › *free* software to help determine your first reflection points
New Posts  All Forums:Forum Nav:

*free* software to help determine your first reflection points

post #1 of 249
Thread Starter 
Hi guys. I've just finished writing a C++ DirectX 9.0c program to help you find first
reflection points in your theatre rooms.



Instructions
---------------

First of all, you can fly around the scene using W,A,S,D,Q, and Z on the keyboard, and left click and drag over the scene to pan your view around. It is very much like a camera from a first person shooter game.

To find your reflection points, first adjust the dimensions of your room, then adjust the size and location of the front/center channels. Each of these speakers is represented by a colored rectangle (acoustic energy is simulated coming off the front face of the speaker only -- but I think this is valid for first reflections). Next, adjust the front/rear listener position and size (the green boxes). Essentially you want these to completely cover all possible locations for people's ears in your theatre. The smaller these boxes the tighter your reflection zones will be. Adjust the screen if you want -- it is really just here to assist you with scale when setting up the room -- it is considered transparent as far as sound is concerned. Finally, click the "find reflections" button and watch it go. Save your room setup if you like and you can reload it later on.

It plays nice with others, so if you reduce it to the taskbar, CPU utilization will drop to 0.

edit: new version 1.02 posted, choose .rar or .zip:
http://www.kulkarnicorp.com/frv1.02.rar
http://www.kulkarnicorp.com/frv1.02.zip

It seems MS has some issues with some of their directX downloads and they are missing some DLL's. If you get an error about missing dlls, you can resolve that issue here (thanks to vipercompany for finding this):
http://www.toymaker.info/Games/html/d3dx_dlls.html

changes from v1.01 to v1.02:
Fixed bug causing "illegal operation" crash when starting up in less than 24-bit color depth (thx to ecrabb for finding it!).
Fixed bug where raytracer was not reset after room loaded from disk.
More raytracing speed improvements. v1.0 was 31 seconds, v1.02 is 11 seconds to trace 1,000,000 rays for default setup on my machine.
Listening positions can now be moved up to 20' forward off back wall
Rewrite of GUI rendering code makes it 10% faster.
Tweaked mouse click detection areas around buttons/sliders.

changes from v1.0 to v1.01:
A few more startup checks to help older video cards.
Major improvement in raytracing speed. On my machine, the default room took 31 seconds in v1.0. It takes 14 seconds in v1.01.


Requirements:

Windows XP SP2
DirectX 9.0c


I don't have Vista, but as far as I know it won't work, because MS has no plans
for backwards compatibility between DirectX 10 and DirectX 9.0c. Older versions
of DirectX will not work either.

I have done my utmost to make sure this program functions correctly, including testing on several machines, virus-scanning the archive before posting it, etc. I don't expect any problems, but please keep in mind that you use the tool at your own discretion.

Feel free to email me with any bugs, suggestions, or requests. My email
is in the title bar of the application (see the screenshot).

At the suggestion of a forum member, i've added a paypal email for donations.
If you feel the tool has helped you out and you'd like to support further development, you can paypal any amount to smith@kulkarnicorp.com. Thanks
post #2 of 249
As a beta tester for this app I can HIGHLY recommend it! I'm building my panels based on it and I think the results will be great.

Thanks to Chris for putting this together and his patience in dealing with my dumb questions! And follow-up thanks to Bryan Pape (bpape on here) for all of his assistance in getting the correct dampening material for my theater and answering my questions.

-drin
post #3 of 249
Thanks for all your hard work and skills.
This is timely because I just finished my theater and am having sound issues. Of course the "other issues" will be addressed by a psychiatric professional.
post #4 of 249
Just installed it, looks great. Thanks for your work!!!
post #5 of 249
Thread Starter 
Thanks drin, and dndwilson + Josh you're welcome. I hope it helps somebody avoid the "slide a mirror down the wall" ordeal. Also it's kinda hard to slide a mirror down your ceiling, and this app will do that for you too.
post #6 of 249
Wow, very cool. So, timely, too. I'll be painting in about two weeks and I really wasn't relishing the thought of "sliding a mirror down the wall" on my brand new paint job.

One note... the app won't work in Parallels on the Mac (it does now - see EDIT below). I get the error "16-bit depth buffer is not supported on this hardware". Parallels renders in software (no hardware acceleration) so I assume it's a Parallels video issue - I just thought I'd mention it for others.

Regardless, thanks so much for a cool tool!

SC

EDIT - Now six months later (November 2007), FRV 1.02 works perfectly in Parallels Desktop 3.0 Build 4560.0.
post #7 of 249
Installed DirectX 9.0c

Starting up program gives error "Direct3D initialization failed. See console.txt for more information."

Here is the contents of console.txt

--------------------------------------

Direct3D Information

--------------------------------------

Initializing Direct3D
Creating Direct3D Object
Creating Direct3D Device
Querying Direct3D Device Capabilities
D3DFVFCAPS_PSIZE support detected
Creating Vertex Buffers
Creating Index Buffers
Filling Index Buffers
Loading Texture textures.png
Texture Load Failed D3D error code: -2005529767
Failed loading texture textures.png

Any Suggestions?

Thanks,
Rusty
post #8 of 249
AMAZING program!

I spent hours in Autocad drawing lines to get the reflection points. This program could have saved me tons of time to get a basic layout.
post #9 of 249
Thread Starter 
ecrabb: To be honest I never considered emulation on a Mac. I'll do some reading about Parallels and see if I can get that working for you.

Rusty: Make sure you unpack all the files from the archive. One of them is called textures.png and it needs to be in the same directory as the .exe or else the app will give the error you stated. textures.png is just an image that contains all the gui stuff and the picture used for the walls of the theatre.

crackyflipside: thx again. Glad people are liking it. It makes all those hours worth it.
post #10 of 249
Quote:
Originally Posted by jeffreylebowski View Post

ecrabb: To be honest I never considered emulation on a Mac. I'll do some reading about Parallels and see if I can get that working for you.

Wow, thanks. It may not be worth much of your time considering how few people would use it that way... but, I'm guessing there will be more and more. Thanks, though - and I'll help however I can!

SC
post #11 of 249
Already put a link in my sig
post #12 of 249
Very nice work, this will be great when I get to this point! This should be a sticky!!!
post #13 of 249
Thread Starter 
Thx again everyone.

ecrabb,

After doing some searching, it looks like Parallels doesn't support DirectX yet, but they are planning it for their next release. It should work automatically once they include full DirectX emulation.
post #14 of 249
Quote:
Originally Posted by jeffreylebowski View Post

ecrabb:

Rusty: Make sure you unpack all the files from the archive. One of them is called textures.png and it needs to be in the same directory as the .exe or else the app will give the error you stated. textures.png is just an image that contains all the gui stuff and the picture used for the walls of the theatre.

Yep, textures.png was there so I deleted and extracted again. Works great now.

Thanks!
post #15 of 249
Quote:
Originally Posted by jeffreylebowski View Post

After doing some searching, it looks like Parallels doesn't support DirectX yet, but they are planning it for their next release. It should work automatically once they include full DirectX emulation.

That makes sense. I knew Cinebench (Maxon Cinema 4D benchmarking app) worked in Parallels, but obviously that's because Cinebench (and Cinema) are OpenGL-based as opposed to DirectX. Anyway, thanks for checking it out - I'm not up on all the Windows API's - DirectThis, DirectThat - I can't keep up with two OS's. Good thing I have a plain old Windows box around... thanks!

SC
post #16 of 249
My front speakers are above my screen, but on an angled wall that directs the speakers towards the listening area (it would be the same if they were on a flat wall, but angled down towards the seating). Will this program take that into account, or will all the reflection points be too high?
post #17 of 249
Thread Starter 
Hi Stew. The tool will still work in your case. The reflection points detected won't be too high. It is the relative position of the speaker and the listener that determines the location of the reflected points.

The best way I can describe this is imagine if you were doing the "slider a mirror down the wall" test. You'd still see the speaker when the mirror reached a specific point on the wall, whether the speaker was rotated or not, right? You wouldn't need to raise the mirror higher on the wall just because the speaker was rotated.
post #18 of 249
Quote:
Originally Posted by jeffreylebowski View Post

Hi Stew. The tool will still work in your case. The reflection points detected won't be too high. It is the relative position of the speaker and the listener that determines the location of the reflected points.

The best way I can describe this is imagine if you were doing the "slider a mirror down the wall" test. You'd still see the speaker when the mirror reached a specific point on the wall, whether the speaker was rotated or not, right? You wouldn't need to raise the mirror higher on the wall just because the speaker was rotated.

That's true, but I always assumed that the mirror technique would be inaccurate for the same reason.
post #19 of 249
Thread Starter 
Nope. If you're talking about the reflection points being higher because the speaker is above the screen, you are correct, but both the mirror test and this tool take that into account. However the rotation won't give you problems.
post #20 of 249
I downloaded the file, extracted it to a folder on my desktop then tried to run first.exe and I get the error "unable to locate component: This application has failed to start because d3dx9_32.dll was not found. Re-installing the application may fix the problem."

Any Ideas? As I've made panels, I just need to know for sure where to hang them up

I even re-installed directx9.0c
post #21 of 249
Never mind, got it working. If anyone else is having similar errors, I went to this site and clicked on the d3dx9_32.dll and it installed it for me, now the program works. Great Job by the way.

http://www.toymaker.info/Games/html/d3dx_dlls.html

Wow this program is great! I just wish there was some way to make everything move to the left a bit. (since my whole system is not in the exact center of the room, it is about 3 feet to the left
post #22 of 249
Thread Starter 
Hi vipercompany. So you would need all 3 speakers moved to one side of the room? I'll add that to my "features for the next version" list.
post #23 of 249
Quote:
Originally Posted by jeffreylebowski View Post

Hi vipercompany. So you would need all 3 speakers moved to one side of the room? I'll add that to my "features for the next version" list.

Correct, even the screen and the seating. Also another thing, is my front row ear position is about 13 feet from the back wall, the max in the program is 10 feet.Thank you again for all of your hard work!
post #24 of 249
Thanks !!
post #25 of 249
Why does my view of the packed file ONLY have the textures.png?
post #26 of 249
i smell a sticky for this
post #27 of 249
go the file to unpack but now getting the dll error....ugh

tried the website mentioned with no luck...help
post #28 of 249
now this....

--------------------------------------

Direct3D Information

--------------------------------------

Initializing Direct3D

Creating Direct3D Object

Creating Direct3D Device

Failed creating D3D9 Device with error code: 0x8876086c
post #29 of 249
Thread Starter 
vipercompany,

I'll add a few more features in v1.1 that allow you to place the speakers/listeners how you need to.

Texas Aggie,

Do you know what video card you have? If you can give me some of the details i'll see what I can find out using that and the error code you posted. thanks

edit: Also please run dxdiag (start->run then type dxdiag and hit enter), go to the display tab, hit "test direct3D" and post your results.

edit2: TexasAggie I just posted a new version 1.01 with some more startup checks specifically for older video cards. Please give it a try and see if it works for you.
post #30 of 249
jeffreylebowski, you have provided us an excellent tool! My heartfelt thanks for taking the time and sharing this with the rest of us!

I found it to work perfectly first time around, with no bugs. Being able to 'fly through' is also an excellent feature.





Time to start planning my panels......
New Posts  All Forums:Forum Nav:
  Return Home
AVS › AVS Forum › Home Entertainment & Theater Builder › Dedicated Theater Design & Construction › *free* software to help determine your first reflection points