Archive
Using ChatGPT As A Composer
I’ve experimented with AI quite a bit over the last year. I’ve used it to try to train a model to adopt my specific document review approaches. I’ve used it to build a portal on the fly to manage document uploads. I’ve used it when allowed during coding interviews. I even used it to a degree when building the scaffolding I used for those coding interviews, including a basic code, API, and test project.
Where I was most resistant to using it, though, was in my composing. I want what I produce to reflect me, not a machine. That said, I’ve found a specific and effective use for ChatGPT, in spite of all the ads telling me to stop using it “like Google”, because that’s exactly what I do with it.
When composing, I used ChatGPT to unblock by having it hopefully coalesce Google searches I would have executed myself and had to sift through to arrive at an answer.
I am currently writing a symphony. My first question to ChatGPT was to outline a typical approach to a Baroque style symphony and how I should think about structure. That’s pretty basic.
But recently I was writing the second piece in the orchestral suite. It requires the second part of the piece to transition from D major to A major, and then close in D major at the end. I was really struggling based on my melodies and progressions to get from D to A without it feeling like it was absolutely dying to resolve back to the D major chord.
So I sent over a prompt:
Sadly my A section ends naturally on an A for a measure to an A7 for an extra measure before returning to D major. At the end of my second A section, how do I now get to A? I feel like just staying there won’t work. Can I shift to F# minor instead? Or is there a turnaround since this is supposed to transition keys to the major 5?
ChatGPT suggested two responses, which I tried.
Option A – Classic ii–V–I into A
Near the end of the section, let D go, and instead:Treat B minor as ii of A
E7 as V of A
Then A as I (new key)
Example last 3 chords of the section:B minor → E7 → A
Coming out of D‑world you can arrive on Bm very naturally (vi in D, ii in A),
Then Bm–E7–A is a textbook ii–V–I in A major.
You can still touch D before that (so it feels like you’re still in D), but your final phrase should clearly choose Bm–E7–A instead of A7–D.Option B – Use F♯ minor as a pivot (your idea)
Yes, you can go via F♯ minor: it’s vi in A and iii in D, so it’s a legit pivot.Something like:
… D → F♯m → Bm → E7 → A
In D: F♯m = iii, Bm = vi. Still sounds like D.
In A: F♯m = vi, Bm = ii, then E7 = V, A = I.
Both sounded pretty harsh, so I let ChatGPT know I wasn’t fond of either choice after giving each a listen. After doing the usual “Oh You Are Right” false praise that AIs love to do, ChatGPT offered a few suggestions, and in going through them I figured out why they weren’t working: the D natural in the suggested E7 chord was still pulling back to D major. Once I came up with my conclusion I let ChatGPT know.
Ok so this is what ended up working. The original turnaround at the end was 1 bar D, 1/2 bar Bm, 1/2 bar C#dim, leading into an F# minor, which is how this progression starts. I replaced that with 1 bar Bm, then 2 bars E without the 7; the D in the E7 was wreaking havoc with my ear.
And ChatGPT gave me positive feedback on why it worked.
That’s a very sensible fix, and it explains why your ear finally relaxed.
What you had before:
Old turnaround:
D (1 bar) → Bm (½) → C♯dim (½) → F♯m …
That strongly re‑stated D as “home” right before moving on, so anything after felt like it still wanted to resolve back there.What you changed to:
New turnaround:
Bm (1 bar) → E (2 bars, no 7) → F♯m …
Why this works:No strong D at the end
By removing that full bar of D, you stop telling the listener “we’re safely back at tonic.”
Bm → E already steers the harmony toward A/F♯‑world instead of D‑world.
Plain E instead of E7E7 (E–G♯–B–D) introduces a dominant‑of‑A feeling plus that D natural, which:
still evokes the original tonic D major in the background,
and makes the ear half‑expect A (and then D after that).
Using E major (E–G♯–B) without the D:
keeps the pull toward F♯m/A,
but doesn’t slam a dominant function in the listener’s face.
The result is more ambiguous / modal and less “I must cadence.”
Bm → E → F♯m is a smooth directional lineIn D terms: Bm feels like vi, E like a chromatic “brightening” step, and F♯m like iii/vi.
In A terms: Bm is ii, E is V, F♯m is vi; that’s all compatible with A/F♯ as a new region.
But because you don’t resolve E7 to A, the progression flows forward rather than closing.
So the new version:Stops reaffirming D right at the end,
Points gently into the new harmonic area via Bm → E → F♯m,
Avoids the D that made everything sound like “prep for a cadence.”
This is exactly the kind of local surgery you want in a modulation: same broad shape, but you trim out the one chord tone (D in E7, and the big D bar) that kept yanking your ear backward.
This is actually the critical bit that’s super helpful. While I don’t always adopt the suggestions, I have a concrete list of reasons why something worked or maybe didn’t, and a concrete list of options when I’m stuck that would have taken a while to pull together from searches if I couldn’t dig myself out on my own.
So, in this case, ChatGPT has become what AIs should be. A useful tool. But definitely not a replacement for the creative magic.
Keys to a good technical interview
Hi there,
So you see these all the time, especially on job sites or on MSN.com. The keys to nailing the interview. I have a few myself, and I thought I’d share them with you all. Who knows, maybe it will help you when you are faced with the dreaded technical interrogation.
If you can’t explain it, it shouldn’t be on your resume
I realize that people tend to put everything on their resume that they’ve ever encountered, either at work or in the classroom. This certainly tends to make a resume more appealing, more engaging, and implies a breadth and depth of experience.
The problem occurs when the candidate doesn’t really know the skill they’ve listed, and are not prepared to discuss the skill or technology in depth. Let’s face it, if you can’t explain to me how to store someone’s name in a database table, you probably shouldn’t have any database technologies on your resume. And the same goes for web design or web development. If you can’t explain the basic functional tags of HTML, such as tables and divs, or you can’t tell me what CSS stands for (Cascading Style Sheets), anything related to front end web design probably shouldn’t be on your resume.
Be prepared for niche assignments to work against you…and prepare to counter it
If your work history is peppered with contract jobs, or your technical expertise is limited due to the type of work you’ve done, it’s probably in your best interest to be able to list on your resume technologies outside of your normal job functions. For example, if you have mostly been a Windows developer, take the time to learn Web development enough to be able to speak intelligently about it. If you’ve always been a web developer, learn basic database technologies enough that you can demonstrate that you can work with it, or at worst that you will be able to learn it quickly.
During the course of an interview, I will drill down to determine where the line in your technology stack stops, and where it stops will tell me much about what I perceive to be your drive to learn and excel at technology in general.
Be prepared to justify any technical decisions you reveal
I’ll be honest, I don’t necessarily plan ahead when I interview. Instead, I ask a ton of questions to get the candidate to talk…and let what they reveal lead to my next question. If the candidate reveals that they built an ecommerce site, I might start by asking what merchant provider they used, or how they maintained PCI compliance (the security standard for accepting credit cards). If the candidate mentions a particular technology concept such as MVC, I might dig into why they chose that over MVP or MVVM or standard Web forms architecture. Those answers will reveal the candidate’s true involvement in the project as well as how they think when they design and build systems.
Integrating third party tools is not enough
There are so many niche third party tools out there these days. JQuery for JavaScript, Lucene for full text searching, Twitter’s bootstrap for UI controls. But if that’s all you’ve ever done, that does not qualify you for a developer position per se. We’re approaching a time where people who are into development haven’t lived in a world without JQuery or some of these other tools. As a result, many times they can’t explain what JQuery actually is, or how it actually works, because they are so accustomed to the “magic” of it “just working”. I will take a candidate who understands the fundamental operational concepts of the tools they use over someone counting on “the magic taking over” any time.
Be prepared to honestly answer “I don’t know”
Without a doubt I will stump you somewhere. Well, almost without a doubt! There is no developer on the planet who knows everything, and how you handle your lack of knowledge is just as critical as what you know. If you can’t admit to not knowing, and attempt to answer with a best, perhaps informed perhaps not guess, I’ll likely recognize that for what it is and that will be a point against you.
Bring your success stories, in particular crises or major problems solved
Everyone who has worked in this industry has battle stories. I have a list longer than I care to mention, including the day a single bad value passed into one of our web pages hung 14 million queue messages on 20 servers on a Monday morning. It took me 36 hours (straight, no break) to fix it. That is one of many stories I could tell during an interview about something I’ve faced that was difficult that I solved. Bring yours. I’ll likely ask you if you have any moments in your career that you were particularly proud of, and if you don’t have any, I will wonder how much troubleshooting you’ve done and how many roadblocks you’ve managed to push through.
Communication is key
Be able to communicate clearly and concisely. But more importantly, show that you can communicate with others. Many times developers are working with product managers, general managers, designers, marketers, and others. A good developer is able to communicate effectively with all of the different types of people they will encounter. Indeed, fleshing out software requirements, getting clarity around what needs to be done and what use cases might exist, are all part of what will set a candidate apart.
