Acoustic Horn Design – The Easy Way (Ath4)

I just ran the sim for ATH15. Here's what I got:

0v12utV.png

1568 nodes, 3024 triangles in the MSH

hdx8Wye.png

1568 vertices, 3024 faces in the STL

I had to modify the ath15.cfg file to make an error go away. There's a path set for the output. The error doesn't seem to break anything, but it might confuse people.

Here's the line I commented out:

Out.DestDir = "D:\Horns" ; current directory by default
 
By the way, can I mention what a ridiculous achievment this is?

I spent the better part of December 2018 learning ABEC, and while I was doing it, I mentioned to my wife that I wasn't sure if I could pull it off. ABEC is possibly the most difficult piece of software I've ever tried to learn. Besides being miserably difficult to learn, it's also unbelievably time consuming, because even on a modern system it takes a long time to render, and sometimes it seems like it will never end. It's not unusual to spend four hours waiting for a ABEC render to finish.

On top of that, I've been doing this for over two decades. So it's not like I just stumbled into this forum, I have a fairly decent record of learning software. (That's my day job, I do software consulting. My gig is basically learning new software and then implementing it for clients who don't have existing resources that know the software.)

So the idea that your software can simply spit out an ABEC model is just unreal.

What's crazier is that I managed to get it working *without reading the manual.*

Kudos to you sir, this is an incredibly elegant piece of software. I wish Google or Oracle had people like you working there.
 
ZEQrI9Y.png


FIVE MINUTES

That's how long it took me to make this waveguide

Okay, I know a lot of you guys just BUY waveguides, but I'm one of those weirdos who designs my own, and they routinely take me eight hours or more.

And that's just to make the model in 123D.

This absolutely ridiculous piece of software just generated a waveguide in five minutes. All I had to do was plugin my horizontal and vertical beamwidth, and then tweak the depth until the size was what I wanted.

This is nuts.
 
  • Like
Reactions: 1 user
Great, just tried the ATH15 example and it generates the STL and the Abec project files, but ABEC freezes when I try to open the project file. The STL looks fine.

Does it matter that I use Abec Pro?

Where to find the dll should be in the documentation or perhaps distrubte the .dll with your software if gmesh allow it.


EDIT: My bad, it just took some time to load because the mesh was so fine. Much finer than the STL??

OK, I am having a similar issue.

I'm working to fix it.

The first issues is that the "observation.txt" that is generated is nearly empty, and that won't work.

The project generated by the OS waveguide script works fine, so I tried substituting that observation.txt instead, but it still doesn't work.

The wireframe that should appear in the 'Drawing' tab is absent. It is present in the OS waveguide project, so it looks like that script is working.

I'm poring over "solving.txt" to see if that's the issue.
 
In "solving" for the OS waveguide, I noticed that there's one domain, but in the ath15 waveguide, there are zero.

I think the problem is in the mesh that's generated. Here's the header for the OS waveguide mesh generated by ath4.exe:

$MeshFormat
2.2 0 8
$EndMeshFormat
$PhysicalNames
3
2 10 "drive"
2 20 "wg"
2 30 "ifc"
$EndPhysicalNames
$Nodes
849

And here's the header for the ath15 mesh. Note the missing fields.

$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
1568
 
OK, I am 90% sure that I figured it out. ABEC is grinding away right now, so I can't say 100% that this is the solution. But if you're reading impatiently, here's how I got it to work (maybe):

First thing, take a look at the ath4 configuration file for an OS waveguide, which is named "oswg.cfg"

In that file, you'll notice two things:

1) "Out.Write_MSH" is set to "NO"
2) There are a series of settings for "ABEC.Polars"

In order to get the ATH15 waveguide to work, I had to make those lines look like the lines from "oswg.cfg"

Basically I changed "Out.Write_MSH" to "NO" from "YES"
and I added the lines for "ABEC.Polars"

By doing so, I was able to simulate the waveguide in ABEC.

One caveat : I've noticed that ABEC isn't able to make it's pretty 3D pictures. I think that's because there's something missing from "observation.txt"

Having said that, you CAN see the polars in VACs, which is really what we're after, right?
 
dsc_4913.jpg

Here is a JBL PT waveguide

Econowave.jpg


Here's the measurement that Geddes did, from this post : Great Waveguide List

Note - the Geddes measurement is normalized. That will become important in a sec (hang in here...)

2ixPaHK.jpg

Here's the measurement I did. Mine *isn't* normalized.

KSL8jBR.jpg

Here's a waveguide that I made with ATH4 today. It's basically the closest I could get to a JBL progressive transition waveguide, using this software

W2Muhhx.jpg

Here's the predicted polars from ABEC

The super cool thing, is that this entire process took about 90 minutes, which is just ridiculous. A month ago, this would've taken me three or four DAYS.

If you look at the predicted polars, the *shape* and the *consistency* is quite close to my measurement of the JBL PT waveguide.

So I'd say this is a big "win", the ability to create waveguides on the command line, instead of making molds and measuring waveguides. The first waveguide I made, over ten years ago, took a WEEK.

Now, you're probably wondering "why is Bateman's measurement so consistent?" IE, why are the lines in my measurement bundled together so tightly?

This was a problem with my measurement technique. Back in the day, I used to do polars in a straight line. IE, I would move the microphone from left to right.

