Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Software Tools SPICE, PCB CAD, speaker design and measurement software, calculators

Software to Predict Directivity
Software to Predict Directivity
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 17th October 2017, 01:39 AM   #1
Patrick Bateman is offline Patrick Bateman  United States
diyAudio Member
 
Patrick Bateman's Avatar
 
Join Date: Oct 2006
Location: San Diego
Default Software to Predict Directivity

For the last day or so, I've been messing around with Horbach Keele filters.

This absolutely blows my mind, but there does not appear to be any software available to simulate the directivity of an array.

I have a difficult time believing this; many of you have built arrays. How on earth is there no software to do this?

Here's a list of what I've looked at:

7) Akabak - it can simulate the directivity of an array, but only at a single frequency.
6) ABEC - can simulate the directivity of an array, but you'll spend the next two years of your life creating the model
5) Hornresp - can simulate the directivity of a single driver, not an array
4) VituixCad - I had really high hopes for this. As far as I can see, it can display the measurements that you make, but I don't see any way for it to simulate the performance of a driver based on it's diameter. IE, it can sim arrays as long as you actually build and measure the array first.
3) XDIR - it can simulate an array. It has no ability to include a crossover. I guess you could get 'in the ballpark' if you calculated the crossover phase shift manually.
2) FRD Consortium's VPR can do arrays, but can't do xovers
1) At the moment, the closing thing to a working array simulator is FRD Consortium's ARPE. But the website has been dead for years, and the software can't do bandpass filters properly. Which means I can't sim Horbach Keele filters.


Please tell me there's software that can do this. I don't want to write my own.
  Reply With Quote
Old 17th October 2017, 03:44 AM   #2
bwaslo is offline bwaslo  United States
Old guy with soldering iron
diyAudio Member
 
bwaslo's Avatar
 
Join Date: May 2006
Location: Portland, Oregon!
Software to Predict Directivity
You know that xcel could effectively do that?
Not that setting it up would be exactly quick....
__________________
[W9MJE] Horn spreadsheet SynergyCalc/; SmallSyns SmallSyns;
Crossover design Xsim; Depot diffusor super-easy diffusors
  Reply With Quote
Old 17th October 2017, 04:37 AM   #3
Patrick Bateman is offline Patrick Bateman  United States
diyAudio Member
 
Patrick Bateman's Avatar
 
Join Date: Oct 2006
Location: San Diego
Microsoft Excel?

The ARPE spreadsheets seems to be the closest I can get to my goal. But it can't do proper bandpass filters.

Might be worthwhile to dig into the source code if it's not protected...
  Reply With Quote
Old 17th October 2017, 05:48 AM   #4
kessito is offline kessito  Netherlands
diyAudio Member
 
Join Date: Sep 2010
Location: Amsterdam
Use abec, really.
If you use the point source model in abec instead of bem it becomes much much more easy and it does what you need it to do.
One day you will have to bite the bullit; if you master abec you can throw all other sim software aside.

Cheers
  Reply With Quote
Old 17th October 2017, 06:16 AM   #5
LightBit is offline LightBit  Slovenia
diyAudio Member
 
LightBit's Avatar
 
Join Date: Aug 2016
I believe BoxSim does what you want, but it is for Visaton drivers.

Currently I'm working on simulation software that can (if I understand) do that. I can give it to you, but it isn't finished yet (only passive filters, ...).
  Reply With Quote
Old 23rd October 2017, 01:09 PM   #6
evilnui is offline evilnui
diyAudio Member
 
Join Date: May 2016
Quote:
Originally Posted by Patrick Bateman View Post
6) ABEC - can simulate the directivity of an array, but you'll spend the next two years of your life creating the model
That depends heavily on what you are modelling. The actual simulation may take longer if you want accuracy up to high frequencies :P

Are you talking direct drivers like the authors you mentioned, or do you want to array synergies or something?

@ kessito
I have not used abec with point models yet. Then again, I used it to play around with horns/waveguides and explicitly desired models closer to a real build.
  Reply With Quote
Old 23rd October 2017, 08:17 PM   #7
Patrick Bateman is offline Patrick Bateman  United States
diyAudio Member
 
Patrick Bateman's Avatar
 
Join Date: Oct 2006
Location: San Diego
Quote:
Originally Posted by evilnui View Post
That depends heavily on what you are modelling. The actual simulation may take longer if you want accuracy up to high frequencies :P

Are you talking direct drivers like the authors you mentioned, or do you want to array synergies or something?

@ kessito
I have not used abec with point models yet. Then again, I used it to play around with horns/waveguides and explicitly desired models closer to a real build.
Click the image to open in full size.

