On trolls and truss rods, braggadocio and bridges: follow-up on my “first impressions” YouTube video about the Fender American Ultra Jazz Bass

Whew, that title is worthy of a master’s thesis. (Note: The majority of what follows is adapted from the script I wrote for a follow-up video that I have since decided not to make.)

About 3 months ago, I bought a Fender American Ultra Jazz Bass, and the day I took it out of the box, I made a YouTube video demoing the instrument and giving my first impressions:

In the time since I made that video, I’ve played the bass a lot, and I’ve had some ongoing frustrations with one specific aspect: I just can’t seem to get the action set to my satisfaction. The frustrations were exacerbated by a comment the video received last week, criticizing the high action on this bass due to the Fender Hi-Mass bridge… and also my abilities as a player.

Feeding the trolls

I’m not thin-skinned, but I do take criticism to heart. I know I’m not the most technically dazzling player, and I don’t aspire to be. I’ve been playing bass since I was 15 — that’s 34 years, if you’re into math — but I’ve never become a “shredder” for three reasons:

  1. I just don’t have the manual dexterity for it, especially as I’m getting older.
  2. I have not made my living as a professional player, so I have limited time (and motivation) to practice.
  3. Flashy technique is not the pinnacle of good bass playing.

I want to focus for a minute on that last point. Yes, technique matters. But playing fast is rarely the most important part of playing bass. Tone, groove, and fitting into the context of the rest music, where the bass is almost never the focus, are all, I would argue, far more important than ripping 32nd note runs at 200 BPM. Of course it depends on the genre, and on your goals as a musician.

These are my goals as a bassist: to play with a good tone, to lock into the groove, and to play lines that fit the music. And I think I’m in good company.

No, I am not implying that I am anywhere
near as good a bassist as Tony Levin.

I’m saying that he prioritizes the
music over flashy technique.

(Also, when he does want to do the flashier
stuff, he uses the Chapman Stick.)

Photo CC-BY-SA 2.0 Ian Muttoo

There’s also a fourth factor limiting my bass skills: since I’m a multi-instrumentalist, I’ve never tried to express all of my musical ideas on the bass. Playing other instruments has given me a measured perspective on the role of the bass in my own music.

OK, enough feeding the trolls. But even trolls sometimes make good points, and there is definitely a point here: even with the 10% discount I received from Fender, I expect a little more for $2000 than what I got with the Fender American Ultra Jazz Bass.

First impressions should never be made in the dead of winter

When I made the initial demo video, the bass had just arrived 24 hours earlier. (I let it sit for a day because it was the middle of a classic Minnesota January “deep freeze” where the high temperature was -8ºF.) I literally took it out of the box on camera. I shot the entire video, including doing what setup I could on a bass that was still adjusting to a new climate, that afternoon. I hadn’t had time to get to know the bass and really learn its strengths and weaknesses. Now that I’ve had it for three months, I understand it better.

There are a lot of really great things about this bass. But there are problems too. I’m judging it against my 2018 Fender American Professional Precision Bass. That bass, to me, is perfect. I mean, the Precision Bass and the Jazz Bass are very different beasts. But in terms of build quality, my American Professional P-Bass is as good as I’ve ever seen with a production instrument.

2018 Fender American Professional Precision Bass
Antique Olive, pickguard and pickup covers customized
La Bella Deep Talkin’ Bass Gold flatwound strings

2022 Fender American Ultra Jazz Bass
Arctic Pearl, no mods… yet
La Bella Deep Talkin’ Bass White Nylon tapewound strings

When I decided to get a Jazz Bass early this year, I admit I was swayed by the “Ultra” label… I decided that if I was going to spend a good chunk of money on an American-made Jazz Bass anyway, I might as well get the best production instrument Fender makes.

Well… OK. I will admit it. It’s (probably) not.

You can’t always get what you want

I used to want an American Elite Jazz Bass:

Source: Sweetwater

Then, Fender replaced the Elite with the Ultra. Overall, it seemed like mostly a lateral move. One really odd thing though, was the switch from the modern 3-screw high-mass bridge — the one that’s in my P-Bass — to the chunky 5-screw Hi-Mass bridge. Especially since it eliminates the string-through-body option. (They also changed the truss rod access in a way that definitely seemed like a cost-saving downgrade.)

3-screw bridge on the American Professional Precision Bass

5-screw bridge on the American Ultra Jazz Bass

This is the same bridge I had bought from Fender’s parts department to install on the “Frankenstein” fretless Jazz Bass I assembled a few years ago. It’s decent, but it’s not as nice as the 3-screw bridge, although it has the benefit of being drop-in compatible with the classic 5-screw bridge design, so it increases the mod potential.

The Squier Classic Vibe ’60s Jazz Bass that was the basis for my “Frankenstein” fretless. Source: Fender

But… who wants to mod what’s already supposed to be the “Ultra” bass? Hmm…

The bridge or not the bridge? Many factors affect the action

The Fender Hi-Mass bridge on the Ultra is chunky, and it affects how low you can set the strings. But how much does that really matter? Today we’re going to find out.

What is the goal of adjusting the action — a.k.a. the string height? Most players I know want the strings as low as possible, because it makes it easier to play fast notes… or really, just easier to play in general, because you’re not having to press the strings down as far, or as hard, to cleanly fret the notes.

I definitely want low action, because I want it to be easy to play. But the lower the action, the more likely you are to get fret buzz. Why? When you’re fretting a note, you’re basically creating a very long, thin triangle between the string, the bridge, and the neck.

Buzz happens when the vibrating string makes contact with other frets, so you need the angle between the string and the neck to be just large enough to keep the string from making contact with other frets. There are three ways to minimize buzz: adjust the truss rod to add curve to the neck, raise the bridge saddles, increasing the length of that “side” of the triangle, or… pluck gently, so the strings don’t vibrate as much!

It sounds like a joke, but the last point is important… turn up your amp and use a light touch, and you can really help this problem. It’s the only solution that doesn’t result in higher action. Still… this has been gnawing at me for 3 months with this bass. I’ve tweaked the truss rod and the saddles a bunch of times, tried modifying my plucking technique, and I just can’t get to a buzz-free sound without high action.

Some who have criticized Fender’s design of the Ultra Jazz Bass cite the height of the bridge as the problem, but I’m not convinced that is it. I can very easily lower the saddles and adjust the truss rod enough to get satisfactory “low action” on this bass… but at the cost of terrible buzz.

So, is it the bridge? We’re going to find out. As I mentioned earlier, I bought one of these bridges for a fretless Jazz Bass I was putting together — which, incidentally, I sold to help pay for this bass. The body of that bass was a Squier Classic Vibe ’60s Jazz Bass in Daphne Blue. I still have the stock bridge that came with that Squier. And now I’m going to install it on my American Ultra Jazz Bass, to see if a different, thinner bridge design can solve the problem of the high action on the Ultra Jazz.

Yes, I’m modding my Fender American Ultra Jazz Bass… by installing the bridge from an Indonesian-made Squier. Here we go.

Or… maybe not

That was the end of my prepared script for the video. The rest was going to, necessarily, come after I had swapped the bridge, which I was planning to do this morning as part of producing the follow-up video.

I woke up this morning not really wanting to spend the entire day making a video, not really wanting to swap the bridge on my Ultra Jazz, and… after having some coffee, realizing that I was still feeding the trolls (this post is too, but at least it’s less effort). I thought back to those diagrams of the “triangle” (which were still just images in my head at the time). And more importantly…

I realized that there was no possible way that swapping the bridge would help the situation.

Think about it: if the complaint is that the bridge is too thick, then I should already have the saddles bottomed out. Specifically, the action should still be too high when the saddles are bottomed out. And I’ve already verified that’s not the case. If I lower the saddles on the Hi-Mass bridge all the way, the action is fine. Beautifully low. But there’s terrible buzz. Putting on a different bridge that lowers the strings even more isn’t going to get rid of the buzz — it’s going to make it worse.

Clearly the issue I have is different. And it could probably be chalked up to my lack of expertise in guitar setup. The problem most likely could be fixed with a more careful truss rod adjustment, or possibly by shimming the neck.

I don’t have a caliper, so I can’t take a super-precise measurement of the string height. But I got out a tape measure and I compared the string height at the 12th fret on both the P-Bass and the Jazz.

String height on the P-Bass

String height on the Jazz Bass