Pie_Chart_Template-10_Slices.png

When you are measuring a speaker, you should be moving in an ARC. I was moving in a LINE.

The net effect of how I was doing my polars, is that it was making the off-axis response louder than it should have been. That's why the lines are bundled so closely on that measurement. (It also depends on whether you set your reference ON axis or OFF.)

I fixed that issue years ago; all my measurements in the last 2-3 years have been in an arc.
 
EoPjpxZ.png


Looks like it's possible to take the STLs generated by ath4 and load them up in 123D. This is great! It means:

1) they can be 3D printed
2) More importantly... they can be changed. For instance, I could "unitize" this waveguide by adding some midranges.

I am loving this program...

Side note: in order to get it into 123D, I had to load the STL generated by ath4 into Meshmixer, and have Meshmixer repair it. I believe this is because the STL has no thickness whatsoever, it is basically a cloud of x,y,z coordinates, similar to a mesh file. Meshmixer was able to "close" the mesh and turn it into a solid.

After meshmixer took the STL file and turned it into a solid, I used that solid to 'slice' a void out of a block in 123D. Similar to a male/female mold. Meshmixer produces a "male" mold, I turn that into a "female" mold in 123D.
 
Last edited:
Now, you're probably wondering "why is Bateman's measurement so consistent?" IE, why are the lines in my measurement bundled together so tightly?

This was a problem with my measurement technique. Back in the day, I used to do polars in a straight line. IE, I would move the microphone from left to right.

Pie_Chart_Template-10_Slices.png

When you are measuring a speaker, you should be moving in an ARC. I was moving in a LINE.

The net effect of how I was doing my polars, is that it was making the off-axis response louder than it should have been. That's why the lines are bundled so closely on that measurement. (It also depends on whether you set your reference ON axis or OFF.)

I fixed that issue years ago; all my measurements in the last 2-3 years have been in an arc.


Are you using a turntable with a stationary microphone? From the sounds of it, you are keeping the speaker stationary and moving the mic.



A turntable is not a difficult thing to build, a piece of plywood, circle jig and a lazy susan bearing.



Exx6iHn.png
 
In "solving" for the OS waveguide, I noticed that there's one domain, but in the ath15 waveguide, there are zero.

I think the problem is in the mesh that's generated. Here's the header for the OS waveguide mesh generated by ath4.exe:

$MeshFormat
2.2 0 8
$EndMeshFormat
$PhysicalNames
3
2 10 "drive"
2 20 "wg"
2 30 "ifc"
$EndPhysicalNames
$Nodes
849

And here's the header for the ath15 mesh. Note the missing fields.

$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
1568
Only the mesh file intended for ABEC has these physical goups, i.e. names (tags) for the several horn sections - the throat surfrace "drive", horn walls "wg" and the interface "ifc". And also it is only a quarter of the whole horn.

The mesh file in the root project folder is basically just a different form of the STL. You are not supposed to be using this mesh for a simulation. I should give these files a different names I guess.
 
One caveat : I've noticed that ABEC isn't able to make it's pretty 3D pictures. I think that's because there's something missing from "observation.txt"

Having said that, you CAN see the polars in VACs, which is really what we're after, right?
What do you mean by these 3D pictures? If you mean the Fields feature (pressure distrubution accross some plane surface coded in colors), it's no problem to include that. I made these is the past, they are pretty but actually never found a real merit for them. I will make it an option in the next release. It can show you the nearfield (or the interior of the horn) nicely. But what do you really take from that?
 
Last edited:
BTW, this is how Fredrik's mesh for ABEC looks like. I guess it would take years to calculate :)
Unfortunately I don't know the cause. That looks like a question for the Gmsh authors. I will try.

I will talk more about the ABEC part later. There's much to explain I guess.
 

Attachments

  • Fmesh-abec.png
    Fmesh-abec.png
    116.8 KB · Views: 1,289
Last edited:
I could make an option of a dome tweeter instead of a plane wave (which is what it is now) for the throat. At least I believe it would be possible. Only it is not so obvious how to do it. Should I include the surround? How to define the shape? Or does that make any sense at all?

BTW, the wavefront could also by modeled as non-flat. I only don't know if there is anyone who could utilize such feature.
 
Last edited:
This is the icon you are looking for. You must run a command line window first. Search for cmd.exe (usually under C:\Windows\...), make a shortcut icon of it somewhere and in the properties set the directory of your ath4.exe ("Start in"). Then just double-click on the shortcut to get to the tool. Then you can run it as shown in the manual.

Fredrik, maybe your computer just wants to show you what it can do. I wouldn't feel safe...
 

Attachments

  • cmd.png
    cmd.png
    666 bytes · Views: 1,799
Last edited:
This is getting weird. It seems like Gmsh library does different things on different machines. This error comes from the Gmsh SDK when it doesn't recognize the file format requested to export the data. It does that by looking at the file extension (which is hardcoded in the source code!). The only explanation I can imagine is that you have a different Gmsh library, which can't do STL or MSH. But that seems also as a nonsense. I don't know :(

I will add some more detailed debug info. It may still be a bug on my side.

- You can try to comment or delete the line "Out.DestDir = ..." but I doubt that will help.
 
Last edited: