Tuesday, November 12, 2013

Logans Leisure #2: End Table Subwoofer


Logans Leisure #2: End Table Subwoofer

My blog is called "learnings, lessons and leisure". The learnings and lessons are similar, and while I will post things under each title, the differences are pretty minimal when it comes down to it. The leisure posts though, they're reserved for things that are about what I'm doing with my life. I have found that I need to constantly have a project, or something that I'm thinking about, working on, designing, fixing or I get antsy. And these projects that I find myself working on might be of interest to some people.

So, this is my second "leisure" post, but it is likely more "leisure" like than my first (a review of a broadcasting software). Hopefully some of you out there find this project as entertaining as I did :).

Why build a custom subwoofer?


Like I've mentioned before, one of my lifelong goals is to become a renaissance man. As part of that goal, I have been selecting a new area to develop my skills in each year or so. Its nothing completely structured, but its enough of a loose idea that it keeps things going. The best way to do this, is to try to tie those new skills into something that I already like. The project this time, was then mixing my interests in home theater, and my desire to get better at woodworking.

For this project, I designed and built a custom subwoofer. Some might (and have) asked "why build a subwoofer". There are many answers to that question. Simply because I can is one. Just like other things you do yourself, you can get much more value than if you buy "store bought".  Another reason is because I want to learn from the experience. But the primary reason for it was for functional reasons.

What do I mean when I say I built it for "functional" reasons? Speakers for all intents and purposes are simply air pumps. Just like other instruments that reproduce sound, larger is always better for low frequencies. So for a subwoofer, extra cabinet volume is always better. The problem with a really large subwoofer is simple. They are just large, and hard to fit anywhere without being overly intrusive. If I had a dedicated sound room, I might be able to get away with building some really crazy huge subwoofer. However, the current "home theater" is actually just the front room in our apartment. While my wife is amazing and puts up with me and all of my crazy hobbies and interests, I didn't want to even try to force a large black subwoofer into our front room décor. I didn't want to miss out on my chance for amazing bass in movies though.

The solution for me was to hide the subwoofer in plain site. Instead of making the subwoofer a featureless black box that sits in the corner, I decided to disguise it as an end table. So this post is of my design and construction of this end table subwoofer. I understand that it is still a very large subwoofer, and that it won't work for everyone, it DOES work quite well for me. It fits in the space between the two couches perfectly, and uses what would most likely be wasted space. If the design works for you, go for it, and build it. I'd love to see variations and adaptations by others. Although if you do use my design, just give me credit somewhere, and post links to your builds here.

Believe it or not, I didn't start out knowing much about subwoofers (other than that I liked them, and that you could have a ported, or sealed one). I had to do my homework to learn enough to build one. While I am still no "expert", I will try to explain some of what I learned as I went. So if you'd care to learn some REALLY dumbed down basics about subwoofers, then read through this next portion. If not, just go look at the pretty pictures at the end.

Designing a custom subwoofer


First, you need to decide what type of subwoofer you want to build. If you are building a home theater (primarily movies) subwoofer, a ported subwoofer is generally a good choice. This is because ported subwoofers keep a relatively flat response curve over their frequency range, and then drop off sharply at the end. The main potential downside to ported subwoofers is port noise (the subwoofer is literally ported and tuned like an organ, and so it has air coming in and out of the enclosure). Sealed subwoofers are just that, sealed, as in no openings at all. These of course do not have port noise, and are there frequently smaller. Their frequency response curves however are very different (think more like a bell shaped curve).

Generally you get more extension out of a ported subwoofer (plays lower notes), as well as more SPL (sound pressure level... aka, volume). Since extension is what I was after, this is what I designed.

The main components


There are really just three main components to a subwoofer. The driver (the actual subwoofer "speaker"), the amplifier, and the enclosure (the "box"). When designing a sub, you need to account for each component and how they interact. That's what makes designing the subwoofer take so long, as each variable affects the others.

Usually, you start with some sort of design constraint, and work from there. Maybe its either the box has to be a certain size, or has to fit within a certain budget. Whatever it is, its the easiest to start with the constraint, and work backwards from there.

My constraint was size. The whole point of this project was to allow me to build my woodworking skills, and have an impressive subwoofer that is hidden in plain sight. Because I knew the size between the couches, and the desired height, it was pretty easy to determine what the final overall
dimensions would be.

The space between the couches is 37x37in, and 29in tall. I didn't want to completely fill the area between the couches (which would make it look enormous), and I DID want it to fit through doors,
I ended up going with 32x36in and 27in tall. Because my design required some extra space to make it look normal (end tables usually have roughly an inch of overhang from the top to the sides).
Then my design and materials required further shrinking the actual subwoofer enclosure.

I used a free program called "winISD" to design my subwoofer. WinISD does all the scary math, and other than being a bit complex at first, it is relatively easy to use. While there are other programs out there, this is the one I used exclusively to design my subwoofer. I have written a quick guide on how to use WinISD that you can read HERE if you're interested in the specifics of both how to use the software, and the physical attributes that it is modeling.

When you look at subwoofer specifications (and actually, speaker specs in general), you'll see something called the -3db limit. That is the point when the flat graph, starts dipping from the flat part by 3db. The reason this is important, is this is the frequency that for all intents and purposes is the "end" of its frequency response range. Sure a speaker might technically produce sound at frequencies far below the -3db point, but it will be so much quieter than the frequencies above there that you might not even be able to tell that it is playing. So for a subwoofer, you want this -3db point to be as low as possible within your constraints.

Oh, also. It might be easy to look at a speaker and be like "oh hey, I just read on the internet that the -3db limit for these speakers is 80hz. That subwoofer only plays to 20hz, this speaker here plays from 80hz to 25000hz, so I won't notice those few measly little 60hz at the bottom, and I'll do just fine without a subwoofer".

