Hornresp

Such can be accomplished in nothing more than an Excel spreadsheet with the Developer/VBA tab turned on.

I always wondered how that was done - embedding a program in a spreadsheet . Can you point me at a book or online resource that I can reference to start down that learning curve? Or should I just find that tab, turn it on, and start playing?

Thanks,
Jack
 
Excel/VBA

I always wondered how that was done - embedding a program in a spreadsheet . Can you point me at a book or online resource that I can reference to start down that learning curve? Or should I just find that tab, turn it on, and start playing?

Thanks,
Jack

Hi Jack,

To Activate the Developer Tab in Excel 2010: File -> Options -> Customize_ Ribbon -> Developer

Other versions of Excel will have a similar pathway.

Also settings in the Trust Center may need attention to allow the macros you write to execute.

If you develop a serious interest in Excel/VBA programming, here are three important sources of information and code examples:

1) MS Development Network
https://msdn.microsoft.com/en-us/library/office/ee814737(v=office.14).aspx

2) John Walkenbach’s Website
The Spreadsheet Page - By John Walkenbach
Excel Files: For Developers

3) Chip Pearson’s Website
CPearson.com Topic Index

If you need specific help, send me a private message.

Regards,

WHG
 
nolo contendere

Not even a little bit.

A couple of things I exclusively requested were Driver Power and one component of Diaphragm Pressure. A couple of things that many people requested (myself included) were Filling (stuffing), the Filter Wizard and adding sliders to everything, not just the Tapped Horn Wizard (which became the Loudspeaker Wizard). All of these (with the exception of stuffing) are exclusive features not seen anywhere besides Akabak, and in the case of the sliders not even in Akabak. These features have made Hornresp an exponentially better program (especially the Filter Wizard), and some of these things probably never would have been added if not requested. I see this as a valuable contribution. It's not coding or debugging but few of us are programmers. If you are a programmer why aren't you volunteering?

Also consider the fact that since few of us are programmers and none of us know how this is coded, we have no idea whatsoever how much work any given request will be. I'm pretty sure that in at least a few cases the requests are pretty simple to add, just a few lines of math, a few lines of code, a new graph. But I'm not a programmer so I really don't know.

I'm looking at over 500 pages of feedback in this thread alone and countless more in this forum and around the internet which serves many purposes like quality control, bug finding, theoretical discussion on the purpose and functionality of features and yes, even feature requests. If you think there's no value in any of this you are delusional.

I think you are trying to imply that as a group we are ungrateful and unwilling to help and I resent that. This is by far my favorite and most useful and used simulator and I'd do anything I could to help, I've made that very clear at least a few times.

But this isn't what this thread is for so I'll leave it with this thought - part of the reason this program is so ubiquitous is because the users love it and promote it everywhere and every chance we can and there's value in that too. If David were programming for an audience of one (himself) Hornresp may not be what it is today. I'm not trying to take any credit here, all credit is due to Mr McBean, but an important part of any famous institution are it's fans. So please don't try to imply that we are ungrateful or unwilling to help any any way we can. I'm not a programmer and there's only so much I can do. For the most part he has it all under control and doesn't need any help. I would assume he would ask for help if he wanted it.

David says he likes the status quo; so, as far as I am concerned, the issues I raised here just vaporized. When an impact is produced by collective action, then no single individual should necessarily be held responsible for it.

WHG
 
Last edited:
it would also be nice to do an Od hyp-ex sim.

Hi just a guy,

Would it be possible for you to use AkAbak to simulate the system power response of a typical two-segment offset driver hyperbolic-exponential horn having constant values of S1, S2, S3, L12 and L23, but with T = 0, T = 0.5, T = 0.7 and T = 1? I would be interested to know if there is much difference in the system results for various values of T.

I would do it myself, but unfortunately I cannot run 16-bit applications (i.e. AkAbak) on my Windows 7 "Home Premium" Operating System.

Thanks in anticipation of another "contribution" :).

Kind regards,

David
 
I'd like to be able to simulate 8th order BP in HR.

Hi Josh,

Just to clarify, by "8th order BP" do you mean a system configured as shown in the attachment? Thanks.

Kind regards,

David
 

Attachments

  • Attach_1.png
    Attach_1.png
    5.1 KB · Views: 158
Try This!

>snip<

I would do it myself, but unfortunately I cannot run 16-bit applications (i.e. AkAbak) on my Windows 7 "Home Premium" Operating System.