It’s a bit hard to see because of the camera angle but… yeah, they’re pretty much the same. Within a millimeter of each other, at least. On both basses, the bottom of the E string is about 4 mm from the fretboard. (Yes, that is from the fretboard, not the top of the fret itself. It was just easier to measure this way, in this moment.) Both basses are set up fairly well in terms of fret buzz — not absolutely perfect, but little to no buzz unless I’m really plucking hard.

So… uh… what? The action isn’t really unusually high at all. It’s just my perception. But why is that?

I’m not saying it’s the strings, but… it’s the strings

The one factor, I think, that is making the biggest difference here is the strings.

I’ve had these La Bella gold flats on the P-Bass for about 6 months. I think they sound good, but I don’t really like them otherwise, for two reasons: first, they have a much higher tension than I’m used to, so it kind of hurts to play them after a while. And second, the alloy seems to have corroded slightly on the surface, making the strings a bit “sticky” to play, and they leave a distinctive metallic smell (and sometimes even black residue) on my fingers when I play.

I discovered the joys of tapewound strings during my shortlived ownership of a Schecter Stiletto Studio bass last year. (That bass had its own unique problems so I returned it.) When I got the Ultra Jazz, I immediately replaced its stock strings with these La Bella “white nylon” tapewounds. They are super-smooth and a joy to play. They are also much lower tension than the gold flats. I am now convinced that this is probably the biggest reason why I’ve had more issues with fret buzz on the Ultra Jazz than on the P-Bass.

I’m not in a huge hurry to test this theory though, for one kind of silly, superficial reason. I really like the look of the silk wraps on the ends of the strings, but I’ve learned that if you remove the strings, that silk frays really easily. So I’m trying to avoid removing these strings unless I absolutely have to.

Fortunately, for my next mod, I won’t. I’ve got a wild looking replacement pickguard coming next week. I can’t wait to see how it looks. (And, if it looks like crap, it’s easy to go back!) For now, those measurements I took are easing my mind.


Update (May 4, 2023): After I posted this, I continued to encounter some fret buzz issues, so I decided I would go ahead and try different strings. I had a set of D’Addario “half rounds” sitting around that I hadn’t tried out yet, so I put them on. They were better, but the E string was completely dead. Utterly useless… plunky and zero sustain. So I did a bit more research and decided to try DR flats. At least they call them “flatwound” but they seem almost more round than the D’Addario “half rounds”. Anyway, they’re much nicer, and seem to suit the instrument quite well.

Also… here’s that crazy pickguard I mentioned:

“The Cloud” is faster than any external hard drive

I have a lot of data. I mean a LOT of data. Between client files, photos, my own music and video projects, and just ~30 years of accumulated digital stuff we’re talking many, many terabytes. I don’t think we can quite get into thinking in terms of petabytes, but it’s on the horizon.

Keeping backups of all of that data is tedious. Companies like Apple, Google, and Microsoft — not to mention OS-independent third-party vendors like Dropbox — are encouraging us to keep all of our data in “the cloud.” While there are various business advantages for them in us doing that — monthly subscription revenue, of course, plus the ability to (to some extent, at least) sic their algorithms on our masses of data for training their AI models or shoving targeted advertising in our faces — there also are advantages for us.

The main advantage that these companies tout is our ability to access our data from any of our devices, anywhere in the world. But if you’ve spent any time trying to read or write data on an external HDD attached to your computer, you’ve likely noticed another difference. Hard disks are SLOW. SSDs are better, but still not that fast. Consumer-grade drives, even the best ones, definitely are not as fast as the industrial-grade, super-optimized drives filling these companies’ cloud data centers.

But here’s the really key point: as people’s Internet bandwidth improves, we’re getting to a point where there is no bottleneck in the cloud drive interface comparable to the severe limitations of transfer speed on external hard disks. With gigabit fiber in my home, it is way faster for me to access data on my iCloud Drive than on the WD Elements disk I have sitting right on my desk. And, given the failure rate of these kinds of disks — and the huge risk of corruption if you just, you know, unplug it at the wrong moment — a local external hard disk is becoming increasingly unviable as a method of archiving one’s data.

I currently have four sluggish 5 TB HDDs in my desk drawer, another one hooked up regularly as my TimeMachine drive, plus a 2 TB SSD that exists solely for situations when I’ve filled up my MacBook Pro’s internal 512 GB disk and I need to clear up some space but I can’t wait half an hour for files to copy onto one of those HDDs. I really can’t stand it. For some reason I still do this, because I don’t entirely trust cloud storage. But… why? If I step back and think about it, what about “The Cloud” could possibly be worse than the way I’m currently doing things?

