Baselworld is only a few weeks away. Getting the latest news is easy, Click Here for info on how to join the Watchuseek.com newsletter list. Follow our team for updates featuring event coverage, new product unveilings, watch industry news & more!

In this thread I am going to remove some of the mystery around AkAbak, and show you how to move around this interesting software. This will start out as a beginners guide, but I will continue as long as needed. Once you get the feel down, you can get good really quickly though.

There are several guides posted around the net, but they seem a little heavy for me, and I can use the program. I am going to really simplify this as best as I can to get you familiarized with how things work, so you can hit the ground running.

I am going to post various lessons in different posts and link to them all from a master list here. Please feel free to ask questions you may have along the way.

What is interesting(different) about the program is its use of nodes. You can connect any node to any other node, with no practical limit to the amount of nodes. This means you can virtually simulate anything you can come up with.

If you don't get the node concept right away, think of it like a hole in a bread board, or the round piece in a Tinker Toy set.

You load the program up, but now what do you do?
Let's click File>New script

Now a blank text window pops up. Yes, AkAbak is a text based. Don't lose heart just yet, it isn't that bad. There are some "wizard" like options to help you along in the beginning. Once you do a few you will be able to Copy/Paste, or type it in manually from memory.

First you need to understand how things are laid out in the Script window.

First off you have System 'S1'
The S1 is the name/identifier of this system. You can change it to whatever you like.

Under this is where you want to define the properties of the items used in your speaker the "Def_" section. You will have at least the driver(s) T/S parameters here. If you want to you can also place the the inputs of all your electronic and physical parts (enclosure, ports, waveguide, etc sizes) here, so you don't have to wade though a long script to find the part in the chain to modify it later. I will demo both methods in the following example posts.

After the "Def_" section you want to list and define the node chain and connections used in the simulation. Let's call it the Linking section.

Nodes 0 and 1 are defaulted to be 0=negative from amp; 1= positive from the amp, and you do not have to list them. You really start with creating Node 2. The examples will flesh this out more, but you will want to think of it like a tree table.

That is it; Name, Def_, Linking. The format other than that is up to you. The line spacing and return line points are irrelevant, so you can set things up however you want to better organize your script. This will all make sense in a little I promise. The "Aha" moment will come.

There are a lot of things to understand in AkAbak. These are the basics you will need to get started.

The first thing up is the Node. The Node is what connects everything together in AkAbak. The trick is that electrical and physical components share the same space. The individual components can take up to six different Nodes to describe them, but we will stick to four here.

Here is an example tree diagram, and picture representation:

1 voltage 0
Enclosure 2 Driver 3 Radiator

This is a simple sealed sub with power coming in from an amp. Remember 0= Neg 1=Pos. The top line is the electrical signal, and the bottom is the physical components. I used the Orange to show where the two join, as ASCII art doesn't work here.

Here is how the script would look:
System 'Sealed Sub' |Anything behind a line is for humans only

Notice in the Enclosure and Radiator components there is only one Node linked, and the driver has four Node=1=0=5=6. These nodes represent the different connections available on these components. each component has a set number of Node, so you don't have to come up with that part, as you'll see later. A sealed enclosure only has one spot opened to connect to some thing else. Same with the Radiator, but we will get to it next. If there was a duct there it would want two node points, one for each duct opening. The four connections on the driver represent Node=Positive Terminal=Negative Terminal=Rear Diaphragm=Forward Diaphragm, as the driver has electrical and physical needs. If this doesn't make sense go back over it again. Understanding this is key.

Now you are wondering, "What was that Radiator thing doing there?" The way AkAbak works is that all the enclosure pieces flow together (enclosure, ducts, waveguides, etc. drivers too,) but they will not radiate sound on their own. Anyplace where sound exits the speaker has to have a Radiator. A sealed sub has a Radiator the same size as the Drivers Sd. A ported sub has two (driver, port.) A horn built with Waveguides will need a Radiator at the end the same size as the mouth. Connecting sections in a speaker do not need Radiators, only exterior openings.

A lot of the input boxes in the various windows can be right clicked to change the type of input parameter it needs. Some even hide more options windows. Let's say you are putting in a driver and it asks for Qes, but you have Bl. No problem, right click Qes, and change the box to Bl.