Thanks in anticipation of another "contribution" :).

Kind regards,

David


David,

This reference may be of help.

WHG

From the Microsoft Press book Windows 7 Administrator’s Pocket Consultant by William R. Stanek.

You can help prevent one 16-bit or MS-DOS-based application from causing others to hang or crash by running it in a separate memory space. To do this, follow these steps:
1. Right-click the program’s shortcut icon and then click Properties. (If the program doesn’t have a shortcut, create one, and then open the shortcut’s Properties dialog box.)
2. On the Shortcut tab, click the Advanced button. This displays the Advanced Properties dialog box.
3. Select the Run In Separate Memory Space check box.
4. Click OK twice to close all open dialog boxes and save the changes.

NOTE: Running a program in a separate memory space uses additional memory. However, you’ll usually find that the program is more responsive. Another added benefit is that you are able to run multiple instances of the program—as long as all the instances are running in separate memory spaces.
 
Continued

David,

This reference may be of help.

WHG

From the Microsoft Press book Windows 7 Administrator’s Pocket Consultant by William R. Stanek.

You can help prevent one 16-bit or MS-DOS-based application from causing others to hang or crash by running it in a separate memory space. To do this, follow these steps:
1. Right-click the program’s shortcut icon and then click Properties. (If the program doesn’t have a shortcut, create one, and then open the shortcut’s Properties dialog box.)
2. On the Shortcut tab, click the Advanced button. This displays the Advanced Properties dialog box.
3. Select the Run In Separate Memory Space check box.
4. Click OK twice to close all open dialog boxes and save the changes.

NOTE: Running a program in a separate memory space uses additional memory. However, you’ll usually find that the program is more responsive. Another added benefit is that you are able to run multiple instances of the program—as long as all the instances are running in separate memory spaces.

If you are running 64-Bit try this, but put it in a stand-alone directory, such as C:\DOSBox\

DOSBox, an x86 emulator with DOS
 
Last edited:
Criteria Met By An Alternate Approach

Hi David,

At the connection points, not only should tangents match

tan(a) = y' = dy/dx,

but also radii of curvature

