TESSELATION

There are far more than five senses available in the bleak sensorium of human existence, and one of them is the sense that you could’ve done better. Could I have done better? Let’s find out.

Obligatory finished product first:

IMG_3752.JPG

I think the journey began confidently over beers, but the tolerances involved in interpreting what someone means by “portable and loud but doesn’t have to be too loud but also make it look really cool” can allow for a lot of design doubt (by no fault of their own–it’s just hard to gauge what reference points people have for “small” and “loud”), and so by the time I packed the Tesselator out, I had built 6 separate designs, each one but the last dusted in a fine sheen of “not-quite-good-enough.” This is their story (dim the lights).

ROUND 1: TOO BIG

Try 1 was actually pretty awesome. Basically, I wanted to see what the hype was about with the HiVi B4N’s. Ports in small boxes often of chuff me the wrong way and the client wanted “big circles on the front,” which I interpreted to mean speakers. Plus, I go for passive radiators when I can…and so I went for a passive radiator design. I had been having luck with asymmetry, and I wanted to carry a “T” motif through the design.

IMG_2487.JPG

The problem with the B4N’s that all the fanboys won’t admit is there’s an insanely high Q 15 dB break up mode right at 3kHz, and it likes to jump around depending on boundary conditions, air temperature, zodiac sign, etc. [For the uninitiated, basically the B4N is the classic DIY beginner speaker design because it sounds and looks good, is cheap to make, and because so many other people have built it. However, the all metal cone it’s based around tends to “ring” like a bell at annoying frequencies]. So I wanted to be at least 15 dB down by 3kHz which meant a tweeter that could hit 1.5 kHz, and for directivity reasons, I decided on a 500 Hz crossover, which obviously meant I was going to use the Aurasound NS1s.

Then I found a sweet spot of plywood that I could waterfall from top to front face to edge, cut with confidence, laid out some paper circles for test fit, and very poorly lock-mitered the shit out of the wood.

Lock miters as promised:IMG_2498.JPGThe separated volume is for the electronics–lesson learned from previous projects is when trying to attain a good seal, either get better at electrical engineering, or compartmentalize your bad work.

Of course, I still overestimated my abilities and placed the batteries in the acoustic chamber for space reasons. The white boxes are the enclosures for the NS1s.IMG_2522.JPG

I also had the idiotic notion that using banana plugs as pass-throughs would be simplest, but not only did I get the polarities wrong, it turns out banana plugs are super expensive and take up tons of space:IMG_2503.JPG

I didn’t manage to fuck up the miters too much and the face is perhaps lovable by more than it’s mother:IMG_2947.JPG

I cut out some purple heart and embedded some glow in the dark for the volume knob:

IMG_2690.JPG

With all that shit sorted, it was time to make an absolute mess of the ASP. The signal chain starts with a power-source isolated bluetooth chip, which is split by an op-amp active crossover, the low frequencies going to a china-market bought TDA7492 class D amp and then to the B4N’s while the high frequencies are padded down by potentiometer and sent to a similarly procured TPA3118D2 amp. The TDA7492 is rated for 40W into 8 ohms @ 25V @10% THD, which works reasonably with the B4N’s 25W RMS rating. Typically it’s better to spec an amp with more headroom (@ less THD) over the continuous power rating of a woofer in order to match the crest factor of music, but I didn’t think of that at the time.

IMG_2530.JPG

This is the last build I used analog signal processing on, partially because of the above mess of wires. Here’s the terrible wire management in context:

IMG_3299.JPG

I opted for a glow in the dark,  3D printed, inset handle to preserve the form factor, and then slapped some spar varnish all over that bad boy and called it a day.

IMG_3346.jpg

ROUND 2: TOO QUIET

Sometimes things come together, and sometimes they come together perfectly. This was not either of those scenarios; the “Tesselator” it’s actually just a decent name pun. Honestly, I was pretty happy with Round 1, but it was just not quite there. It was a little too big, and the lock miter bit I used for the edging was one of those cheap amazon finds that reflect their pricing in their quality. So, I started completely anew…by taking an old project that had been called into half-hearted existence with 3 other siblings in a similarly iterative process that finally yielded the Krump Kanon and cutting it in half. In general, this approach is poor.