When viewing a new script from someone else it helps to breakout some paper, and jot down a dependency tree. This is the fasts way to figure out someone's script, as it is pretty certain they will arrange their data in an alien way to you.

If you notice while going thought these scenarios that there are lots of options in the wizards that I make no mention of, and are Greek to you; these are advanced parameters that allow you to adjust anything you can think of. Want to add an acoustic lining that absorbs different frequencies at different rates? You can. Want to simulate different temperature loads in the enclosure or voice coil? You can. Want to model with walls that aren't completely solid/reflective like say wood? You can. Want to model a section of a duct/waveguide to simulate the drag of a bend? You can. This would be beyond basic level stuff though, so let's ignore it for now.

Sealed enclosures are pretty simple, so I will use them to demonstrate the various ways to do the same thing.

First off what do we need to simulate a sealed sub? Well, we need a driver, and an enclosure to mount it to. We will need an electrical signal, and a Radiator to couple the simulated waves to the simulated air.

It sounds funny, but this is the way you need to think with this program. You end up with a dependency tree like this:

1 voltage 0
Enclosure 2 Driver 3 Radiator

Now start up a new script, and call it System 'Sealed Sub' Now we need to input a driver. You can copy/paste from somewhere else, or you can click Def>Def_Driver... up top. This will open up a window where you can put all the relative specs. When done click Copy and close, and then paste the info into your script. You should end up with something like this:

Now we need to define our nodes. You do this for the driver by clicking Net>Transducer>Driver. Assign the name D1 and click the driver you defined before. The nodes are given following this order S=T=U=V. Click Copy and close, and paste it into the script.

Now lets add the enclosure. Click Net>Acoustic>Enclosure. Let's call it E1. Looking back at our tree it should be node 2. We'll input Vb=315L and click rectangular with an Lb of 1m.

The Radiator is Net>Acoustic>Radiator. Name it Rad1, node 3, and click on the D1 |Driver. This last part will make the Radiator pull it's Sd from the driver.

Now (after spacing ) it should look something like this:System 'Sealed Sub'

You still awake? Alright now this is how it would look with all the variable in the Def_ section. It seems like a waste of time here, but on a large script it is nice to be able to change all the parameters in one spot.

If you have already designed an enclosure in another program you can use the Def>Def_BassUnit wizard to combine the driver, radiator, and enclosure info into one component. This will give you one Def_ item, and one Linking call.

If the enclosure is a very weird shape you could use a series of Ducts or Waveguides sized to the correct proportions,and capped by the enclosure and driver. This is kind of advanced, but it can give a more accurate simulation with complex enclosures. I will cover this better in a later post.

To add say a second driver you just create another driver/radiator combo, and attach of side of the driver to the enclosure node.

You have to watch the polarity of the electrical and physical connections and the new driver. If you cross either of them up the drivers will be moving in opposite directions, and the two will cancel each other out to give you no sound.

On a practical level, what does Akabak do for you that Hornresp doesn't?

Not as much as it use to, but it is still useful. Hornresps new "Wizard Mode" is very very nice, though.

In AkAbak as far as horns go there, are no limits on the number of sections you can use. It will also allow for more layout options. There are a few graphing/measuring differences as well.

Outside of horns, AkAbak can handle multiple drivers, of different specs, in the same or different enclosures, and pretty much anything you can come up with, including physically designing the drivers, the active crossovers, and Panoramic EQ to run them. It is a different ballgame here.

In the end it is the next step to take after you run out of options in Hornresp, or just need something it can't handle.

The Graphing options and variations are enormous here. I am going to just try and touch to the essentials.

FR: Once you get a script ready to go hit the SPL icon up top. If the script syntax is correct an options menu will pop up. You will need to change the Input voltage, 2.83 is a good starting point. You will also more than likely want to adjust the Range ordinate(DNR,) and Range abcissa(Bandwidth.)

Excursion: Excursion is cool in AkAbak, because you can check it at any node in your speaker. You will find it in the Xm icon (the one with the driver.) You will want to change Input voltage and Range abcissa again. Unless you have done it on another graph first. Akabak will transfer over these basic setting from graph to graph.Range ordinate is the Excursion metric used. You will need to play with this depending on what you are checking excursion on. A horn mouth can get crazy at high movement.

