Logo
Since 1998
Home > Arts > Music

in Music

Write Chord progressions with your HP-48

A little HP-48 utility for lone musicians who want to work out their scales and get a quick source of inspiration.
This topic requires the reader to be familiar with the concept of chords and harmonies, and in particular harmonisation of the Ionian (aka Major) and Aeolian (aka Minor) scales.
Please use and peruse any valid resources to learn more on the theory of chords if you don’t get the concepts evoked below. A long time ago, in an hotel in Paris Charles de Gaulle, I started to browse through documents that I had with me. They were the only documents I took away with me to Australia on this occasion, that was a summary of important things in my life.  That day was my expat day.

There was this bass course, yet to be folded and bound.   I only read those papers 2 years later, when I decided to improve my bass skills.
I learnt what harmonised scale means.   And they insisted about how crucial this was when writing music.   I thought "Oh well, I can understand, but as far as writing, where could I get my inspiration from?"

I subsequently acquired a Casio keyboard to improve my music skills altogether.   But yet again inspiration was not my friend. I bumped into the idea of using my old M.I.T top Nerd’s tool: The notorious HP-48 if it were, and write some RCL junk code to output a list of random yet harmonised chords, and a root key.

Example: 3 chords and a root key: ii, V, IV and A as root.   The exercise was then to play bass lines around those chords, which once resolved should be: Bm7, E7 and D7M.   At last they sounded right . . .

. . . Satisfied with this first invention, I’ve added the minor harmonised scale, and even specified the 7th.
I ended up having a complete program to give me a series of harmonised chords in either Major or Minor.   I’ve deliberately left to humain brains the solving into real chord names because that forces me to practice my scales.

Writing a piece of music is just a minute away.  Decide a pattern for your song, for instance:
2 chords for the verses, 1 for a bridge, 2 and 2 for a chorus, at a slightly higher tempo, and again . . .
Therefore you should ask the program to generate 7 chords.   Easy! I’ve tried that last night on my keyboard, that renders well!

I could obviously write this program in JavaScript and propose it here on this page, but I’ve made this deliberate choice to fuel the legend of the HP!!

RPL Source code

DIR name: CHORDPROG
Variables:
PLAY



« -> m n « 1 n FOR p
7 RAND * CEIL m
SWAP GET NEXT n
->LIST 'OUT' STO OUT
KEYS 12 RAND * 1 +
IP
GET » »
Checksum (BYTES command): #BC8Fh 123

MAJ



{ I.M7 ii.m7 iii.m7
IV.M7 V.7 vi.m7
vii.m7b5 }
Checksum (BYTES command): #57EAh 65.5

MINOR



{ i.m7 ii.m7b5 III.M7
iv.m7 v.m7 VI.M7
VII.7 }
Checksum (BYTES command): #7838h 65.5

KEYS



{ C "C#" D Eb E F
"F#" G Ab A Bb B }
Checksum (BYTES command): #2347h 67



Syntax:
ARG1: MAJ or MINOR list
ARG2: Number of Chords
OUTPUT:
2: list of chords
1: root note


Downloads:

download The electronics, the HP-48 software for Windows with factory settings.  (This software is provided without guarantee whatsoever.  It is available on this website as a mirror download from other locations found on the Web.  the copyrights and trademark belong to their respective owners)
download The memory state for this article, unzip, overwrite HP-48/current-state.E48 with that one.
(664 views)
created 17 August 2011
revised 25 February 2017 by
Would you accept our confidentiality policy? It is about cookies and personal data...