It sucked for multiple reasons, some of which were that it was ugly and sounded bad and was still too big. Essentially, it failed to meet any of the criteria laid forth.

IMG_8529.jpg

ROUND 3: TOO LITTLE BASS

I then tried a new design that was basically Round 1 but with half the stuff in half the space. It also sucked. I was convinced that it wouldn’t because of my experiential lesson on KK Round 2–“efficiency is king”–but it turns out that only works if you have a pleasing natural response or some good DSP.

It was doubly a shame because the wood that went into the box was beautiful, but for some misguided reason, I used the cheap lock miter bit from Round 1 and, completely to my surprise, it didn’t work well the second time either.

IMG_8530.jpg

ROUND 4: TOO HAMMERED

I then decided that everything I had decided was wrong, that efficiency wasn’t king, and it was all about extension. I went back to some of my “super-compact design” notes and decided to drag some micro-subwoofer Tang Bands into wretched existence. The only problem is that tuning a small box to subwoofer frequencies requires a long-ass tube (because the air spring in a small box is relatively stiff, you need a lot of acoustic mass in the resonating port to get a low resonance frequency), and long-ass ports are very inconvenient to fit into small boxes (not a problem encountered in my daily life). I had a minor stroke of brilliance stroke and decided to make a port that was both a long-ass tube AND a handle, therefore circumnavigating this issue.  Here is the relatively tiny box, which looks shitty because I had also come up with the terrible idea that I’d wrap the whole thing in carbon fiber once assembled:

IMG_2774

And the incredibly sleek and not at all awkwardly protruding port/handle design. IMG_2794

I set the thing up, hit play and was, for the first time in a long time, pleasantly surprised. Here’s a casual video of it in a living room (turn ya sound up and throw on some head phones to appreciate the FIDELITY that’s SPEWING out of this BOOMBOX).

For such a tiny little thing, it was really moving air. It had real potential until I hit it with a hammer.

ROUND 5: TOO UGLY

Not really much to go on about here. It was ugly. I underestimated how weird it would look to have the speakers sticking out of the face instead of flush mounted, and the thing looks like a damn bug-eyed pug.

ROUND 6: NOT BAD

In a surprisingly reflective and narratively satisfying moment, I decided to combine the lessons of the last 5 iterations. I drew up a plan for a small, relatively efficient boombox with precise waterfall miters, inset speakers, DSP, and a port handle. And no fucking carbon fiber.

IMG_3748.JPG

THE DESIGN

On to the even more boring stuff. Yes, yes, I know the stereo image is going to be ruined by placing the “tweeters”  on top of each other. But it looks cool, and there’s no point in attempting to get stereo width out of a box narrower than one’s head.

Anyway, it’s got 2x TB W3-1876 in a mono “sub” configuration, sitting in a 3.7L box stuffed with light polyfill, tuned to 48 Hz with a 12″ long by 1.2″ diameter port. This theoretically gives an f3 of 42 Hz. The port is a 3D printed 3-section design that was epoxied together for surface finish and adhesion. It’s flared on both sides equally for symmetry. The “tweeters” are 1″ W1-1070SH, which are sitting in a 0.1L box and crossed over in a 48 dB/oct LW DSP crossover at 500 Hz. The outer dimensions are approx 4.5″Hx4.5″Dx14″ and the 80Wh battery supplies 24V (nominal) to a China Black Market TDA7492 (to run the woofers) and a CBM TPA3118D2 (for the tweeters) for about 8h of quite listening and 4 hours of TURNT listening  MiniDSP 2×4 runs the tuning, and the bluetooth is run by an APT-X Bluetooth 4.0 chip. The advantages of this chip are high quality transmission with surprisingly low radio noise, but by some trick of China-blackmarket circuitry, it manages to clip it’s output stage at maximum source volumes. I suspect they added a NE5532 output buffer but didn’t manage the gain properly. The numbers on the edge display battery voltage, which is my lazy solution for a battery gauge.