Impedance: The Zin icon is where you will find this graph. As you should only have one System at this time it is pretty self explanatory.

Once you have a graph pulled up several more icons light up at the top of the screen. One is iFFT. If you click on this another window will pop up allowing you to pull up the impulse and step responses.

Up top in the Sum and Inspect tabs there are ~21 different graphing tools. Acoustic Power, Beamwidth, Force, Velocity, Pressure, Directivity... it's all there to play with.

A ported enclosure is as simple as a sealed one with a hole in it, so let's start with our sealed enclosure dependency tree.

1 voltage 0
Enclosure 2 Driver 3 Radiator

Now we need a port, so we need to add a Duct and Radiator. There are several ways to do this. First here is the tree.

1 voltage 0
Radiator 4 Duct/ Enclosure 2 Driver 3 Radiator

Notice there is no node listed between the Duct and Enclosure. This is because an Enclosure is a one node component. The Duct connects to the Enclosure's 2. Let's add a 6in dia 33in long Port. The port will need a Radiator with the same area as the port diameter. Just use the click Net>Acoustic> to get to the component the same way you have done everything else.
This would give you:System 'Vented Sub'

Or you could do it this way. Start a new script, and copy in the sealed sub info. Now highlight the Enclosure linking block section. Go click Net>Acoustic>Enclosure. The box will pop up with the present info already in it. Click the Vented option, then right click the Helmholtz Resonance box to enter the port info. You could also just enter a tuning here, but stay the course. When done click the Copy/close box next to Len, then Copy/close again, too paste it into the scrip. You should get this:

I spent some time at one point learning how to use this DEEP program and got as far as doing rudimentary ported and sealed subs at a very SLOW pace (still sruggling with the script format a little ). Then I got very busy and just haven't had the time to continue the education.

IMHO the biggest roadblock to using this for most people is the script and language involved. At first it looks Greek and with all of the cryptic lettering and units being used you can't make sense out of what is going on. The help file is very vague on the basics too. It would help if it was explained in more laymans terms. For instance explaining that the nodes are how pieces of the system can be attached or connected to others in order to interact with them.

Either way you are doing a splendid job of making it easier to understand in Joe Plumber terms for those of us who aren't electrical/acoustician PHD's. Perhaps expand a little more on the section explaining nodes and how to use them to connect the components together. That is absolutely key to using it. Once someone understands how to set-up a script they can begin exploring the rest of the software.

OK, still can't quite wrap your head around(grok) how it works? it's no problem. Unless you have done some real programing, or electrical engineering it can be hard to see how it works. Lets slow it down a little.

The Node order in the AkAbak wizards is s=t=u=v(=w=x) for reference, if you need it. Moving on...

Lets talk about the original sealed enclose, and it's dependency tree again.

A sealed sub is made up of a driver, an enclosure, and it needs a signal source to make noise. This can be represented as two different systems. An electrical , and a physical.

On the electrical side you will need two path connections. Commonly called positive(+) and the other negative(-), or Red and Black by some. In AkAbak these connection points are called Nodes. As +/- power tabs are a universal need, AkAbak has set Node=0 for negative, and Node=1 for positive by default. We can map that out as: 1- Voltage -0 This represents the voltage supply, and it has two Nodes, 0 & 1. In AkAbak Nodes are assumed to be following a path from left to right, so the Positive will flow to the Negative. You get 1- to -0 this way. This is also true for the physical components as well.

The physical side consists of the driver and enclosure. On the physical side only the path of the sound waves matter. A driver can emit sound from both sides of it's cone, so it would have two physical nodes. A sealed enclosure only has one spot where waves can enter and leave, so it will only get one Node. We could draw it out as:Enclosure -? and ?- Driver -?

I use question marks here as it is up to you to choose the numbers of the nodes. The only ones that are assigned are 0 & 1. Lets make the driver use Nodes 100 and 120:100- Driver -120 or 120- Driver -100

Either way is fine. Now we need to attach the driver to the Enclosure. As it only has one Node all you have to do is decide which node you want to attach it too 100 or 120. As mentioned earlier the flow is from right to left. In this way (in-phase)sound flows from the the driver to the right. With this in mind the enclosure should go on the left:Enclosure -100- Driver -120 or Enclosure -120- Driver -100

