Tailwind, the CSS framework, the song…

Tailwind is a CSS framework created by Adam Wathan, and beloved by many. I’ve found it’s really helped me understand CSS grid in particular, and has made building responsive layouts really easy. It sometimes comes in for criticism because it is based on utility classes, meaning you mostly skip the ability to attach styles to elements via CSS selectors (a fundamental feature of CSS). However, when it’s used with a content framework that provides components (like Laravel’s Blade), they can effectively take on that role and prevent repetition. One of the consequences of using Tailwind is that you often end up with lots of classes in HTML class attributes.

Anyway, Tailwind is cool and I like it, so I decided to write a song about it, in the same vein as my previous effort for The Good Ship Laravel.

The arrangement in Logic Pro

It’s all about a hapless, design-challenged developer (could that possibly be me??) having trouble with their styling and layout, and thinking they should give this Tailwind thing a go as a way to help them solve it. They give Tailwind a try, it takes them a while to get to grips with it, but they finally figure it out and all is rosy.

The “I ain’t got no style; I got Tailwind” line was the first line that came to me, followed by “I got classes…”, giving me most of the chorus, but the verses took a while longer. I wrote the music for the chorus first, then worked backwards to make a verse that led into it nicely. There’s a break in the middle that seemed really obvious (“When my mode is getting dark…”), straight out of many other songs – there’s nothing revolutionary going on here!

I played the guitar parts for the chorus (which is a simple C, Am, G), and eventually found a sequence for the verse that worked well (C, F, Dm, G, then Csus2, G at the end). I wrote a very melodic bassline on keyboard. Logic Pro’s Drummer took care of the brush-style drums – I didn’t spend too much time on them. Unfortunately I then found I simply couldn’t play the chord changes in the verse smoothly enough, so I enlisted the help of musicalduo on Fiverr, who did a great job of it. He also played a really smooth version of the bass part, which I hadn’t asked him to do. So my guitar playing only appears in the chorus, and I need to practice more!

I don’t rate my singing (I would love to work with someone that can sing!), but Logic’s Flex Pitch editing works wonders. I also really like using it for vocal harmonies – figuring them out using Flex Pitch, then re-singing them, just as I did for The Good Ship Laravel. I had a cold for a couple of weeks and early versions sounded like I was holding my nose, so I re-recorded them when I was feeling less bunged up! I’ve discovered that you can get away with really bad backing vocals, so long as they are in tune!

I have some other, older songs I’ve not released, one about npm, one about being an open source maintainer, and a half-finished Whitney Houston-style belter about composer… PRs welcome!

Lyrics

[Verse]
I’m trying to build an app that looks good
It’s all taking much more time than it should
Classes and styles going ‘round in my head
turns out it’s not as easy as I originally said.

I’m finding my breakpoints, feeling defeated
and all this old stuff will have to be deleted
One thing is clear from all this confusion
I’ve had to come to an unfortunate conclusion

[Chorus]
No, I ain’t got no style;
I need tailwind
I got problems, maybe more than a few
I need tailwind
Oooooh, I ain’t got style;
I need tailwind
Not sure what I’m gonna do
I need tailwind

[Verse]
You might think I’m crazy, but I’m gonna read some docs
I’ve gotta figure out how to arrange all these blocks
It looks great on my Mac, but explodes on my phone
and judging by Stack Overflow, I’m not alone

I ask, “hey Adam, you got any ideas?”
He says, “yeah, get Tailwind to mop up those tears”
So I’m going with the flow, flexing my grid
trying to figure out what those tutorials did, but still,

[Chorus]
I ain’t got no style;
I’ll try tailwind
I got problems, maybe more than a few
I’ll try tailwind
Oooooh, I ain’t got style;
I’ll try tailwind
Not sure what I’m gonna do
I’ll try tailwind

[Middle]
When my mode is getting dark
and my layouts fall to bits
I keep trying all kinds of things
until suddenly everything clicks

[Verse]
My grid’s all cool unlike my previous wreck
I don’t have to keep my units in check
I love my pretty colours, my text is so clean
I hate to think of what it might have been, but now 

I’m slicing up my blade into little tiny pieces
It’s the moment for components, it’s all utility
I’m loving how it works everywhere, especially on my phone
Tailwind’s really in several classes of its own

[Chorus]
No, I ain’t got no style;
I got tailwind
I got classes, maybe more than a few
I got tailwind
Oooooh, I ain’t got style;
I got tailwind
Maybe you’d like to try it too
We got tailwind

[Outro]
Oooooh, I ain’t got style;
I got tailwind
Oooooh, I ain’t got style;
I got tailwind

NASA Space Sounds for EXS-24

I saw that NASA released a load of audio clips from various historic space missions – from Sputnik to the final flight of Atlantis, via the moon! Space sounds have long been used musical contexts – SpaceOddity, Telstar, Pulsar, Lemon Jelly’s “Space Walk” to name but a few. I felt I had to make these more musically useful that the ‘ringtone’ MP3s available on NASA’s site, so I wrapped them up as a library for the EXS-24 sampler (appears in Apple’s Logic and Logic Express DAWs). The sounds will work straight away in Logic, but the sounds are accessible in the archive as AIFF files so you can easily convert them to other formats. I split up the sounds into the same historical categories as on the NASA site so you’re not loading up all the samples at once. Keyboard mapping isn’t anything particular (white notes starting at C1), but I did clean up the samples a little and edited down some shorter clips of the more familiar or musical sounds (“Houston, we have a problem”, “The Eagle has landed”, “That’s one small step” etc).