Something like ARPE. Where you can specify the diameter of a radiator and it's location, and ARPE will figure out the polar response.

ABEC can do this, but it's so freakin' dreadful to create all the elements.
  Reply With Quote
Old 23rd October 2017, 08:35 PM   #8
evilnui is offline evilnui
diyAudio Member
 
Join Date: May 2016
Since I don't see any mention of an enclosure there I might be able to give you a slight head start or headache, who knows.

I dont ABEC supporst FIR filters, so I think you have to produce pre-filtered responses per driver and import those in abec...


The following code produces this with 5 different "drivers" with 4 pairs and one in the center. It follows the specs by the aforementioned authors of some 5-way design (though that one was vertical).
Click the image to open in full size.
In the formula section you can change the diameter and distance of individual drivers.

Let me warn you though. For some reason my polar response is lopsided and I have no idea why.

Add as a direct sound script.
Code:
Subdomain_Properties
	Subdomain=1
	ElType=Exterior
	//IBPlane=z

formula
	bh = 20*2.54*0.01 //mm
	bw = 80*2.54*0.01 //mm
	bd = 30*0.01
	d1d = 1*2.54 //cm
	d2d = 2*2.54 //cm
	d2t = 1.5*2.54 //cm
	d3d = 4*2.54 //cm
	d3t = 4.5*2.54
	d4d = 8*2.54 //cm
	d4t = 12.5*2.54
	d5d = 15*2.54 //cm
	d5t = 31.25*2.54

Nodes "N"
	scale=1cm
	11 0 0 0
	21 { d2t} 0 0
	22 {-d2t} 0 0
	31 { d3t} 0 0
	32 {-d3t} 0 0
	41 { d4t} 0 0
	42 {-d4t} 0 0
	51 { d5t} 0 0
	52 {-d5t} 0 0
	
Pressure_Box "drv1"
	Subdomain=1
	DrvGroup=11
	DiaphShape=Disc
	dD=1 in

Pressure_Box "drv2r"
	Subdomain=1
	DrvGroup=21
	DiaphShape=Disc
	dD={d2d*0.01}
	RefNodes="N"
	Position=21
Pressure_Box "drv2l"
	Subdomain=1
	DrvGroup=22
	DiaphShape=Disc
	dD={d2d*0.01}
	RefNodes="N"
	Position=22
	
Pressure_Box "drv3r"
	Subdomain=1
	DrvGroup=31
	DiaphShape=Disc
	dD={d3d*0.01}
	RefNodes="N"
	Position=31
Pressure_Box "drv3l"
	Subdomain=1
	DrvGroup=32
	DiaphShape=Disc
	dD={d3d*0.01}
	RefNodes="N"
	Position=32
	
Pressure_Box "drv4r"
	Subdomain=1
	DrvGroup=41
	DiaphShape=Disc
	dD={d4d*0.01}
	RefNodes="N"
	Position=41
Pressure_Box "drv4l"
	Subdomain=1
	DrvGroup=42
	DiaphShape=Disc
	dD={d4d*0.01}
	RefNodes="N"
	Position=42
	
Pressure_Box "drv5r"
	Subdomain=1
	DrvGroup=51
	DiaphShape=Disc
	dD={d5d*0.01}
	RefNodes="N"
	Position=51
Pressure_Box "drv5l"
	Subdomain=1
	DrvGroup=52
	DiaphShape=Disc
	dD={d5d*0.01}
	RefNodes="N"
	Position=52





And as a bonus here is a bem solution without external CAD help. Solving this takes a while even at settings that won't allow useful resolution at higher frequencies.

Click the image to open in full size.


by bem script
Code:
Control_Solver
	f1				=20Hz; 
	f2				=10kHz;
	MeshFrequency	=10kHz; 
	NumFrequencies	=50; Abscissa=log 
	//Meshing=Delaunay
	//Meshing=BiFu
    Sym=y
    Dim=3D
	//NUC=false

Subdomain_Properties
	Subdomain=1
	ElType=Exterior
	//IBPlane=z

formula
	bh = 20*2.54*0.01 //mm
	bw = 80*2.54*0.01 //mm
	bd = 30*0.01
	d1d = 1*2.54 //cm
	d2d = 2*2.54 //cm
	d2t = 1.5*2.54 //cm
	d3d = 4*2.54 //cm
	d3t = 4.5*2.54
	d4d = 8*2.54 //cm
	d4t = 12.5*2.54
	d5d = 15*2.54 //cm
	d5t = 31.25*2.54