Let's go with the first option, to help keep the right to left flow going in our numbering as well.

Now you have to connect the waves with the air outside the enclosure. You need to add a Radiator to do this. As the drivers forward facing cone is the only thing "pushing any air" the Radiator need to be the same size as the cone, and attached to the front side. A Radiator only has one Node connection, so it gets attached to 120. The same spot as the front of the driver.Enclosure -100- Driver -120- Radiator

You don't have to worry about figuring up how many Nodes a component has. When you go to install one there will only be one Node box to input anything.

A Driver contains an electrical side as well as a physical, and needs a voltage in and out to function. In AkAbak the electrical side comes before the physical, so when looking at a Drivers Node indicator it looks like this E=E=P=P. We have E=E=100=120 now. To connect the driver in the correct polarity it needs to flow from the first E to the second. This gives us 1=0=100=120. If we wanted to reverse the polarity we would switch the 1 and 0 around at the driver.

This can be mapped out as:1 voltage 0
Enclosure 100 Driver 120 Radiator

On paper I would have drawn lines to the Nodes connecting the electrical and physical rows, but I used colors here.

The finished code in the Linking section should be Noded like this:Driver 'D1' Def='Dayton RSS390HF-4'Node=1=0=100=120

Enclosure 'E1'Node=100Vb=315L
Lb=1m

Radiator 'Rad1' Def='D1'Node=120 x=0 y=0 z=0
HAngle=0 VAngle=0

There is no limit to the amount of components connected to a single Node point. If I wanted to add another driver in paralel to the enclosure I could just add another Driver and Radiator Link, and connect the rear of the driver to the same Node 100. The forward side of the driver would need to be assigned a new Node to attach a new Radiator for it.

Driver 'D1' Def='Dayton RSS390HF-4'Node=1=0=100=120

Driver 'D2' Def='Dayton RSS390HF-4'Node=1=0=100=121

Enclosure 'E1'Node=100Vb=315L
Lb=1m

Radiator 'Rad1' Def='D1'Node=120 x=0 y=0 z=0
HAngle=0 VAngle=0

Radiator 'Rad2' Def='D2'Node=121 x=0 y=0 z=0
HAngle=0 VAngle=0

If you wanted to attach the new driver in series you would need a new Node to join them. Power would flow into D1 from Node 1, then it would not go back to Node 0 you need it to travel to the other Driver first, so we name the first electrical Node on D2 as 2. Now power can flow from 1 through D1 to Node 2, and then through D2 back to 0.

Driver 'D1' Def='Dayton RSS390HF-4'Node=1=2=100=120

Driver 'D2' Def='Dayton RSS390HF-4'Node=2=0=100=121

Always remember to make sure you keep everything flowing in the same direction. If you switch anything around it will reverse the polarity of the Driver, and cancel out the sound from the other Driver.

Ducts have a constant cross-section. This means it will be the same size from on end to the other.

If you need a Duct that changes diameter from one end to the other you need to use a Waveguide. It work just like the Duct only the to ends must be different sized. Want to do a decreasing diameter slot port? Waveguide.

Ducts are passages only by default. What this means is that the program will calculate reflections along the ducts length (Helmholtz Resonator stuff,) allow for the passage of sound waves, and can account for pressure losses at it's ends. It will not normally act as a pressure chamber. This is a tough one. Pressure chamber can be thought of in two ways, first is like a sealed Enclosure when the pressure the is created by the Driver moving in and out is constantly fighting it. A Duct will not do this in it default state, as it is not enclosed. The second is when there is an area of high pressure that is loading the throat of a Duct. When this happens the pressure from the other element can push it's way into the Duct, and change it's normal operational function. It's a little though to explain, but if you are loading a Duct, port, chamber whatever this will alter the effective length of the Duct.

There are special modifiers you can add to ducts to change there normal properties.

First you can attach the Duct's trailing Node to 0. This will close that end of the Duct, and allow it to act like a pressure chamber. It will react as a square Enclosure component would. This can also be used to simulate the effects of a mass loading similar to the AcouMass component in a limited fashion. Read: Advanced.

