New editor features (and more) in the beta version!

Hey folks!

I made a post in January about how I would be spending the first few months of 2025 doing infrastructure migrations and deferred maintenance on the Strum Machine codebase in lieu of any new feature development. Four months and tens of thousands of updated lines of code later, things under the hood are way more up to date and easy to work with going forward. :tada:

But there’s more… I ended up sneaking in some fun new additions and improvements. My initial idea was actually to just quickly add one new feature to give folks extra incentive to check out the beta version (lest there be uncaught bugs!), but I ended up spending an extra month working on updates from my backlog of requests.

Try the beta version by going to beta.strummachine.com on a computer or Android device, or by grabbing the “SM Beta” app through TestFlight on iOS.

New in the song editor

Mid-song time signature changes – You can now create songs that mix 4/4, 3/4, and 2/4 time signatures within the same arrangement. (This replaces the old “half-measure” toggle; let me know how the new interface feels!)

Syncopated “beat pushes” – You can now specify that a chord should be hit an eighth-note early. Works on subdivided beats too.

Per-beat effects – When you subdivide cells, you can now apply effects to individual beats.

These three features together open up many new possibilities for syncopation and rhythmic complexity. For example, here’s Slipstream, the most requested example of a song with multiple time signatures, but which also needed beat pushes and per-beat effects to sound right. (Strum Machine chart, original recording):

“To Coda” and “End” markings – These are “early exit” instructions that either jump to an outro/coda section or end the song on the specified beat. For example, below I’ve edited All of Me to have a special coda to bypass the usual “turnaround” and instead end on a syncopated/jazzy root chord:

Rest improvements – It’s now possible to silence all strings during a rest (toggle switch is under the Effects menu), and the rest symbol has also been switched to a cleaner dash.


Check out this list of demo songs that use the new features, including Slipstream, Ride the Wild Turkey, Rattlesnake, All You Need is Love, and more. (I will add these songs to the main library once we’re out of beta, since songs with time signature changes won’t play on the non-beta Strum Machine.)


Other new stuff

Song list improvements – Massive song lists used to slow down older devices pretty bad; this should be fixed now. Also, when clicking the “+” icon to add a song to a list, your list of lists is now shown automatically (meaning one less click).

Rewritten MP3 recording – The download/recording feature got completely rebuilt using modern web technologies. Will this fix the issue with audio glitches in the exported MP3? Only your feedback can answer that question!

Overall performance boost – First-load speed is about 40% faster, especially on slower devices, thanks to these infrastructure migrations. Let me know if anything feels particularly slow or laggy and I will see if I can improve it as well!

Anything could be broken – but hopefully nothing is? :crossed_fingers:

Given the scope of under-the-hood changes in this release, I’m especially eager for feedback and bug reports. If something feels off, behaves unexpectedly, or just plain doesn’t work, please let me know! You can reply to this post or email me through the app.

Thanks!

Luke

5 Likes

Yay!!! Love, love, love the mixed time signature feature. Cudos to you. Also the ability of put effects on half measures. So do rests finally stop the foot stomp from playing too? The syncopation stuff is neat too. I’m not sure I understand the “to Coda” and End markings. Maybe you could explain their use. Also, in your sample songs you have a character < above some chords. Not sure what it indicates or what produces it.

2 Likes

Oops, looks like the foot is still stomping through rests. I will need to revisit that.

“To Coda” means that when the player reaches that mark and it is the last time through the tune (i.e. Auto-Finish is going to end the tune), the player will skip the rest of that section and instead jump to the outro or “coda” section (whatever’s marked as “play last time only”). “End” is similar, except it ends immediately instead of jumping to a coda section.

The < above the chord is the standard notation for a beat push in Nashville Number charts (I recently learned). It means that the chord should be played one eighth note early. That is, for a standard guitar strum, it should be played on the upstroke immediately preceding the downbeat. The best way to understand is probably to just try it out and hear how it sounds. Try a “heavy boom-a-chuck-a” strum with it.

I will eventually make little help videos on each of these features, as they’re a little hard to explain with just text!

1 Like

Wow. I’ve often idly wondered about that progression in All you need is love where they’re singing “All you need is love, love…”

Taking on John and Paul chords – it always feels like I’m walking into a mine field. The Internet just doesn’t get them right, and if you get them wrong everybody knows it. Joni Mitchell and Steely Dan are in the same category.

Hi Luke,
I only just now saw your email, so I’m definitly trying it out today! Great news!

But there is this: I had regularly been checking testflight for the iOS app, but it still shows the update that expires in 39 days. The app itself showed the message that it needed to update so that is ok.

However the version number == build number in Testflight is very different from what the app shows ( 1.408.5 vs 415.9). Your link to testflight takes me straight to this wrong version in Testflight, so I’m confused.

Is this an issue on my side or is something wrong? I have this on my 2 iPads and my iPhone…

The iOS app version refers to the version of the app “shell” – most Strum Machine code is shared with the website and is automatically updated without going through the App Store (those in-app update links are related to this) so the version seen inside the app is often ahead of the App Store version number. But yes, having the version numbers be so different is definitely confusing. I’m updating the app in TestFlight so that they’ll match (probably within the next ~24 hours), though you should notice no difference in the app itself.

Ah, I get it. I did know the app is mostly a shell around the website, so for changes on the website the app need not be updated. But I just didn’t connect the dots, mainly because of that link to testflight, that was just to give people the opportunaty to install the app. Still a bit confusing this time…

I’m curious what would happen if the app times out though. Would it disappear? I haven’t have that happen yet for any app :smiley:

Yes, when the build expires the app is no longer available. I had that happen once. Egg on my face. :sweat_smile: I now have a recurring reminder to renew the beta app in TestFlight at least once every 80 days.

1 Like

Looks like great ideas! I’ll give them a try in a few minutes.