Nodes "N"
	1001 {-bw/2} {bh/2} 0
	1002 {-bw/2} {   0} 0
	1003 { bw/2} {   0} 0
	1004 { bw/2} {bh/2} 0
	1011 {-bw/2} {bh/2} {-bd}
	1012 {-bw/2} {   0} {-bd}
	1013 { bw/2} {   0} {-bd}
	1014 { bw/2} {bh/2} {-bd}
	
Elements "enclosure"
	Subdomain=1
	RefNodes="N"
	MeshFrequency=500Hz
	SwapNormals
	101 1001 1002 1012 1011
	102 1001 1011 1014 1004
	103 1003 1004 1014 1013
	104 1011 1012 1013 1014
	//105 1002 1003 1013 1012
	
Baffle "front"
	Subdomain=1
	Position=z
	MeshFrequency=2kHz
	hB = {bh}
	wB = {bw}
	11 Ref="d1" x=0 y=0
	21 Ref="d2r" x={ d2t*0.01} y=0
	22 Ref="d2l" x={-d2t*0.01} y=0
	31 Ref="d3r" x={ d3t*0.01} y=0
	32 Ref="d3l" x={-d3t*0.01} y=0
	41 Ref="d4r" x={ d4t*0.01} y=0
	42 Ref="d4l" x={-d4t*0.01} y=0
	51 Ref="d5r" x={ d5t*0.01} y=0
	52 Ref="d5l" x={-d5t*0.01} y=0

Diaphragm "d1"
	Subdomain=1
	DrvGroup=11
	dD={d1d*0.01}
	MeshFrequency=10kHz
	simple

Diaphragm "d2r"
	Subdomain=1
	DrvGroup=21
	dD={d2d*0.01}
	simple
Diaphragm "d2l"
	Subdomain=1
	DrvGroup=22
	dD={d2d*0.01}
	simple

Diaphragm "d3r"
	Subdomain=1
	DrvGroup=31
	dD={d3d*0.01}
	MeshFrequency=8kHz
	simple
Diaphragm "d3l"
	Subdomain=1
	DrvGroup=32
	dD={d3d*0.01}
	MeshFrequency=8kHz
	simple

Diaphragm "d4r"
	Subdomain=1
	DrvGroup=41
	dD={d4d*0.01}
	MeshFrequency=4kHz
	simple
Diaphragm "d4l"
	Subdomain=1
	DrvGroup=42
	dD={d4d*0.01}
	MeshFrequency=4kHz
	simple

Diaphragm "d5r"
	Subdomain=1
	DrvGroup=51
	dD={d5d*0.01}
	MeshFrequency=2kHz
	simple
Diaphragm "d5l"
	Subdomain=1
	DrvGroup=52
	dD={d5d*0.01}
	MeshFrequency=2kHz
	simple

Last edited by evilnui; 23rd October 2017 at 08:40 PM.
  Reply With Quote
Old 23rd October 2017, 08:44 PM   #9
Patrick Bateman is offline Patrick Bateman  United States
diyAudio Member
 
Patrick Bateman's Avatar
 
Join Date: Oct 2006
Location: San Diego
Wow, that's very helpful. I tried to learn ABEC using a thread on a German forum. But trying to learn a difficult piece of software via a tutorial in German is an uphill battle.

My home computer is kind of a beast, I have sixteen Xeon cores so sim times aren't much of an issue (Waveguide model)
  Reply With Quote
Old 23rd October 2017, 09:00 PM   #10
evilnui is offline evilnui
diyAudio Member
 
Join Date: May 2016
Perhaps you were on diy-hifi-forum.eu?
I fought my own battles with this software today. Far too often I suffer from silent errors. Everything seems to be simulated, but the results are garbage, or almost nonexistant. It's really annoying to then stare at the scripts to see what could have gone wrong.

Interesting solution with that server. I'll get a taste of that with my next machine, as it might just be an 8 core ryzen

And since you may have missed my sneaky edit above. It is missing the crossover and I think you'll have to feed ABEC with pre-filtered responses for each driver to use FIR filters.
  Reply With Quote

Reply


Software to Predict DirectivityHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Predict this Toggle Circuits behavior imix500 Parts 58 5th September 2006 02:40 AM
What do you predict the Mackie SRM350 will be like? rintincop2 Multi-Way 2 25th September 2004 07:46 AM
How to predict PSRR ? Kilentra Solid State 6 9th July 2004 07:31 PM


New To Site? Need Help?

All times are GMT. The time now is 05:39 PM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 15.00%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Copyright ©1999-2018 diyAudio
Wiki