I’m not really sure why this isn’t being used as a selling point for cloud drive services… maybe it’s just too technical and esoteric for the average user who hasn’t accumulated a lifetime’s worth of digital detritus.

Side note: Four years ago I had this to say. Maybe that’s why I’m still doing things my way.

Happy birthday to Herbie Hancock!

Today is Herbie Hancock’s 83rd birthday. I’m pleased that he is still going strong and touring! He is definitely one of my biggest influences, as evidenced by the number of his songs I have recorded over the years, such as…

…and…

…and…

…and…

…and, of course… uh… this:

Oh! And I almost forgot this!

The Apple Watch “Today’s Date” complication is the stupidest bit of skeuomorphism in years

Although I hadn’t worn a watch in about 15 years, I quickly embraced the Apple Watch when it first became available, and I have now owned 4 or 5 of them (seriously, I’ve lost count), culminating in my current Apple Watch Series 8 with cellular. It is a brilliant piece of technology. But there is one thing I think is absolutely stupid.

This:


No, not the whole watch face, which I rather like. I mean this:


Watches are an at-a-glance device. Even though the micro-apps on its face are called “complications,” there should not be anything complicated about using them. But the corner “Today’s Date” complication is JUST SO FREAKING STUPID.

If I want to know today’s date, I want to know today’s date. And I want to be able to discern it from an instantaneous flit of my eyes down to my wrist. Unfortunately, the design of this complication utterly fails at that simple task for two reasons.

First, the current date number itself is too small, and it’s in reversed type, which reduces its legibility significantly. With my aging eyes, I need to do various contortions to just register what it reads.

But it’s worse than that, because the reason it’s so small (and, arguably, why it has the weird reversed design), is because the complication is apparently intended to look like one of those old mechanical watches that had an inner dial numbered 1 to 31 that would rotate daily. It also shows the numbers for yesterday and tomorrow. I do not need this information. I know how to count. If today is the 11th, I can quickly glean from that information that yesterday was the 10th and tomorrow is the 12th. In fact, I could do those feeble mental gymnastics much faster than I can confidently read, on this design, that today is the 11th.

If Apple weren’t wasting, effectively, over half of this complication’s screen space with superfluous adjacent numbers, it could have made today’s date considerably larger and easier to read. And, it wouldn’t need to be in reversed type that reduces its legibility.

I just wish someone could explain to me what possible rationale they had for designing it this way… so I could respond with vitriol.


Quick, what day is it?

It could be like this!

Building a WordPress block theme is shortening my life expectancy

Throughout my (now quite long) career as a web developer, I have had many ups and downs. But I have never had as many stomach aches as I have in the last year, trying to wrap my brain around a steady stream of confusing, convoluted, counterintuitive and just downright inexplicable elements of building a theme from the ground up to work with Gutenberg, a.k.a. the WordPress Block Editor.

I’ve made some major progress over the course of the year, and my theme (in various stages of completion) is now powering multiple live client sites, with development ongoing for a few more. For the most part, now, I am finally at a stage where I feel like this is the right way to use WordPress going forward, rather than just reluctantly accepting that I have no choice in the matter.

But I still feel like Gutenberg does a lot of things the wrong way — most notably in its fundamental lack of separation between content and presentation. Yes, I am going to Old Man Yells At Cloud this. I know React is the new hotness and now everything needs to be done in ES6 (which I will forever call JavaScript), but the WordPress core team is throwing away some of the platform’s greatest strengths by abandoning this core component of how it (like pretty much any 2000s-era CMS) is built.

It may seem that I’m just an old curmudgeon who doesn’t want to learn React (I don’t), but it’s not just that. It’s that every aspect of this interface that has been designed to make it easier for average users to interact with — which, I think, it finally is, 5 years after it was unceremoniously forced on us — makes the process of developing for it harder, and more abstract.

There are two unrelated but connected problems with how things are going down here.

First, modern developers just love dependencies.

