Acoustic Horn Design – The Easy Way (Ath4)

Imbecillen

Are you sure you have the latest release? It's available on my website and should be pretty self-contained, including the documentation. The tool has evolved immensely since it was orginally presented so it might be of limited use to read this thread from the start - many things mentioned are no longer valid, that's true. That's just the way it is.

To get the desired mouth dimensions, just tune the geometry until you get what you want. The tool is so versatile in this regard that specifying mouth dimensions simply as "width x height" would be a very crude definition with lot of assumptions. That said, I could prepare some pre-defined ("tested and proven") shapes where the user would just specify these basic dimensions like coverage angles, etc. - I've thought about this several times. At the moment, this is just not the way it works.

Thanks for your answer! I'm currently working in 4.5.0, it should be the latest? I see, there's no "backward engineering" here.. Fully legit!

One thing I don't really get is how I decide the vertical and horizontal dispersion. Is it possible to make two guidelines, one for each direction? Or am I missing something?
 
That's ø660 x 220mm axial length, I assume? Quite a biggie!

660mm wide and 220 to 440mm high, depth doesnt really matter. I have 600mm to play with. But regarding I'm probably want 60 degree something dispersion I guess it's not gonna get as deep as some horns can get, its more of a waveguide I guess.

Here's a couple of images of what I've made so far. I used some definitions to get close to my measures. These definitions seem to just add a "radius" value. My width measure was 630, aiming for 660mm got me to add 15mm.

Morph.AddRectWidth = 15 ; [mm]
Morph.AddRectHeight = 56 ; [mm]

Render of my first horn attached, 660x440x150mm. No ABEC or other simulations yet. The rest of the stacks are Paraflex right through, designs from High Order Quarterwave Society.
 

Attachments

  • Render1.jpg
    Render1.jpg
    54.1 KB · Views: 468
  • Render2.jpg
    Render2.jpg
    68.5 KB · Views: 478
Last edited:
That's nice. It really looks like you don't have any problems using the tool after all. :up:

Nice to hear, I'm on the right path I think. After all it's immensely complex to design horns the right way so lets see how I do in the simulations 😉

Seems like a well-thought-out mobile dance-stack for small to medium-sized venues.

Yeah that's my intention. "Small" form factor, flexible and with as much dynamic and power as possible. This will do for all parties up to 50ppl in the crowd so I'm happy this far. I've been building the kick-bins this far and damn they slam in the chest! 😀
 
I found some time to try this out but the new version of ABEC is now released 'AKABAK3' with the old version not immediately available so I tried importing the 'tiny' example project into AKABAK3 but get the error:
"Importing whole ABEC project


ERRORS ------------------------
Script problem in section "Infinite_Baffle #4" at identifier "Position": 'offset' is not a valid integer value

"

the simulation however still seems to run but I can't find any results and in the log I get:

ERRORS ------------------------
Range check error
Solving aborted

so I guess somethings up but its the first time I have run this software so I could have done something stupid.

I don't know if this has been answered already, but I just had the same problem and it seem to be due to using the latest AKABAK software. Downgrade to ABEC 3 avaliable at ATH - Advanced Transition Horns and try again 🙂 (Tips from mabat that I thought was a good idea to write out in the thread if someone else stumbles onto it)
 
Importing the generated ABEC project into the new AKABAK is something I haven't tried myself yet nor even looked at how AKABAK actually works now. The old ABEC 3 works like a charm for me so I don't feel any need to change anything but I guess it will become inevitable sooner or later. 🙁
 
Hey all.

I've been away for some time but making progress on a BabylonJS waveguide editor and simulator based on earlier ATH4 ideas.

1). tetgen compiled to js with emscripten.
2). subtract speaker from room = air
3). create a tetrahedral mesh of the air
4). use babylonjs AmmoJS physics engine to apply soft body physics to each tetra.
5). apply a vibration to the throat facet

Theory is we will see a wave emit from the speaker. Will share the code on GitHub soon.
 

Attachments

  • pic.png
    pic.png
    284.6 KB · Views: 677
Last edited:
ammojs is a compile of "bullet physics" to js for ue with BabylonJS
GitHub - bulletphysics/bullet3: Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

We have some tools at our disposal such as particle ray casting and colision and reflection
Babylon.js Playground

Cloth physics example
Babylon.js Playground

You can create a solid particle system within a mesh boundary too.
Babylon.js Playground

And then add physics such as boucning particles on a bouncing ball with gravity included.
Babylon.js Playground


Softbody voluem/pressure demo - addictive.
http://kripken.github.io/ammo.js/examples/webgl_demo_softbody_volume/index.html

I'm heading in the direction of small pockets of air (tetrahedral) being a soft body and applying a vibration of thee throat surface, ie 26mm a flat round facet. So should see a "shock wave" propagate. I can change the colour of the tetra based on the "energy" contained within the soft body.

I'm not expert by any means. Hobby coder that likes to dabble.
 
Last edited:
Importing the generated ABEC project into the new AKABAK is something I haven't tried myself yet nor even looked at how AKABAK actually works now. The old ABEC 3 works like a charm for me so I don't feel any need to change anything but I guess it will become inevitable sooner or later. 🙁

These are some details on getting your ATH4 model (V4.5) to run in Akabak (V3.1.2.b59). I used the "tiny" model that was included as a demo.

1) In the solver.txt file change:
- from : Infinite_Baffle Subdomain=2; Position=z offset=80mm
- to : Infinite_Baffle Subdomain=2; Position=z; offset=80mm
This will prevent the first error that stops the import. Strange that "Position=z;" will error in ABEC, but "Position=z" will error in Akabak.

2) After import is complete, the measurement specification is misinterpreted and needs to be corrected in Akabak. The polar planes (XZ) will be incorrectly imported as (XY) and the measurement offset is interpreted differently in Akabak.
- in the General tab, select Nodes, add point 1000=(0 0 0.081) (ie. the horn mouth)
- in the Observation tab, select the measurement and set horizontal polar plane=ZX, point of rotation=1000 (new node added), reference= SPL_Nodes
- in the Observation tab, select the measurement and set the vertical polar plane=XZ (it makes a difference), point of rotation=1000, reference nodes=SPL_Nodes

Then you are good to go.

The Akabak project file is attached if you want to try it.
 

Attachments

These are some details on getting your ATH4 model (V4.5) to run in Akabak (V3.1.2.b59). I used the "tiny" model that was included as a demo.

1) In the solver.txt file change:
- from : Infinite_Baffle Subdomain=2; Position=z offset=80mm
- to : Infinite_Baffle Subdomain=2; Position=z; offset=80mm
This will prevent the first error that stops the import. Strange that "Position=z;" will error in ABEC, but "Position=z" will error in Akabak.

2) After import is complete, the measurement specification is misinterpreted and needs to be corrected in Akabak. The polar planes (XZ) will be incorrectly imported as (XY) and the measurement offset is interpreted differently in Akabak.
- in the General tab, select Nodes, add point 1000=(0 0 0.081) (ie. the horn mouth)
- in the Observation tab, select the measurement and set horizontal polar plane=ZX, point of rotation=1000 (new node added), reference= SPL_Nodes
- in the Observation tab, select the measurement and set the vertical polar plane=XZ (it makes a difference), point of rotation=1000, reference nodes=SPL_Nodes

Then you are good to go.

The Akabak project file is attached if you want to try it.

Wow, truly a nice hack! Thanks for sharing!