The wood itself is is 1/4″ maple ply, reinforced on the interior with another 1/8″ of ultra-stiff epoxy and some bracing. I finished the wood Water-Lox high gloss finish, which I enjoyed for the simplicity of use and quality of finish. It brings out the grain and luster of the wood beautifully, and it dries quickly into a reasonably durable exterior finish.

THE SUMMARY

Subjectively, the thing is awesome. It sounds far bigger than it looks, and with DSP trickery, there are little concerns of over-excursion despite a relatively low tuning for such small woofers and such a small box. It’s a good feather in the cap for extension over general sensitivity, though it seems that the “high-moving mass, giant coil, really strong magnet” combination that Tang Band is throwing into their designs does a decent job of balancing sensitivity with extension, and this design ends up being a good compromise of the two. The stereo image is shit for previously mentioned issues, but it manages to have pretty laid-back directivity, which is all you could hope for from a small source.

Final assessment: can fill a living room with danceably loud music, yet it is small enough to hand carry to a barbecue. Ship it.

FUCK YEAH RECURSION

A Function to Un-Nest Nested Structures in MATLAB

So I’m flying back from Shanghai right now, (youalreadyknow it’s business class) and I decided to business-expense-splurge for the in-flight wifi, which is about as fast as a snail in the process of peacefully passing away. This means the only scrap of entertainment I can garner from my laptop is writing code in MATLAB. Writing fuckaround code in a pretend programming language in a rickety IDE has a provided surprising source of succor; if you were here you’d know it too because you’d notice I have been sitting FOR HOURS WITHOUT MY SEATBELT ON because I was simply too enraptured by the alternating tides of hate and happiness that MATLAB so easily exerts on the user.

Basically, I’m working on a GUI that allows a user to programmatically  create test limits for test data, while also allowing the user to efficiently adjust the limits where our absurd test data manages to invalidate centuries of statistical knowledge. This requires allowing the user to load a specific test from within an absurdly packaged data file which comes from a test system written by someone who clearly much prefers obfuscating and hiding things over effective data collection WHICH in turn means deeply and variably nested structures. Like 400-megabyte-CSV, stuck-in-limbo-with-Leonardio-DiCaprio, booger-that-you-can-feel-but-after-several-embarrassing-red-lights-you-cannot-remove levels deep.

Therefore, after careful perusal of mathworks, I wrote the following code. It uses recursion to return an array of strings describing each and every branch of a struct, down to the twig. It is surely my greatest accomplishment thus far.

function allfields=fieldnamesr(struct);
% FIELDNAMESR recursively explores the depths of nested structs To find all
% possible branches
%      fuck yeah recursion
fields=fieldnames(struct); %are there any field names?
idx=1; %increment variable
for i=1:1:size(fields,1) %for all field names
    if isstruct(struct.(fields{i})) %see if that field name itself is a structure 
        temp=structRecurrr(struct.(fields{i})); %if also structure, then we must go deeper!
        for j=1:1:length(temp) %for all returned values 
        allfields{idx,1}=sprintf('%s.%s',fields{i},temp{j}); %return a string containing returned values
        idx=idx+1; %increment
        end
    else
        allfields{idx}=fields{i}; %if field name not struct, then we are at bottom level
        idx=idx+1; %increment
    end
end

AQUADMAN

Abstract

Classic bro-split. With some things mixed up/distributed.

Methods

The idea is to cut effectively. The metabolic shift when cutting can reduce caloric deprivation efficacy for people with naturally slow metabolisms, while the energy deficiency can hurt those looking to preserve lean mass, especially for people with fast metabolisms, and people coming off of bulks. The plan is made for my friend (Aquadman) who is looking mainly to have visible abs, so the preservation of lean mass is somewhat secondary, but the theory is compound lifts for energy output and physiological stimulus, with a rotating high-intensity finish in order to add some spice.