R = ((1 + y'^2)^(3/2))/y''.

These requirements may be satisfied (at both ends) by a Clothoid segment [1].

I have written a function in Excel/VBA for the required Fresnel Integrals based on Boersma's algorithm.

If there is interest I will publish it here.

Regards,

Bill

n.b., this curve makes a very good horn bend /fold as well.


Reference [1]

http://www.math.zju.edu.cn/webpagenew/uploadfiles/attachfiles/200942733837187.pdf

This treatise provides the necessary mathematical rigor to generate a C-Bezier Curve, C-shaped in profile that will match radius of curvature [R] and tangent angle [a] of the two junction points necessary for horn adapter design. Actually you could model an entire horn using this regime to determine its profile al la shape optimization (Uppsala). The interesting variant here is where [Rt] < [Rm]. Here curvature declines as the horn grows in size, which yields a dispersive horn similar to that of Freehafer .

Regards,

WHG
 
Last edited:
Hi just a guy,

Would it be possible for you to use AkAbak to simulate the system power response of a typical two-segment offset driver hyperbolic-exponential horn having constant values of S1, S2, S3, L12 and L23, but with T = 0, T = 0.5, T = 0.7 and T = 1? I would be interested to know if there is much difference in the system results for various values of T.

I would do it myself, but unfortunately I cannot run 16-bit applications (i.e. AkAbak) on my Windows 7 "Home Premium" Operating System.

Thanks in anticipation of another "contribution" :).

Kind regards,

David

Sure.

Just to make sure we are on the same page, Akabak sims power response by default, right? So you just want response graphs? And when you say "constant values" you mean the same values in each sim with only a changing T, not constant csa (straight tl). These are my assumptions anyway.

So I'm not sure how typical this flh is, at 4000 liters and with four 18 inch drivers it's in between a normal single cab flh and a full size ideal horn derived from Leach's math. So it's kind of bigger than typical but smaller than ideal? Is that ok? I can do it with a different design if you like, send me any Hornresp file you like and I'll run it.

So here's the results. Everything is exactly the same in each of these except T. Shown at 0, .5, .7 and 1 T.

An externally hosted image should be here but it was not working when we last tested it.


Admittedly not too much difference between .5 and 1 T.

Now just for comparison here's the Hornresp file for the same thing with Exp segments so you can see the horn and verify I did everything right.

An externally hosted image should be here but it was not working when we last tested it.


Here's the scrpt so you can verify that is right.

|DATA EXPORTED FROM HORNRESP - RESONANCES NOT MASKED

|COMMENT: big horn

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|REQUIRED AKABAK SETTINGS:

|File > Preferences > Physical system constants:

|Sound velocity c = 344m/s
|Medium density rho = 1.205kg/m3

|Sum > Acoustic power:

|Frequency range = 10Hz to 20kHz
|Points = 533
|Input voltage = 100.00V rms
|Integration = 2Pi-sr
|Integration steps = 1 degree ... 1 degree
|Integration method = Cross

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Def_Const |Hornresp Input Parameter Values
{
|Length, area and volume values converted to metres, square metres and cubic metres:

S1 = 2000.00e-4; |Horn segment 1 throat area (sq m)
S2 = 2290.10e-4; |Horn segment 1 mouth area and horn segment 2 throat area (sq m)
S3 = 20000.00e-4; |Horn segment 2 mouth area (sq m)

L12 = 25.00e-2; |Horn segment 1 axial length (m)
L23 = 400.00e-2; |Horn segment 2 axial length (m)

T = 1.00e-0; |Hyperbolic-exponential horn flare parameter

Vrc = 600.00e-3; |Rear chamber volume (cubic m)
Lrc = 66.00e-2; |Rear chamber average length (m)

Vtc = 10000.00e-6; |Throat chamber volume (cubic m)
Atc = 2400.00e-4; |Throat chamber cross-sectional area (sq m)

|Parameter Conversions:

Sd = 4840.00e-4; |Total diaphragm area for 4 parallel drivers (sq m)

Arc = Vrc / Lrc;

Ltc = Vtc / Atc;
}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|Network node numbers for this offset driver horn system:

| 0-Voltage-1
| |
|4-Chamber-5-Driver-6-Chamber-
| |
| 8-Segment-9-Segment-10-Radiator

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Def_Driver 'Driver'

Sd=1210.00cm2
Bl=26.83Tm
Cms=4.62E-05m/N
Rms=21.60Ns/m
fs=31.90Hz |Mmd = 514.58g not recognised by AkAbak, fs calculated and used instead
Le=3.50mH
Re=4.00ohm
ExpoLe=1

System 'System'

Driver Def='Driver''Driver 11'
Node=1=0=5=6
Driver Def='Driver''Driver 21'
Node=1=0=5=6
Driver Def='Driver''Driver 31'
Node=1=0=5=6
Driver Def='Driver''Driver 41'
Node=1=0=5=6

Duct 'Rear chamber'
Node=4=5
SD={Arc}
Len={Lrc}
Visc=0

Duct 'Throat chamber'
Node=6=9
SD={Atc}
Len={Ltc}
Visc=0

Waveguide 'Horn segment 1'
Node=8=9
STh={S1}
SMo={S2}
Len={L12}
T={T}

Waveguide 'Horn segment 2'
Node=9=10
STh={S2}
SMo={S3}
Len={L23}
T={T}

Radiator 'Horn mouth'
Node=10
SD={S3}

And just for comparison this is what it looks like when I run it through as a single segment Nd horn. The effect is not quite as subtle, so it looks like the offset negates a bit of the T difference. In the previous sim the difference was about 1 db between .5 and 1 T, here it's 1.5 or so.

Same horn but single segment Nd shown at .5 and 1 T.

An externally hosted image should be here but it was not working when we last tested it.


If there's anything else you want to see or something you want changed in this sim let me know, always happy to help.
 
Last edited:
If you are running 64-Bit try this, but put it in a stand-alone directory, such as C:\DOSBox\

DOSBox, an x86 emulator with DOS

In the past I've used Oracle VM Virtualbox. https://www.virtualbox.org/

It works but it is a pain.

Also when I put my whole horn suite (including Sketchup and Virtualbox) on my I7 laptop with 8 Gb RAM and Win7, the computer runs hot like a demon and burns my lap. Also randomly gives me blue screen of death and catastrophic system failure. This is on a fresh install of Windows with no other programs installed. The computer runs very cool without Sketchup and Virtualbox and I've never seen a BSOD since I removed those programs.

SO I keep a small 5 year old netbook with a tiny Atom processor, 1 Gb RAM and WinXP for Akabak and Sketchup. The little netbook does it all happily and doesn't whine like a little schoolgirl like my "good" laptop.

I don't really have too much interest in troubleshooting, it's a fresh install of Windows with nothing else on it so it either is going to work or it isn't. It might be a problem with Acer proprietary software (although I got rid of all the bloatware and junk) but maybe they tweaked the OS in ways that don't agree with my choice of software extras. Who knows, who cares, the little netbook saves the day and you can get one for a couple hundred dollars. I happened to have one sitting unused, so now it's used.
 
Hi just a guy,

Just to make sure we are on the same page, Akabak sims power response by default, right?

I seem to recall that pressure response is the default. This is what you have provided, so I suspect that it is most likely to be the case. To calculate power response in AkAbak, select the Sum > Acoustic power menu command. The only reason I favoured acoustical power initially was so that I would be able to confirm that the AkAbak T = 1 result was the same as the Hornresp unmasked exponential result (purely as a sanity check). Your pressure response results are just fine though, as they still show that there is not much difference as the value of T is changed.

And when you say "constant values" you mean the same values in each sim with only a changing T, not constant csa (straight tl).

Correct. Sorry for the ambiguity :).