The reality of the situation is that when you halve a frequency (in hz), you just dropped an octave from the previous frequency. That means that a 20hz subwoofer would gain you exactly two octaves of range below that of the speakers mentioned above (that bottomed out at 80hz). Most TV's, soundbars, and satellite speakers have small drivers in them (2-3 inches or less is pretty common). Their -3db points are frequently in the 110-150hz range. So that means that you're missing out on 3 octaves (140 > 70 > 35 > 17.25). If that doesn't sound like a lot, go find the nearest piano, and then pick a note, and then go 36 keys to the left (including the "black" keys). That is almost half of the keyboard. And to me, its kind of a big deal to be missing all of that extra sound. If it isn't to you, then that's fine, its just once you've heard it, its hard to go back :P.

Choosing the driver


Its best to start out selecting a few drivers to consider, as each driver has different specifications, and behave differently in different enclosures.

For what its worth, I chose the Stereo Integrity D2 15in Subwoofer. They recently lowered their already competitive prices (sadly, the week after I ordered, but such is life), and offer some great value in the subwoofer market. I seriously considered a few drivers from Dayton Audio (the parts-express house brand). But I ended up choosing the Stereo Integrity because it had more travel, worked with my enclosure size, and with the default settings of my amp.

Here is the Stereo Integrity driver next to one of my laptops. You can see that a 15in sub driver is no small object. This one happens to weigh 35lbs or so.

 
 
Choosing the amplifier
 
 
I chose to go the easy route on the amplifier on the sub. I went with what is called a "plate" amplifier for the sub. This means that the amplifier is "contained" in the subwoofer, and is not a separate unit like you might find being used for other speakers (the receiver most people have in their home theater also functions as an amplifier for the speakers).
 
Most subwoofers that you buy commercially are powered subwoofers (which usually means that they have a plate amp). I decided to go with the same method.
 
I purchased the BASH 300w plate amplifier.
 
Additionally, the BASH had some built in features that ended up being useful with my design. The most important being the High Pass filter that it came with. A high pass filter lets frequencies higher than the filter  "pass through" to the driver that is being powered.
 
"Why would you want that" you say, "isn't low frequency what you're building this subwoofer for?" That's a valid question actually. But it does have a simple answer. If you send full, unfiltered audio to the subwoofer, it will try to play ALL of it, including the frequencies that it cannot play. In trying to play those "too low" frequencies, the subwoofer driver could damage itself. So to prevent the subwoofer from "blowing out" while watching something amazing, I found an amplifier with a built in HPF.
 

Designing the subwoofer enclosure


For a relatively novice woodworker, the hardest part of the project, was taking those specifications that I created in WinISD, and turning them into an actual design that could be built.

The hardest part isn't knowing what dimensions that you want, but how to determine in what order things are assembled to get those dimensions. I found it quite handy to draw things out, just to
make sure that I wasn't making any mistakes in my design.


The next thing that took a bit of time, was the fact that while on paper you can design just about anything that you want, putting it together is different. Think about where you are going to be
having any exposed fasteners. Of course exposed fasteners are not a bad thing, but depending on your final design, it will affect how you construct things. I chose to cover the corners with molding, and fasten the molding to the box by screwing from the inside. This left the finished product with no visible fasteners.

After you know what the thing is going to look like, you have to turn it into something you can build. This means making a cutlist, and a cut sheet. These are mine. Keep in mind that I have terribad handwriting.

And when looking at the cutlists, you'll notice that there are more pieces than you need for the subwoofer. This is because I decided to build an end table that matches the sub at the same time. These will turn into "bookends" for the couch, so I thought it would be better if they matched.

These are the pieces that were to be cut from Cherry.

 
And here are the two sheets of walnut. I apologize if its a bit hard to read, but I wasn't about to make this all digital. Instead, you get it how I did it :).



Feel free to use the cutsheets if you'd like. I don't claim that they are free of errors, although I did try to correct the problems that I made.

Building the subwoofer


The first part is simple in concept, but has a big impact on the rest of the project. That is of course cutting out the wood. This is best done on a large table saw with a sharp blade. Take your time in cutting, making sure that you keep all your fingers. I scored in this department, as I had a friend with access to a cabinet making shop and lots more experience than I have with cutting large sheets of wood.

After you cut the pieces, mark the pieces of wood according to the naming convention that you've chosen. And do yourself a favor, and remember to mark the pieces of wood on the correct side. Depending on how you want to finish your sub, you will either want to do the finishing before or after the construction. Because my subwoofer is designed as an end table, and has two colors on it, I had to stain the pieces that were different colors separately before it was assembled.

I used a relatively unique method for making the wood black. Its called ebonizing. It is a process that uses the tannins present in the wood, and the some iron that has been dissolved to create a chemical reaction that turns the wood black. The process works better with woods that are high in tannins naturally. This is why I am using Walnut.

The process actually works very quickly. This photo shows some of the pieces I was working on in the various stages of reacting to the "stain". Believe it or not, the pieces were done in order, from bottom right to top left. The pieces all react differently, but somehow all end up roughly the same.



And some more comparisons. The unstained wood is the natural walnut, and the ebonized walnut is on either side. You can see that the dried ebonized wood is a bit more charcoal grey looking than it is black. However, unlike painting the wood, there is BEAUTIFUL grain there.


Its actually extremely hard to get a good photo of the ebonized wood after the polyurethane. Here are some attempts though. This first one is a bit oversaturated.

 
This one is a bit washed out on the other hand.
 

The Cherry was stained a 50/50 combination of red mahogany and red oak. It was super simple. Wipe on, wipe off, easy peasy. It was stained to match the front channel speakers. Here you can see the molding, legs, and top.

This shot is from after the staining, but before the polyurethane. You can see the tops of both the sub, and the end table, as well as all of the legs and the molding pieces.

The construction

 

I just followed my designs to a "T". There were a few places where my designs were off, and things needed to be improvised in order to salvage the operation. My father was there helping me assemble things and is an experienced woodworker. He mentioned that the difference between good woodworkers and novice woodworkers is often simply how well they hide mistakes. Luckily, most of my mistakes were non-visible, and only required a small amount of scrap wood to fix.

I used wood glue, and screws to build my project. The screws were mainly there for securing the wood while the glue dries, but they do add a non-zero amount of strength as well. I used 1 1/4in coarse drywall screws for securing most pieces together, with 2in coarse drywall screws for the sections where I screwed into the endgrain of another piece. These endgrain sections were predrilled to ensure the wood didn't split.