Personally, while cutting, compounds and higher weekly lift frequency helps preserve lean mass. It’s completely anecdotal, but I’d guess the consistent stimulus keeps a muscle group from being in ignored by the body, while the compound lifts helps maintain a more anabolic hormonal balance.

Masstronomy

Abstract

This plan was developed for Ironvlad the Giggly and the Philibuster, two fairly light individuals who are training up for Muay Thai. The idea behind this is a simplistic 3-day/week periodized program to gain lean mass to develop functional strength for Muay Thai using barbells and dumbbells only–it is assumed that other more specific training will be done in the scope of the Muay Thai classes. The two individuals it’s intended for need to move up a weight class, so the idea is to split between large compound lifts in a strength rep/set scheme to build power and explosiveness and large compounds with accessories in a  hypertrophic rep/set schemes to help build lean mass. The mesocycle structure throws in some extra MUSCLE CONFUSION by changing movements and modulating intensity and volume through out the cycle. The gradual ratcheting of volume/intensity through the cycle, besides being a mainstay of periodization, is intended to take advantage of the bulk.

Method

Essentially, the 1RM are establish on Week 0, which sets the weights for the next few weeks. Then a 6 week periodized mesocycle follows, with each cycle ending by re-establishing a (hopefully) higher 1RM. Obviously, the %1RM numbers and rep/set structures are guidelines, as the math they are based on is fairly generalized, and one sees a lot of variation day-to-day and person-to-person in response to volume/weight/bulking etc. And besides, sometimes your friends are watching and the cute chick you were staring at is vaguely looking in your direction wondering which of the sweaty, grunting, gym nerds is making so many noises and the random song that came on right before your set drops super hard and you deadlift your current 5RM for an easy 12 and you walk away like a light-headed, red-faced, veiny and skinless gorilla, so never let a prescribed rep number tell you what to do.

The structure of the lifts is 2 main movements, meant to be done at the rep and set and %1RM determined by the week number. This is then followed by 2 accessory super sets, which don’t really need to follow the mesocycle, though the recommendation is 4 x 6-10. The 2 accessory lifts vary through the week, and there’s a decoder ring which includes 2 versions for each accessory superset; the idea is to alternate between the  x.1 and x.2 versions one week to the next.

There’s also a little calculation section on the right which recommends the weekly intake, and daily recommended intake as per Ironvlad The Giggly’s BMR, activity, desired gains, desired time etc. Everything that’s green text in a green box is for user input, in order to calculate necessary intake.

Click here to download:

ironVladTheGiggly

RELEASED INTO THE WILD!

 

IMG_2730.JPGMuch like worried parents will fuss over a child before sending them off into the world, I fidgeted over the details of this lil guy, attempting to delay the inevitable departure, filled with pride and worry at the rigors he’ll face out in the real world. Unlike most worried parents, I eventually said “fuck it,” and dropped this fucker off at the local Fedex, to be shipped cross country in a large cardboard box.

 

The details were particularly sweat-able on this build, as this was essentially the third iteration on the concept, starting with a beast of the beats that went to Keith, and then a semi-pro configuration that went nowhere. Here are the vague details of the build:

 

img_2203

Obviously, the first detail to isolate is the Lego theme. Legos, by the way, are a fairly mediocre permanent construction material. Turns out the 10-micron precision makes them fairly expensive from a cost/volume stand point (a small enclosure requires a lot of legos). Had my little siblings help me build lego boxes to compare the looks. Turns out rainbow is a crowd favorite

IMG_2208.JPG

Fast forward a few days, after much designing, some deliberation, and then cutting, I’ve got a wood box to match the lego box. I believe I designed for 4L internal volume for each NS3 driver, which, in retrospect, I feel was too much. However, once the wood is cut…alea acta est. I went for a seamless miter approach on this build, to avoid the ugly “end-grain” of the birch plywood. I wrapped the grain around the “depth” of the box, but the grain of the “face” does not flow into the edges. So far I haven’t figured out a solution to this that works out in our boring 3 dimensional Euclidean / Newtonian universe.

