Create chords from a single note.
G'day all,
I have attached a pair of user tools that have been designed to create chord structures from single notes.
First a small caveat:
I haven't written line of code of any kind for, oh easily 15 years, and even then it was 4gl stuff - Database specific mainly, aside from the odd batch file that is, so I do not consider myself a programmer of _ANY_ kind. OK? In fact I've never even looked at VB or WScript before so this has been something of a "crash course" - and me a network integrator too! Thus there are probably some very naive constructs that the real programmers out there may frown upon. Please feel free to educate me.
These tools do not understand what clef or key signature you are using, they are a purely interval oriented thing.
They have been "growing" in the NG for a couple of weeks and there are many refinements courtesy of RickG, but note that any and all mistakes are mine, not his . - Thanks mate.
The scripts are heavily commented, primarily for my own benefit so they may not be very pretty. I've tried to format them a little but as I've been reminded, different editors and different font selections in the editor may make them look pretty crook. I created them in notepad using Arial and with word wrap turned off. Do this and you'll see 'em as I do.
The tools are:
MakeChord-SpecifyAccidental-LP.vbs and MakeChord-AdditiveAccidental-LP.vbs.
These scripts will allow you to create chords from a "source" note(s). You specify the intervals and optional accidentals on the command line. Best to use a PROMPTed invocation. - examples to come. Like all user tools, they work on your selection, or if you haven't made a selection then they'll work on the entire staff.
The tools will construct chords, using slighty different rules, from the information provided thus:
Both tools will take interval information and create a chord from it. A '3' argument will add a 3rd to the original note. A '3 5' will create a triad from the original note - the key signature or preceding accidentals will define Maj/min.
A '3 5 7' will create a 7th chord &etc..
Negative intervals will give inversions. A '-4 3' would give a first inversion triad, '-6 -4' will give you a second inversion.
An accidental can also be passed 'b3 5' for a minor, '-4 b3' for a 1st inversion minor, accidentals and minus signs can be used together; 'b-4 b3' for a 1st inversion diminished:
v = Double Flat
b = Flat
n = Natural
# = Sharp
x = Double Sharp
A 'help' argument will remind you of them. As these symbols are defined in NWC I saw no reason to change 'em
The scripts do NOT take into account any existing clef or key signatures. They have no idea what a note is, they simply take the numeric value of a notes' position on the staff and add or subtract to calculate the new chord members' numeric position value. They are not intended to be some magical 'make all my chords for me' tool, but I do believe they can create a useful starting point. Your ears are the best guide to whether the results are any good or not!
MakeChord-SpecifyAccidental-LP.vbs
This version will ignore any accidental on the original note and apply the accidental specified on the command line.
MakeChord-AdditiveAccidental-LP.vbs
This version will use any accidental on the original note and 'add' the accidental specified on the command line. The script limits the maximum accidental to double flat and double sharp, so if you have a double flat starting note, and want to add a flat to the 3rd, it will still only be a double flat, not a 'triple' <g> one.
To try and take it further than that and figure out a new note to take into account a 'triple' flat or sharp is waaay beyond the skills I've learned in the last few days. Also, I imagine that it would be so rare as to be not worth the effort.
Both versions will give you an "Octave chord" if used with no arguments.
Command lines for NWC2 tools dialogue:
- 1) Copy the attachments to the "C:\Program Files\Noteworthy Composer 2\Scripts" directory
- 2) Change their names to have a ".vbs" extension instead of ".txt"
- 3) Create a new tool in the <Alt-F8> dialogue:
- a) Open or create a song file
- b) Press <Alt-F8>
- c) Click "New.."
- d) Give it a name:
- d1) MakeChord-SpecifyAccidental-LP
- d2) MakeChord-AdditiveAccidental-LP
- e) Define the command (important spaces exist after "wscript" and ".vbs"):
- e1) wscript Scripts\MakeChord-SpecifyAccidental-LP.vbs <PROMPT:Enter intervals with opt. acc.'s, space delimited (use help):=*>
- e2) wscript Scripts\MakeChord-AdditiveAccidental-LP.vbs <PROMPT:Enter intervals with opt. acc.'s, space delimited (use help):=*>
- f) Click "OK"
- e) voila - ready to use
Note that lines e1) and e2) may have wrapped, be sure you put a space between ".vbs" and the "<PROMPT:" bits. when you copy and paste it.
This has been an interesting exercise and is no doubt not finished yet. As usual, comments welcome, nay, sought! Any comments on the usefulness of these scripts is also solicited.
Bug reports are also welcome, but I may limited in my ability to fix 'em. I will try though.