The original sounds are mostly mono with low bandwidth, resolution and sample rate, but many are supplied as stereo 44.1KHz 16-bit files, so I’ve converted them all to that as EXS-24 doesn’t seem to like mixing sample rates in one instrument.

So, go ahead and download the NASA sample library! (70Mb zip)

Obviously I have no rights to these samples; NASA is encouraging people to download and use them at will, and I assume it’s being published under their open-source license.

I wrote this entry a while ago but forgot to post it, duh.

Speaker & room calibration

I was lucky enough to pick up a Behringer Ultracurve Pro DSP8024 for a mere £50 on eBay recently. It turned out to have a buggy OS version (1.2), and Behringer very kindly sent me a replacement EPROM with a new 1.3 OS on it, which works just fine. I now have it installed between my Soundcraft mixer and my Wharfedale active monitors. I used its “Auto-Q” calibration routine and put up with some quite loud pink noise to calculate a room correction curve. Because it knows the spectrum it’s generating, it assumes that what it gets back has been altered by the combination of speakers, room and microphone, so it can calculate an eq map to compensate for it. It’s quite fun to watch as it has a nice big LCD screen to display the 31 1/3 octave bands – the initial spectrum is fairly peaky, but as it iteratively applies corrections you see (and hear) it flattening out. It’s also very obvious that my monitors don’t put out much below 50Hz (it analyses down to 20Hz), but that’s to be expected from a moderately sized box with a 6.5″ driver. The results are really pretty good, sounds lovely and smooth, but the real surprise is when you’ve been listening to it for a while and you switch out the EQ – it’s really quite a shock to hear the uncorrected version. Lots of purists don’t like room correction by EQ, saying it’s better to fix the room in the first place, and also that EQ calculated like this is highly dependent on the listening position (which it is). I have a lots of bookshelves facing my speakers; they make fantastic diffusers, and I have some Universal Acoustics absorber tiles on the sloping ceiling above my listening position. The longest room mode will be fairly undamped (I’m not about to start hanging duvets around the walls!), but the resulting EQ is below 6db in either direction across the whole range – I’ve heard of rooms with 24db peaks! Anyway, after all that, it sounds lovely, and I’m happy!

Mixers

I’ve had a little Behringer UB802 mixer for some time and found it very frustrating to use as a front-end to my computer system. There’s nothing particular wrong with it (clean audio, good functions, simple, reliable), it’s just not very well suited to the job, mainly because its routing is not flexible enough to be used for audio input at the same time as output. One big problem I had was that the mic I use for audio input (mainly for Skype) routed to my speakers too; a recipe for feedback and poor input level.
In order to resolve all this, I’d been contemplating a Soundcraft Compact 10 as it seemed to have much better routing options. Last week I managed to pick up the smaller Compact 4 for a mere £30 on eBay (I figured I could live without the extra size and inputs for that price). What a difference! It achieves its wonders by having an additional “recording” mix buss. It also has separate routing for monitoring. Each channel has a button that when pressed, routes that input to the recording buss and removes it from the main mix. Similarly there is a monitor button that routes it to the monitor buss. if neither are pressed, it goes to the main mix, which you can conveniently route back to the monitor mix too. Multiple mix busses are par for the course on bigger mixers, but almost nobody does it for small mixers, yet there are tons of n:2 small mixers around that are used in this role, suggesting there are a lot of frustrated users that don’t know there is a way out. As Soundcraft’s manual says:

Why don’t other manufacturers design consoles like this ?
a) Because they are out of touch ?
b) Because they are not very innovative ?
c) Because they don’t have the experience ?
d) Because they don’t listen to their users ?
Who knows 🙂

The upshot of all this is that I can route the microphone to the computer’s audio inputs without having it also appearing on the mix bus going to the monitors. As far as I can tell, this routing flexibility makes the Soundcraft about the only small mixer that’s actually designed for this role. Most seem to gloss over this routing problem, or not want to “confuse” users with the concept of an additional mix buss. As an added bonus, it has two headphone outputs that are independent of the mix output, so I can turn my speakers down without turning down my headphones. The Behringer tries to do this, but only by giving you main and monitor mix levels, but as far as I can see you never really need the main mix outputs, only the monitor mix. The only real workaround for simple n:2 mixers is to have a separate mixer for input and output, which is quite a reasonable proposition when you see the price of things like the Behringer Xenyx 502, but I’m much happier having it in one box. Behringer make bigger mixers that have more busses (I think the cheapest is the Xenyx 1222FX), but they are also bigger, more complex and more expensive – overkill for my application.
It’s also interesting to contrast the marketing. Behringer describes the 802 as having 8 inputs, which is technically true – 2 mono, 2 stereo, and a stereo return – but in reality that’s only 5 independent inputs (total of 10 input channels). Soundcraft go the other way – the Compact 4 has 5 independent inputs at a push, but you can actually squeeze 8 channels into it in total, and you can actually get 16 channels into the Compact 10. British understatement at work?
The Behringer is still a great little mixer, and I’ll miss its diminutive size, the aux send, and a couple of extra inputs (which, now I’m firmly in software-synth land, isn’t really a problem any more). Anyone want to buy my UB802?