Photos of the construction process


The main box constructed, with the cutout for the amp done, and the port halfway constructed.


A terrible photo of the half way point in the project. Sadly, its the only photo of it in progress from the outside. You can see the molding done on the ends, and the top and legs were on. As a side note, you can see that the subwoofer is placed up off the ground. This is because my subwoofer is a down firing sub with bottom facing ports. The sub needs to be up off the ground to let the driver breath. Also, no tables I've ever seen have rested on the ground. Keeping the sub off the ground is a win win win in this situation.


Here is something that I have been frequently asked about. The interior bracing, and the port. You can see the port here runs along the side of the enclosure, and that it was longer than the height of the sub, and so it just turned and went around the top.

You also see the interior bracing in this shot. The general rule of thumb is that you want to have no more than a foot of space on the interior of the box that is not braced. I have a few spaces that are longer than that, but not by much. There are two braces in each direction. The top of the subwoofer is also double thick, as are each of the edges of the enclosure which helps reduce resonance. The braces here are glued, and screwed into the inside, and where possible, they are also screwed and glued to each other.



The other thing this shows is the fact that I basically constructed the whole subwoofer upside down. This is how all the screws are hidden, as everything is attached from the inside. After this point, all I had to do was attach the bottom, install the amp, and flip it over.

Like this for instance.


Finished product and Testing


So how does the subwoofer do when I compare it to what I thought it would be like?

I was looking for three main things with this project.
  1. Disguising a high performance subwoofer to blend into the surroundings.
  2. Developing my skills with project design and woodworking
  3. Getting more performance per $$ than I could with anything premade
How did I do based on those criteria?

Can it hide in plane site? Here is what it looks like in place in the corner.


A close up of the end table.


A shot of the whole room to wrap it all up.


Check, we've got the first point covered.

Did I learn a lot about woodworking and have the chance to practice some skills? Yes, for sure. So another success. TWO FOR TWO!

And finally about value. How does my sub compare to things you can find "in the wild" from normal subwoofer manufacturers?

The closest subwoofer that I could find in terms of output and extension, is the HSU Research VTF-15H. It reaches to 16hz, and its max output is about 120db. My sub hits 16hz, and is flat at about 116db for most of its range. The HSU retails for $880-999. The components for mine cost $690 (and I got a "free" end table that matches).

However, if you were to build this yourself, you could VERY easily save 100-200 dollars. The subwoofer driver has been reduced in price by $50. Also, I happened to build my subwoofer out of possibly the most expensive plywood available. I had it custom ordered from a cabinet shop for me, and each sheet of ply cost ~$100. If you were to do this project out of normal old 3/4in oak, you would have saved ~$120-150. So the value is definitely there.

Conclusion


So far, I've been extremely pleased with the sub. It plays cleanly, and quite deep and loud (when needed). Its perfectly unobtrusive, and hides quite well in plane sight.

I know I overbuilt the subwoofer (particularly for this 900 sq/ft apt), but I didn't want to build a subwoofer that would need to be replaced as soon as it was put into a larger room in a future home. The subwoofer is capable of completely drowning out the rest of my theater system, however, when it is adjusted correctly, it blends in quite seamlessly. I run it at approximately 1.5/8 power in my setup (the amp goes "up" to 8, not 10 for some reason). I've demoed a few clips at up to 1/2 power, and at that amount of power, the lamp on the sub actually jumped far enough for me to see under it, so it does have enough output to spare to allow it to grow.

At certain frequencies there is a small amount of localization, but that is due more to the placement in the room than the subwoofer.

All said, I would say that the project wasn't actually very difficult. All it took was some time spent researching, and then designing something that worked. I'd highly suggest to anyone reading here to give it a good hard consideration if you are anywhere even remotely interested.

Plus, the look on peoples faces when you tell them that that "table" is the subwoofer that just surprised them is quite priceless :).



Tuesday, September 10, 2013

Logans Lessions #4: Setting up a mumble server

Logans Lessions #4: Setting up a mumble server


So, one of my previous posts is about setting up a Ventrillo server. Ventrillo is a easy to set up, free to use (for up to 8 people) voice chat server to use however you see fit. I used Ventrillo for a while, and was pretty happy with it. I'll say that I was happy with it the way that people were happy with life before they invented Air Conditioning (for me, having lived 7 years in Arizona, AC is a BIG part of life).

So this brings me to the point of this post. What changed my feelings for ventrillo? Its simple, another product that does basically the same thing, but in my opinion, better. What was that quote about building a better mousetrap?

Reasons I switched from Ventrillo to Mumble.

  1. Lower latency. In "normal speak" this means that the delay between when you speak, and your friend hears you is lower. Meaning, its more like "normal" conversation, as your friend hears your joke almost as you say it instead of 1.4 seconds later (akward delayed reaction laughing == the worst).
  2. Supports more chatters. Now, most people will never need more than 8 for free. But mumble lets you do as many as you please, its limited only by your bandwidth.
  3. Automatic volume leveling of the chatters. So, no matter who is on the chat, they all sound the same volume to you. Great for if you have someone in your family/team/secret guild that talks loudly, because they won't overpower everyone else (PS, this sadly does not work at family gatherings... )
  4. Additional features that sound cool, but I might not use. Mostly correct positioning of audio while in specific games. So while I game, I don't know if I game enough to appreciate this feature. Although the ability to hear if your friend is on the left or right... is actually quite awesome (technically speaking, that's quite impressive).

Bottom line

The main benefit for me was the reduced latency. For those that don't know, I do some amateur StarCraft 2 commentating (wow, that sounds really, really nerdy). I commentate games for a small league, and occasionally I have a co-commentator that I use these programs to talk with. When commentating with someone that you can't physically see, latency is a huge part of making the performance feel natural.

With Ventrillo, my co-commentator and I were able to work with the roughly 1 - 1.5 second latency. At times though, we would talk over each other (remember we had 1 second to start talking before the other heard). This lead to more stops and starts of conversation as we would both start talking, then hear the fact a second or so later, then start talking again as the silence in-between was also delayed. So we worked within this limitation, but it was a noticeable hindrance.

With Mumble, I've noticed a large decrease in the number of times my co-commentator and I talk over each other. So for that reason alone, its worth the switch. While I haven't actually measured the latency with mumble, I would put it at around half a second with my very unscientific normal usage of the software. While there is obviously room for improvement, that is two to three times faster than ventrillo in my testing, and makes for much more natural conversation.

So, I'll walk you through the setup of mumble, (and its server that you run called "murmer"). Luckily, the setup is almost exactly the same as the setup for Ventrillo, just with different ports being used. Also, mumbles documentation is pretty good as well, so this is meant more just for demonstration purposes of an actual running instance, rather than re-creating the documentation that is already in effect.

Installing and configuring the server


Download the mumble install file from HERE. In this file, you will have the option to install either client only, or client and server. So if you're the one hosting it for your friends on your machine, then of course you do client and server. If you're connecting to a friend, just do client only.

Install the things. I'm not going to sit here and do screenshots of where you should click "next". Its pretty straight forward though.

After things install, you need to configure an ini file for what you want your server to do (aka, server password, number of supported users, etc). It is located in the folder C:\Program Files (x86)\Mumble, and the file is called murmur.ini.

Unlike Ventrillos ini file, this one is a bit more... involved. Its very well laid out at least, but if you're not used to reading ini files, it might take you a few minutes to find what needs to be adjusted.

Protip: Most INI files have lots of settings in them that you might not need. When getting things set up, ignore most things that are currently commented out. In this case, that means the ones with the "#" in front of the line. I am using an editor called Notepad++ to make it easier to read by color coding what is commented out (ignored code), and what is "real".



Once you do that, you need to (as the server) set up your network to allow traffic to the box you're using as the server (I recommend setting a static IP for whatever machine you choose, as this will save you pain in the future if your DHCP addresses change [which they will]).

What I mean by this is that you need to set up port forwarding on your edge device (usually your wireless router/firewall). This is usually a pretty simple process, although because of the wide number of devices on the market that all have slightly different interfaces, I wont even try to do a step by step walk through for this part.

Just know that you need to set up port forwarding to allow the TCP and UDP ports (64738) to the same port on your server.

Here is what mine looks like though.


Setting up the client

Go ahead and start up murmur (double click, select and press enter, whatever).

Once you get that set up, go to canyouseeme and then check that it can see your server on the correct port. Now go to whatsmyip and learn what your public IP is.