IMG_2272.JPG

Here we can see the translucence of the 3d prints, pre assembly. Originally, I had not planned for there to be a VU lightstrip in this build, but then I realized that since I built all the electronics off of the wood box, fitting them into the lego box, which had 5/6 faces constrained already, would be extremely difficult. At this point, I also realized I miscalculated the amount of space wires take up. Medusa rears her ugly cable management head yet again.

IMG_2413.JPG

Now you see what I mean.

IMG_2277.JPG

Analog signal processor demonstrating that I am the particular type of person that loves neat things but does not love making things neat, and so I live in a constant torment of my own devising. I chose a scheme that allows for a bass shelf at lower volumes, but flattens the EQ towards higher volumes—it’s essentially a loudness compensation circuit, except that since I have no reference for the actual loudness of the output (due to lack of information about source gain, listener position). I call it the “party” compensation circuit, because while one might enjoy deep sonorous extension at lower listening levels, once your friends roll through, 14 beers deep each, you’re cranking that fucking volume knob. And while the NS3’s have a lot of allowable excursion before crashing, the garbage bass lines that litter the hip hop soundscape are essentially glorified sine waves that will fuck your shit up. The obvious and simple solution to this is a simple dynamic gain-tied or signal-adaptive high-pass for excursion limiting, or a multi-band compressor. I leave these endeavors as an exercise to the reader until I have the time to implement them on the next build.IMG_2409.JPG

Pre-wood finishing. After disliking the gumminess and amber tint of marine spar varnish, I chose to use tung oil to bring out the figure. Then I sealed the box+3d printed parts with epoxy (bar top) for strength/durability, and finally, for UV protection and hardness, I finished with a clear gloss polycrylic. Here’s what it looks like finished:

IMG_2864.JPG

IT HAS BEEN DECIDED

So for  the KrumpKanon I’m going with the W5-1138SMF, and for Keith’s, the W6 version of the same driver. Why? Because it has the excursion, Fs, and general specs to have solid bandwidth and linearity at loud volumes. Unfortunately, if you look at the models:

eliseBoxGrabTB1138VentSpecs_PRChoice2.PNG

 

The yellow line represents the optimal ported design, while the blue is the optimal 8″ Dayton Audio PR design. The vented design is more efficient, has higher bandwidth, and requires less box volume. However, for a 4″x2.5″ port, opening I’d need 36 inches of port to get the 12L box resonating at 36 Hz. That’s absurd, and what’s more absurd is that at 50W, the airspeed would be ~40 m/s. That’s 90 mph, and the air has to move 90 mph through a folded port 3ft long. I have low expectations for the laminarity of the air flow in that scenario, but an educated guess tells me it would sound like an elephant farting through a muffler.

PR’s it is. With dual 8 inch passive radiators, I could be pretty near the vented design, but a) that’s a ridiculous amount of radiator area for a 5 inch  area, b) that’s 2x the cost, machining, surface area dedicated to the radiator, and c) trying to fit two 8-inch radiators, a 5-inch woofer, and 2 full ranges onto the front of the boom box would be ridiculous. Why not throw them on the back? Well, then the front will look stupid, barren. I want the raw visual and auditory power of a fat fucking 8″ blasting you in the face. But fitting 2 8’s on to the front of a reasonably sized boom box (using the esteemed [boombox name to go here once I find my notes] as a template) would be geometrically dubious.

So at the sacrifice of about 1/3 of an octave of bass, I’m going with a single 8. I hate leaving bass on the table, especially when it’s easy, efficient bass, but given the constraints and my desire for a simplistic design…it’ll have to do. Additionally, and this is the most important part, but, if you look at an analysis of the most popular music being played these days, there’s  little content beneath 40 Hz, and therefore, little need for sound below 40. So I guess 40 Hz it is, and we’ll hope it sounds good. There’s only way to find out.