The second modifier is actually adding a pressure chamber to the front portion of a Duct. If you add "Vf=" and an accompanying volume amount, AkAbak will simulate a chamber of that volume at the source end of the Duct. Read: Advanced.

You can also use a duct as a single Node=? using a defined length, width, and height, but this is a little more advanced.

The end of a Duct with no Radiator has no End Correction applied. Another complicated subject, but if you understand, the additional "L+=?*dD" should be added/subtracted with the correction length in Meters. For a non-flared port the end correction is ~<.307 for an opening away from a boundary, and ~<.425 flushed. With the port flush to one side, and out in the open for the other you would go .425 + .307 = .732, so L+=.732*dD, and the L+ would be added to the duct component, or subtracted depending on which direction you are coming from. Flares take more math.

When designing a simple horn, one with no folds or multiple conical sections, you will want to use Horn. The Horn component will also take the shape of your Horn into consideration. A Waveguide is only concerned with cross-sectional area. Square or round it doesn't care. A Horn also, doesn't need a Radiator as it is built into the Horn component.

There is also the Horn rad. cone option. This allows you to manually alter the radiation cone of the Horn. It's an Advanced option, best to avoid until later.

When you are designing a horn with multiple conical sections, or are adding ports, or other taps you want a Waveguide. IE, Folded Horns, Tapped Horns.

A Waveguide is for all intents and purposes a Duct that changes size. You can ground the trailing end to 0 to close one end, or make a pressure chamber on the front with Vb. See the Duct section for more info.

The only thing to really watch with them is to make sure you are using a flare or taper properly. The throat area must be smaller than the mouth in the Waveguide description. For a taper you enter the smaller end as the throat, and larger as the mouth as usual, and then just switch the Nodes around.

You do not generally want to not add a Horn to the end of a series of Waveguides. The radiation from the Horn segment will not be correct, as it will not account for the waveguide sections correctly. When modeling a sub horn, and if you are using Waveguides you should end with a Radiator. The wavelengths of the frequencies involved are sufficiently large enough to be modeled correctly this way. If you are doing a folded mid horn, or higher you will need to end with the Horn rad. cone element, and manually adjust the radiation cone from the mouth.

OK, here is the passive radiator script. It took a little longer than I expected, because I spent the last few days trying to figure out why my equations wouldn't work. In the end they were right, but AkAbak didn't like how I had them formatted.

That should come in handy. If you bothered to write all this (i'll read it sometime later, exams this week), i'll volunteer for anyone who needs assistance in running this on 64-bit Windows. Besides installing Win 3.1 in DOSBox which is quite slow, you could always download and install Windows XP Mode if you have Windows 7 and use that to run it. Need any clarifications, i'll be around.

Quote:

Originally Posted by Ivan Beaver

The nice thing about standards is that there are so many to choose from.

AkAbak has the ability like other programs, to allow you to add a filter to the speakers input. This will allow simulation of a more real world scenario, and will allow you to play with different crossover frequencies, types, and slopes.

You can find this option by clicking Filter>Filter dialog... It is a little cumbersome at first, but you will get the hang of it in no time.

Filter Identif is where you put the filer name.Filter frequency fo is the filters cutoff frequency.

Now you want to click Standard lowpass functions... for LPs and HPs. This will let you set your order number, and crossover type. Click OK when done.

If you wanted a Lowpass click Copy to 1, if not there are more buttons on the right which say Lowpass to xxxx. If you click on of these the filter will convert from an LP to whatever the switch was. You can hit the Diagram button in the top right to view the crossovers FR. If you are satisfied, click Copy to 1.

Now click Copy function1 to clipboard and close then just past the filter into your script.

The easy way to learn how to put in non-standard horns into AkAbak, is just to design a few in Hornresp, and the export them over to analyze them.

The new HR design wizard with it's sliders is just too big an advantage to pass over. As such, I have to recommend starting there for most people. Now if you are someone that takes the math from Leach's papers, and inputs it into Excel too get horn parameters, feel free to start from AkAbak. (and know you are not alone. )

Once you have a design in mind, and a rough enclosure designed around it, this is when you will want to come back over to AkAbak. I will talk about this more in the Advanced Modeling 101 or 102 posts.

With that said, if designing say a simple TH in AkAbak you would want it to follow this basic format. It is a little different than what HR will give you. Can you spot the difference?