Once that works, simply fire up mumble, add the new server. The name you put in is just your label for the server and not its official name. Add the correct IP address (and if you're doing it inside your network, use the internal IP), and then connect. If you put a password on the server, it should now ask you for the username and password that you would like to connect with. Once you do that, you're in!

It should look something like this.



The Wrapup

I've been using mumble now for a few months, and I've been quite happy with it. I've had as many as 4 chatters on simultaneously without any problems. I've appreciated the ability to change the amount of bandwidth being used by each person (in each direction none the less), its ease of use. It is currently my favorite voice chat client and server combo.

Just know that as long as your server is running (or the murmer/ventrillo service is running), that the chat server is live, even if you're not connected to it. I usually leave it turned off when I'm not using it, but you can use it however you'd like.

So there you have it. You now have two very reliable voice chat server options that are completely free at your disposal. You can use them however you'd like. From virtual meetings, to gaming, and to commentating, it should have you covered.

Cheers!

Logans Lessons #3: Setting up Ventrillo server

Setting up Ventrillo server

The Scenario

You get an awesome new multiplayer game to play with your friends who live somewhere that is not in your house/apt/abode. You discover that you love the game, and that while playing, its useful to be talking together, either for the purpose of the game, or just for fun. Luckily the game of course has chat support built in (text chat). Of course, text chat is awesome, but it takes quite a bit of time away from the game, which slows things down, and with enough people, it gets confusing. So, what do you do?

You could call on a cell phone... but that's lame and is way too old fashioned to be useful while playing a game, especially if its with more than one other person. Next up comes the idea to Skype. Now, skype works, but its a bit resource heavy, and has limitations on the number of people that you call at the same time. You could use a google hangout, but that would require everyone to be on google plus... Which not everyone is on, and not everyone wants to be (yours truly included). So what are you to do?

After looking around a bit, and googling all sorts of irrelevant things in your search for what you were actually MEANING to search for, you learn that there is a free program called Ventrillo. It allows you to host your own server (more of a service actually), that supports up to 8 people with simultaneous voice chat. It is completely free, and has been around for a while. However, for some people, it can be a bit intimidating to setup.

This is where I come in. Since I'm a self admitted nerd, I usually just jump right in. This time, I decided to document the process, and help anyone out there out with getting a server of their own setup. I know there are lots of tutorials on this, but for some reason most of the ones I found on this were videos. And while videos are good, sometimes I don't feel like watching one just to figure out one little thing, when I could have just as easily skimmed a document to the part where I was confused. So here is my primarily text based one tutorial.

Installing and configuring the server

So, first steps first. Download ventrillo server. You can find it HERE. Install it, and then edit the config file. The config file is located in the program folder, which should be under c:\Program Files (X86)\VentSrv. The file is called ventrilo_srv.ini. The main thing that you want to do here, is to change the password. Here is what mine looks like, and you can see how simple this file is. I like that.



After you get it installed, and the ini file changed, then you can start the service. To do that, you literally just run (double click, etc) ventrillo_srv.exe. It fires right up, and should be listening for people trying to talk to you.

Installing/configuring the client

After you start the service, you need to install the client (assuming of course you want to be able to talk and hear people, if not... then I guess you're mostly done?). Here, if you are setting it up on your own network, you can use the internal network IP of the machine hosting the service. If the machine that is running it is the same machine that you're going to be playing on, then you can just type in "localhost", or 127.0.0.1, or the internal IP address (all will work).

Here is a screenshot of what mine looks like.


If you have it running on a machine inside your network, but not the machine that you're using, then use the internal IP address (if you don't know that, open the command line, and type "ipconfig", and it will tell you what the IP address is for that machine). For your friends outside your network, go to whatsmyip to figure out what you're external IP address is, and then tell them to use that IP in their clients.

Configuring YOUR network

The last remaining thing to do, is to set up your router/firewall to allow the ventrillo service to communicate with the outside world. To do this, you need to set up something called port forwarding on your router. This is likely the part that confuses people the most, because it sounds really scary and technical. However, without this step, no one will be able to talk to you, and you'll be sad.

In reality, it is pretty simple to do once you know what needs to happen. You simply find out where to adjust port forwarding in your router (usually somewhere under advanced). You can see what mine looks like here, and what the "rule" looks like when in place. Just remember that setting up your own, may be different, but that unless you have the worlds lamest router, you should have the setting in there somewhere.

The menu option for"Port Forwarding/Port Triggering as the last menu option visible in the screenshot on the left. You may have to lookup what your router calls it.

(and here is a shoutout to anyone out there that noticed from that screenshot that I'm running a class B network here at casa de logan :).

Once you find it, you put in the internal IP address of the machine running the ventrillo service, and then the port that will be forwarded to it (3784 is the default, but feel free to change it. Just know that if you change it, you'll have to tell your friends what the new port is). You may also have to specify that the ports are for TCP and UDP. Once your router accepts that, then you're good to go, and everyone should be able to connect.

The wrapup

So far my usage experience of ventrillo has been very good. The only problem that I've had so far is that one of my friends couldn't speak for a while. It turns out, the problem was that when we disabled ppt (push to talk. When you disable it, it turns into basically a phone call where it continuously transmits ), his microphone was so quiet that ventrillo wasn't registering that he was speaking. Once we lowered the sensitivity requirement for ventrillo, it worked just fine. Other settings that I've tweaked on mine. I removed the voice things toast notifications (the beep before and after you talk setting... no idea why you would want those).

In an upcoming post, I'll go through the installation and configuration of one of the main competitors to Ventrillo. The one that I actually switched to FROM Ventrillo...

Logans Lessions #2: Scripting Handbrake in Windows.

Logans Lessions #2: Scripting Handbrake in Windows

The Scenario

You want to rip some of your movies to your computer. You want to do this to either 1) watch the
movies on something that doesn't have an optical drive, or 2) you want to make your entire DVD/BR
archive available without needing to dig out the physical DVD's each time you play them.

With this in mind, how exactly do you go from ripping a DVD onto the computer, to viewing it on any of these devices? Its not very hard actually, although there is no really streamlined way of doing it as of yet (its not built into any OS that I'm aware of).

First you need to rip the DVD to your hard drive. I would suggest an ISO format (the literal image
file of the DVD, exactly the same space on disk, for exactly the same quality and features). There
are programs out there that can actually play these iso files, and if you have no storage limitations, then this is the easiest way to store your DVD's. If this is what you want, you simply stop here.

For the rest of us that have to worry about storage space, or want a more portable and
generally more useful file you might want something else. An ISO of a typical DVD is close to 8GB.
Depending on the size of your movie collection that could be a huge issue. And no portable device I
know plays ISO.

So, if you want to keep the original source file quality, but want the resulting file to be smaller
and more widely playable what do you do? You encode that file into something else. The tool that
many people use to do this encoding/compression is called "handbrake". Handbrake is a free program, and it allows you to take an ISO file or a folder full of VOB files (the other way to get everything off of a DVD), and compress it into much smaller space.

Using Handbrake is pretty simple, with the hardest part being understanding all of the options that
are available to you. Compressing movies is also a pretty time consuming task. A typical movie can
take anywhere from 20 minutes to 2 hrs depending on the options that you select, and the processing
power of your computer.

However, if you have a large Movie library ready, it can be really tedious to compress each movie
one at a time. Luckly, the people at handbrake have already thought about that, and have created a
command line version of the tool that can be scripted. For those that don't know, scripting is a
generic term for taking something that we do on the computer, and then automating it in an attempt
to reduce the amount of human interaction that is required. In this case, we'll be automating the
process of compressing movies in one folder, and then outputing them to an output folder.

Handbrake scripting on a windows machine

Since I'm a bit of a windows guy (as are most of the people out there... by numbers at least), and
when I searched about on the internet for examples of a someone scripting handbrake on windows, the results were remarkably thin, I thought I would do the internet a favor and share with everyone the little script I made to make my life easier.

Powershell is my language of choice, and if you're not already familiar with the old school windows
command prompt (and even if you are), I'd suggest learning powershell as it is rapidly gaining traction as the way to do things in a windows world. I'm about even in my knowledge of cmd and powershell, but I prefer to work with powershell if given the choice.

I'll provide the template script, and explain some of it as I go. Please keep in mind that I am not
a one of microsofts "scripting guys", nor do I proclaim myself as any sort of expert at scripting.
Instead, I'm just sharing something I made in my spare time, and hope that it may be of use to
someone.

Also, as you look at the script in detail, you'll see that I'm creating .mkv files. I prefer using them, as I have found better results with them on my surround sound setup than with MP4. However, MP4 is much more widely accepted and played (almost everything will play MP4 files), so if you want MP4, then all you have to do is change the file ending here in my script.


#Script created by ocnlogan, as part of Logans Learnings #1: Scripting handbrake in windows.

#Creating a variable to store the path to all of the source files that will be encoded. 
#Change the text below (inside the quotes) to reflect where your files are located
$inputpath = "e:\isos" 

#getting the output path for the movies. Change this to what you would like it to say.
$outputpath = "e:\output"

#grabbing the filenames of all of the movies in the folder you just provided.
$movies = ls $inputpath

#The actual logic of the script.
#starting to loop through each movie in your list of movies
foreach($movie in $movies){
 
 #getting the name of the movie, without the file type added to the end.
 $name = $movie.basename
 
 #checking to see if the current movie has already been converted, and is sitting in the output folder.
 #this allows you to run the script repeatedly, without it wasting time converting something that is already done.
 if(!(test-path -path "$outputpath\$name.mkv")){
 
  #the actual command used to start handbrake, and encode/compress a movie.
  #Adjust these settings as necessary. 
                 #These are what I use when encoding, but YMMV for your application
  C:\"Program Files (x86)"\handbrake\HandBrakeCLI.exe -i "$inputpath\$movie" -o "$outputpath\$name.mkv" -e x264 -q 20.0 -a 1,1 -E copy:ac3,copy:dts,copy:dtshd -D 0.0,0.0 -f mkv --detelecine --decomb --loose-anamorphic -m -x b-adapt=2:rc-lookahead=50

 }

}

So all you need to do is to copy and paste that script into a blank notepad file (press and hold the
windows key and then press "R", then in the prompt that comes up type "notepad" and press enter).
Change whatever settings you want (file paths, handbrake settings, etc) and then name it whatever
you would like, as long as you remember to save it as a ".ps1" (powershell) file.

After that, you'll likely only run into one other small "problem" running the script. Powershell by
default is not very trusting (read, more secure), so when you first try to run this script, you'll
likely get a message saying that it cannot be run because the execution policy of the machine does not allow it. Luckily, this is an easy fix. Just type this into an elevated (meaning, run-as administrator) prompt.

Set-executionpolicy -executionpolicy remotesigned

Then after that, try to run your script again, and everything should be peachy.

The wrapup

And there you have it. Now you can start off handbrake to run while you sleep, and you'll have all
those movies converted and compressed in no time :). If you want to get really fancy, you could even
adapt the script to run as a scheduled task, so that anytime you upload files to a folder, it could
convert them, move the outputs to the correct location, and then delete the input file. However, the
core functionality is here in my template.

Feel free to post up and changes or adaptations here, I'd love to see what others come up with :).

Tada!

Tuesday, May 28, 2013

Logans Lesson #1: Know your knives.

Know your knives:


About a two years ago I fell down a pretty big rabbit hole that I didn't really expect. I started looking for a good fixed blade camping knife (I am a firm believer that every camper should have a good knife on them). And I discovered that there was a LOT more to learn about knives than I originally thought.

Because of my personality type before I can make any sort of purchase I have to at least understand enough about the thing that I am purchasing to be able to make an informed decision. That particular trait of my personality has been very beneficial for me, but it sometimes means that I take a long time before I make a move. This post is made up of some of the different things that I learned while researching that I thought would be beneficial for everyone to know so that they can feel educated as well.


Types and styles of knives:


Believe it or not, all knives are not created equal, and whats more, all knives are not even created for the same purpose. This is a pretty basic rundown of the general types knives that are out there, some of the basic things that I feel like everyone should know. The end goal of this post is to help people understand how their knives are to be used, and how to know what to look for when they are choosing a knife for a specific job.

There are three main categories of things that I'm going to describe. The Anatomy of the knife, the different general designs (patterns/styles), and then the "grind". Each category will help you understand the next. Also, this isn't specific to either fixed blade, or folding blade knives. It is instead pretty generic, and that is on purpose.

The anatomy

The first thing to know about a knife is what to call all of the various parts of the knife are called. The "anatomy" of the knife as it were.


The large bowie knife above is a Becker BK9. The Swiss Army knife is the Farmer model.


Point: The point of the knife is one that basically everyone already knows about. It is self explanatory, and may also be called the "tip". The tip of the knife is not usually used for much at all, with the exception of drilling, but that is something that isn't really recommended, or even frequently used.

Belly: The belly of the knife is the gentle swoop of the knife that goes from the point, down to the handle. The belly of the knife is what the chefs knife rocks back and forth on when you are dicing
vegetables. The larger the belly of the knife, the easier it is to "rock" the knife back and forth. The belly of the knife is generally what is used for "draw" cuts (slicing) as well. A draw cut (for those
that don't know) is one where you slice without sawing while drawing the knife towards you. Knives with large bellies are then more frequently used for tasks that involve slicing.

Spine: The spine of the knife is the part exactly 180 degrees away from the edge of a traditional single edged knife. The spine is the part you put your thumb on while cutting (if you do that sort of
thing). Surprisingly, the spine of the knife can be useful for things.


Pommel: The pommel of the knife is the back of the knife. It is exactly the opposite of the tip of the knife, both in location, and in purpose. The pommel of the knife can be used for a variety of
things. Some knives have pommels that allow it to be used as a glass breaker, a hammer, a bottle opener, or a variety of other things.

Face: The face of the knife. The side of the knife blade when viewed from the side.

Tang: The Tang of the knife is something that is usually talked about on fixed blade knives, although some folders have them as well. The tang then is the part of the steel of the knife that is not part of the blade, and is what the handle is mounted to. The strongest fixed blade knives have full width, and full length tangs.

You can see the exposed tang of the bottom knife. Many knives with full tangs will have parts of them cut out to make them lighter.



Another word you might see thrown around is "Choil". That is not a misspelling of coil (as I thought for a while), and yes it is pronounced just like it is spelled "CH" + "oil". This describes a gap between the knife blade, and the base of the handle. A choil is usually a half circle cutout at the base of the knife, and its purpose is to allow you to sharpen the knife all the way back to the base of the handle. Without a choil, it can be very difficult to sharpen the part of the knife directly touching the base. Choils can also be made larger, and can be make large enough to fit someones finger, and can be used to allow the users hand to get closer to the edge of the knife.

Design

Next up we have the basic designs of the knife. Now, I say this VERY generally, as there are almost as many designs of knives out there are there are different personality types. However, many many knives fit into one of these design categories.

Drop point. Now, remembering that the point of the knife is the ... point... this one should be pretty easy to understand. The point of a drop point knife is set somewhere below the level of the spine (when viewed from above the spine). This is probably the most common design out there, and it has been for a while.

In this side view of a Becker BK2, you can see how the point of the knife is dropped below the spine. It is a good example of a drop point knife. Also just barely visible is a small choil right at the base of the blade.


Clip point. This is very similar to a drop point, but with the drop point from spine to tip "clipped". This design tends to have very slender tips. These slender tips are excellent for stabbing, and anything that calls for a small tip. Perhaps the most famous version of the clip point is basically any variation of the bowie knife. Most combat knives are also clip points, and so are some hunting knives.

Notice how the spine of the knife is flat until it gets "clipped" at an angle, and how it makes a very pointy point. The knife below is the Johnson Adventure Blades Baconmaker, an aptly named hog hunting knife.



Trailing point. This design has a point that actually sits above the top of the spine when viewed from the top. That is, the point of the knife "trails" behind the spine of the knife. Trailing point knives generally have large bellies. The most common types of trailing points that you usually will see are steak knives. Now, not all steak knives are like this, but a good portion of them are. Given that knives with large bellies are great slicers, this makes sense.

This is the Becker BK5. Notice how the tip of the knife is slightly elevated in comparison to the spine, and how that makes the belly of the knife even larger. Also notice the enlarged choil right at the base of the blade and before the handle.


Grind

The grind of the knife is the last piece of the puzzle. The grind can make or break the knife. There are a few main types of grinds as well. Just keep in mind that this is in no way comprehensive.

This image here shows many of the main grinds. They call the middle grind "high flat", although it is what I have typically seen called "sabre" grind, so that is what I will describe it as below.



Scandinavian grind. This is the simplest kind of grind out there. Somewhere on the face of the knife (usually below the centerline), the blade is ground to a point with just one grind on each side which brings it to the final edge. The name is because knives from scandinavia usually feature this type of grind. The most common brand you see with this grind is called "mora", and they're a heck of a deal. I picked my mora up for $8 on amazon, and its an excellent knife.

Here is a mora with a Scandinavian grind. Notice how low on the face of the knife the grind starts, and how there is no secondary edge.



Sabre grind. A sabre grind can be vaguely similar to a Scandinavian (scandi) grind. On a sabre ground knife, the thickness at the spine is left untouched for some amount of side (face) of the knife, before the "primary" (the one that shapes the knifes profile) grind starts. The primary grind (on any knife) then tapers down to "almost" the edge, where the secondary grind (the edge) starts. Sabre ground knives therefore have lots of material behind the edge of the knife. Sabre ground knives therefore are usually a bit heavier, and their primary grind angles are a bit more obtuse than a knife with a full flat grind. Because of this, sabre grinds are usually seen on "stronger" knives designed for rougher tasks like chopping, batoning, prying or something like that.

Full flat grind. This one is simple after hearing about the other grinds. The primary grind starts exactly at the thickness of the spine, right at the spine, and tapers down exactly to the small secondary grind. In other words, the profile of this grind is a simple triangle, if viewed from the tip of the knife. Full flat grinds have a more acute primary grind angle than a sabre ground knife of the same blade height and thickness, and are therefore very commonly found in knives designed for slicing.

In this photo you can see a full flat grind (bottom knife, with green/yellow handles) next to a sabre ground knife (on top, in black). The full flat ground knife has a drop point, while the sabre ground knife has a clip point. It is easy to see where the primary grind of the sabre ground knife starts and is easy to see about 2/3 - 3/4 of the way up the face of the knife.



Hollow grind. This one is more rarely seen, as it is a bit more specialized. A hollow grind is what you would have if you took a full flat grind, and made the face of the knife (the primary grind) concave, rather than flat. What this does is make the angle of the primary grind behind the edge very acute. This style of knife is almost never designed to cut THROUGH things (think cutting strips of cardboard where the whole face of the knife is buried), but rather to cut "into" things. The easiest example of a hollow ground knife is a straight razor. They want the edge to be super thin, and the "media" they are cutting isn't thick or long, they can make a much thinner edge with a hollow grind than they could with any other kind of grind.

Here is a hollow ground straight razor. Notice how deeply concave the face of the knife is. This makes the knife VERY sharp, but not very good for slicing through media (think cardboard).



Convex grind. This is the last one I'll talk about. It is pretty easy to understand, and fairly commonly seen. Take your normal full flat grind, and then instead of taking away material from the side like you do with a hollow ground knife, you "add it back in" (visually, not how its made though of course) to make it convex, instead of concave. What this does for the knife is it gives it more of a teardrop shape, and it retains a good amount of material behind the edge of the knife, so it is a very strong design.

Notice how the blade profile has no actual straight grind, it is instead one continuous curve. This image is courtesy of the backyardbushman.



So there you have it. If you read through this and actually understood most of it (if not, try it again :)), then you should be actually pretty well educated on knifes compared to most people out there.

With this knowledge, you can now look at almost any knife, and see from its design what it is probably used for. You should know that if you're wanting a good steak knife, it should probably have a nice large belly, and probably a full flat grind and probably be pretty thin (traits of good slicing knives). If you're looking for a chefs knife, you're probably wanting something  similar. If you're hunting or camping, you will probably be looking for a drop point knife with a full flat or perhaps sabre grind. Those looking for combat knives will likely want something with a clip point, while "camping" knives (larger wood processing knives) are more frequently seen with sabre or convex grinds because of the abusive tasks that they are asked to do.

This is the basics, and I've learned a bit more. But this is about as short as I could make this post and still make it be understandable. Perhaps in the future I will do a bit more in depth post on the more obscure knife patterns or designs.

Cheers!

Monday, May 13, 2013

Logans leisure #1: Open Broadcaster Software Review

Open Broadcasting Software Review

How I found it

I started on this adventure looking for a way to record audio and my actions on my desktop. Just like pretty much anyone else, I started out by searching the internet for "top screen recording programs". What I found was that there were a myriad of different program options out there, each one with their different pros, cons, and apparent different design goals. After searching for a while it became apparent that for each general category there were a few programs that were frequently considered the best out there.

Like I said, I started out looking for a screen recording software. The main (windows) software that I kept hearing about were Camtasia (paid) and CamStudio (free). Since I'm a rational (read: Poor) recent college graduate, I of course started out with CamStudio. CamStudio is a great product actually, and once I had installed the HD codec for it I was quite pleased at the quality of my captures. However, there was one huge problem that I had with CamStudio.

CamStudio lets you choose one source of audio. Now, if you're recording some sort of tutorial and need your voice captured, its not a problem. Neither is this a problem if for a different tutorial you need to only capture the sounds that occur on the desktop (aka, the sounds that you hear from your computer). Where this becomes a problem, is if you want to do something like say... record a skype conversation with your parent/family/relative/etc. Because you can only record from one audio source, your video will have the full skype video , and either the audio from your MICROPHONE, or from your DESKTOP (aka, either your voice, or theirs). Obviously this is less than ideal.

After digging around for a while, I learned that I had a few options. There is something called "stereo mix" that can be enabled on certain sound cards. Stereo mix allows you to simply mix the two audio sources into one. Perfect, after some quick looking around, I learned how to do that, and it wasn't hard. I thought I'd solved my problem. Turns out... not even close. To use Stereo mix (which not all sound cards do btw), the sounds all have to be handled by the same audio device. For most people, this shouldn't be much of a problem. However, if you use ANY two different sources, then this becomes a huge problem. I myself use two different USB devices for much of my audio. I use a Fiio E10 as my USB DAC and pre-amp (for my desktop 2.0 system), and I use a USB microphone (Samson Go Mic). Because these sources are totally different, there was actually no way for stereo mix to work. At all. Awesome.

After a bit of research, I learned that one way that maybe people have dealt with this problem was to use a program called "Virtual Audio Cable". This is a small paid program that lets you select audio streams and "virtually" connect the inputs and outputs to basically whatever you want. This would work fine, but would cost money. The free version of the software also works, but it sadly inserts the words "trial" every 15 seconds (an actual 15 seconds, not an exaggeration). Clearly not as ideal (aka, free), but at least I knew there was a solution. I still was looking for a better (aka, more free) solution if it was out there though.

Finally, I discovered a different class of product out there meant for something entirely different. Broadcasting software. Most of these allow you to have multiple audio sources (my USB devices included), and also allow for the same types of screen recording features that you find in the more typical screen recording softwares. The most common one that I found is called Xsplit. It is very popular, and very not free (noticing a theme here?). But once again, at least there was a way (as a side note, I'm totally willing to pay for something if it does what I want, and there is no other solution, but I usually at least exhaust all my available options before I do that).

After learning about Xsplit, I of course looked to see if there was a better (free) alternative. And I found one. It is a relatively new open source program called "Open Broadcaster Software" (aptly named). It offers almost identical functionality of Xsplit, and is completely and totally free. Awesome, I love the internet.

Open Broadcaster Software


Link to the Open Broadcaster Site

I gave it a try, and actually discovered that the program is entirely usable, stable (even in its 0.xxx version), and even understandable. After using it for a month or so, I thought that I'd help everyone out there looking for reviews and information about this new software (like I was two months ago, when there wasn't any out there) by creating some sort of brief overview of how it works, and what my impression is of the software so far.

Here is what you'll see when you fire up OBS. Notice that you can separately control desktop and microphone sounds right from here.



The most important thing to know about OBS (open broadcaster software), is that before you can start recording using OBS, you have to create a scene. You can (and likely will ) have more than one scene, each with one or more captures. That is, it is a one to many relation ship of OBS to scenes, and also a one to many relationship of scenes to captures. Knowing that, you'll be half ready to use it.
Scenes are simply different images that you want to have displayed to your final output. So just like a real broadcasting studio will want to be able to quickly and seamlessly change the video scene from the content, to a commercial, you can do the same by having different scenes. Each scene can have totally different captures (as well as multiple captures), and you can arrange the number of captures/images in each scene into whatever format or design that you would like.

For reference, my normal starcraft casting scene has 7 captures (game, replay overlay image, player images [x2], scoreboard, etc). Switching to a different scene is as easy as assigning a hotkey to each one, and then pressing the hotkey during the live recording/stream. Each one of the red rectangles here is a different capture, all arranged into one scene.



The Main capture types:

 To add a capture, simply right click in the "sources" window, and add the type of capture that you're wanting.



Window Capture
Window captures are just what they sound like. They capture the windows. You will note that when you're creating a new capture in your scene (remember, before you can create captures, you will need to have a scene created to add them to), you will have the option to take either the entire window, or just the inside of the window. Generally unless you are doing a tutorial or something, you will want only the inside of the window. Capturing just the inside of the window prevents the window close/minimize/maximize and border padding from being captured.
I would also like to point out that window capture allows a window to be captured even if that window is behind your current active window. This is invaluable, because at times you only have so much screen realestate, and allowing some windows to be behind the current active one, but still be included on the output is crucial.

Window Captures are recommended for basically everything, unless you need some other form of capture. It should be considered your "default". It should also be noted that the window needs to be open for the capture to be created successfully.

Monitor Capture
Monitor Capture. This one is similar in concept to window capture, but instead of capturing the window regardless of where the window was, you capture either a complete monitor (entire screen), or a sub-region of a screen (just a specific area of that screen that you specify). I used this a lot af first as it was the easiest capture to setup, but found that over time it has become my least used capture type, and is generally reserved for tutorials or something else where I want to view entire portions of my desktop.

Game Capture
Game Capture. This is one of the "killer" features of OBS. It has DX hooks that allow it to record full screen captures of games. Just like window capture, for you to create a new game capture, the game needs to be running for you to be able to set it up. Once you have set up the capture in that scene, you don't have to re-setup anything. You simply have to fire things up and get recording.

Game capture is something that doesn't work with some of the more typical screen recording softwares like CamStudio. They can record if the game is not un fullscreen, but fullscreen game captures is something that only Xsplit and OBS do (that I am aware of at the moment anyway).

"Secondary Captures"
The secondary "capture" types are all pretty simple and easy to understand. They simply do things like insert images (including animated GIF's), insert text and so forth. Just like anything else, once they are added to the scene, you can easily edit the scene to get the images and text located whereever you would like.

The Wrap-up


Overall I've been very happy with OBS. The product works just like you'd expect, has pretty decent documentation (something that you usually do NOT see with open source projects) and has allowed me to do all of the things that I couldn't do with CamStudio, while retaining almost all of things that CamStudio could do.

If you're looking for a way to do screen capture on your windows box, particularly if you have ANY need for capturing more than one audio source, want to record full screen games, or want to stream live, then I really think you should check out OBS and see if it fits your needs.

Thanks for reading :).

And I will be adding a video showcasing the same things on my youtube channel here as soon as I finish moving, and get all set back up again. Of course I'll let everyone here know when I do that :).