I get it. To an extent. Reusing tried-and-true code libraries instead of rolling your own all the time is smart. But that means you’re using code you probably haven’t looked at closely. You don’t really know how it works. It may have bugs, or it may have opaque features you don’t realize are there, or it may just have too much stuff bloating it, slowing down performance and making applications more brittle. Pile dozens of these dependencies together, and you’ve got a lumbering behemoth of code that no one in the world completely understands. And I truly do believe we are at a point where no one, at all, knows entirely how the current version of WordPress works. On top of that, any time you’ve got external dependencies, weird things can happen.

Second, Gutenberg is evolving so quickly that the documentation hasn’t kept up.

Gutenberg’s documentation is occasionally out-of-date, always incomplete, and it’s only getting worse.

I know writing documentation is tedious, and the web has never had good documentation. When I was in college in the mid-’90s and I wanted to learn HTML, I went to the campus computing department and asked them how I could go about learning HTML. They, seriously, just told me to download BBEdit. Which I did. And which didn’t help me learn HTML at all. (Although it is still the text editor I write all my code in, 29 years later.) So how did I learn HTML? View source. Because back then, you could do that.

I don’t expect to be able to just “view source” and learn how Gutenberg works. But since WordPress is open source software, and I have the files right here on my computer, I do think that when the documentation fails me, I should be able to poke around in the source code and find what I’m looking for.

Let’s get specific. As it happens, in my theme I’m addressing one of my earlier complaints above by using ACF Blocks. It’s been a rough road, but I’m starting to make really good progress. The only problem is, my styles aren’t getting applied. My CSS for the block isn’t loading in the Block Editor, and the Block Editor styles I’ve configured my block to support (colors, spacing, typography) via its block.json file are not showing up on the front end.

Well, what do I do about that?

Focusing on the front end first, I know that Gutenberg’s styles get applied courtesy of pithy CSS class names like .has-primary-background-color as well as HTML style attributes using CSS variables, like var(--wp--preset--spacing--80).

But if I look at the block attributes in the Block Editor’s comment tag, or the JSON or PHP array of style properties for the block, I see the same is formatted as such: var:preset|spacing|80

The quarter century of development experience in my old fart brain tells me that there must be a function or method, somewhere, that converts var:preset|spacing|80 into var(--wp--preset--spacing--80), and that I would be better off trying to find that function than writing my own.

Uhhh… OK. So how do I go about that?

ACF’s documentation for this feature is abysmal, which is kind of understandable, since the whole thing is a moving target that is changing rapidly (not to mention the organizational challenges that happen when the company that bought you out gets bought out itself), and the core WordPress documentation isn’t much better. So I’m left resorting to a scavenger hunt through the WordPress code. But it’s layer upon layer of 5-line functions referencing each other through a series of add_filter() callbacks.

As usual with my Gutenberg rants, I don’t have any solid conclusions to end on here. This whole post was mostly an exercise in working out that knot that was gnawing at my insides. At least I’ve done that. But I’m no closer to solving my problem. That’s probably because the real problem isn’t what I think it is. And it’s not going away.

All I know is, building a block theme — at least, for me, right now — takes way longer than building a classic theme. And I think that’s because my approach, one developer just cranking away, is not the model anyone in the core WordPress development community cares about, or possibly even comprehends existing. These days I’m not extremely confident about its continued viability myself.


Post script: I think I actually managed to find it, by using BBEdit’s multi-file search on this string: '|'

The method is: WP_Theme_JSON::get_property_value()

Of course, that doesn’t get called directly. It’s called in WP_Theme_JSON::compute_style_properties() which is in turn called by WP_Theme_JSON::get_block_classes() which itself is in turn called by WP_Theme_JSON::get_stylesheet() and then we’re getting too far afield, because that’s used to turn the theme.json file into inline CSS.

So I am guessing at this point that I probably should not use any of these methods. (Actually, I can’t because they’re all protected.) It really seems like this should be happening automatically, and either ACF Blocks are missing some key functionality, or I’m missing something about how ACF Blocks work (which I would blame on the lack of documentation).


Update (April 11, 2023): After I wrote this blog post, I also started a thread on the ACF forum, and there I was finally given an answer. Yes, there is a WordPress function for getting block wrapper attributes. It is even, um, named exactly what it should be. But as the fellow ACF user who responded with that enlightening bit of information even noted, it is incredibly difficult to find. The WordPress documentation does, to its credit, include most if not all (I mean, how would I actually know?) functions and methods, but the search tool is a joke.