So here's the results. Everything is exactly the same in each of these except T. Shown at 0, .5, .7 and 1 T.

Excellent - many thanks! The results seem to suggest that there is little to be gained by using a hyperbolic-exponential flare rather than a conventional exponential flare in a typical offset driver horn system.

If there's anything else you want to see or something you want changed in this sim let me know, always happy to help.

Thanks - all your contributions to date have been most valuable.

Kind regards,

David
 
Excellent - many thanks! The results seem to suggest that there is little to be gained by using a hyperbolic-exponential flare rather than a conventional exponential flare in a typical offset driver horn system.

I anticipated this response and while I certainly won't argue that it is a necessity but I'll reiterate that it would be nice to have. Even with such a small change in response, there will be a small difference on each graph, the response will be slightly different, the excursion, impedance, driver power, the schematic, and basically everything will be a bit different.

But the biggest problem is that the Horn Data export will be useless. You can't lay out a .5 T horn using 1 T dimension data. And this is one thing that Akabak can't help with either.

So I understand your position but it still would be nice to have. If it was closer to 5 minutes of work to implement I think it would be a worthwhile addition. If it was closer to a week of work I don't know if that could be justified, especially in light of the fact that there are probably a few other things that would be even better to have as new features. But as always it's up to you and clearly I've survived without it up until now.
 
From a few years ago. Should be said from time to time:

I have read papers by a great deal of gentlemen that have been called audio giants or pinacle figures. I have never had the priviledge of speaking to them or any form of ciommunication.

It is indeed a rare thing to be able to communicate with the giant whose shoulders we stand on. We all start from a point of knowing little to nothing. Then we add on this with experience. Those who have a great deal of experience like David are indeed showing us the way to get things accomplished not by shear trial and error but with wisdom and clear reasoning. So being able to ask questions and get answers from someone who has been at this for so long a time is indeed a great priviledge. To be able to say that he figured out something before Don Keele for instance is wonderfull. I have no doubt what so ever in the work Mr. McBean has furnished us. I thank you for being able to broaden my own understanding of horn design and function. And I am at this point as a designer because of being pointed in the right direction by Mr. McBean.

You have my profound thanks!
 
Hi just a guy,

But the biggest problem is that the Horn Data export will be useless. You can't lay out a .5 T horn using 1 T dimension data. And this is one thing that Akabak can't help with either.

Not sure that I understand. Why can't you just export the horn dimension data for a single segment T = 0.5 hyperbolic-exponential horn from Hornresp, and then use that information to lay out the design, inserting the offset driver at the appropriate point? Any simulations would of course have to be done in AkAbak.

If it was closer to 5 minutes of work to implement I think it would be a worthwhile addition. If it was closer to a week of work I don't know if that could be justified, especially in light of the fact that there are probably a few other things that would be even better to have as new features.

If it was only a week's work, then no question - it would definitely be implemented :). Unfortunately in this case, because of the way that the program structure has evolved over time, we are talking months, not weeks, and a massive amount of work, to fully integrate the feature seamlessly into Hornresp.

Incidentally, I have already spent several weeks working on the next feature I hope to release, and have some time to go yet on that one, before it will be ready :)

Kind regards,

David