Wait! wait! Before any rant starts check out ..... an excellent
Christy Moore page
.
The best reference for music on web? Well, I certainly use it loads anyway. LSDS music archive
I myself was initiated into music and played the recorder for years, then I gave it up after 7 when exams seemed more important. Much to the objection of Miss Jones, my teacher. Well, we can still play it a little. I've also encountered lessons with piano-accordion and a little piano, but sure anyway: Il Flauto Dolche
Listening to music? Well, I seem to think I have quite a broad taste, although extremely hindered by a terribly bad memory for people/song/bands names so communication about the cool song which goes "bah dah be Dahhhhreeauwnnnnnng" breaks down pretty early :), but for expression of those sounds to which I CAN connect names I provide this list of external links, DON'T forget Christy at the top of this page! And sorry if this is mostly only usedful to me.
Ummm, most links to lsds 'cos it's handy for me, 1 or 2 other links around, if you've no inerest, scroll on down for some guitar fretboard frequency analysis. Good stuff I'm telling you!
but firstAlternate radical nursery music
C--- E- D--- F- E- G- B- C----- Humpty Dumpty sat on a wall, C--- E- D--- F- E- D- C- E----- Humpty Dumpty had a great fall, C- C- E- D--- F- E- G- B- C----- All the kings horses and all the kings men, D- E- E- C- F- F- E- D- C- B- C- Couldn't put Humpty together again. C---E-D---F- E-G-B-C----- C---E-D---F- E-D-C-E----- C-C-E-D----- F-E-G-B-C--- D-E-E-C-F-F- E-D-C-B-C---
G C D G G C G D E -------------|-------------|-------------|-------------| B -------------|-------------|-------------|-------------| G -------------|-------------|-------------|-------------| D -------------|-----9-T-----|-------------|-------------| A -----7-----8-|-7-T---------|-----7-----8-|-7-----------| E -8-----T-----|-------------|-8-----T-----|---T-8-T-----| Humpty Dumpty sat on a wall, Humpty Dumpty had a great fall, G C D G G C D G E -------------|-------------|-------------|-------------| B -------------|-------------|-------------|-------------| G -------------|-------------|-7-9-9---T-T-|-9-----------| D -------------|-----9-T-----|-------T-----|---7---------| A -----7-----8-|-7-T---------|-------------|-----T-9-T---| E -8-8---T-----|-------------|-------------|-------------| All the kings horses and all the kings men, Couldn't put Humpty together again.
G Em C C E ---------------|-------------| B ---24----------|-------------| G -5-----5---2-5-|-------------| D ---------5-----|---2-5---2-5-| A ---------------|-5-----5-----| E ---------------|-------------| G Em C G E ---------------|-------------| B ---24----------|-------------| G -5-----5---2-5-|-------2-----| D ---------5-----|---2-5---5---| A ---------------|-5-----------| E ---------------|-------------|
Grrrr... This page is causing me problems as I originally wrote it using perl. Now I wonder how long it'll take me to convert to javaScript? Ahhh well ... tedium tedium...
Hephahaha! Problem solved (for me anyway). The following is a MAJOR cheat. BIG GRIN :). No tedium necessary. I load up the perl in my browser ... then do a save as ... of course the fully expanded html is saved ... and you get the following: duh! Whydidn'tIthinkofthatearlier.... I love it when I manage to doss off :)
# Music - scales # frequency 12 notes C=256Hz, 512Hz => spacing is 12th root of 2? # Root, 3rd and 5th freq spacing? resonant yes! yes! (for major scales) wow! # Guitar notes, chords # Definitions chromaticScale A A# B C C# D D# E F F# G G# majorSemiToneSpacing 0 2 4 5 7 9 11 minorSemiToneSpacing 0 2 3 5 7 8 10 pentatonicMajorSemiToneSpacing 0 2 4 7 9 pentatonicMinorSemiToneSpacing 0 2 3 7 8 notes A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# notes A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# notes by number 0 A 1 A# 2 B 3 C 4 C# 5 D 6 D# 7 E 8 F 9 F# 10 G 11 G#
Guitar fretboard: note(offset) e(7) B(2) G(10) D(5) A(0) E(7) ||| E | F | F#| G | G#| A | A#| B | C | C#| D | D#| E | F | F#| G | G#| A | A#| B | ||| B | C | C#| D | D#| E | F | F#| G | G#| A | A#| B | C | C#| D | D#| E | F | F#| ||| G | G#| A | A#| B | C | C#| D | D#| E | F | F#| G | G#| A | A#| B | C | C#| D | ||| D | D#| E | F | F#| G | G#| A | A#| B | C | C#| D | D#| E | F | F#| G | G#| A | ||| A | A#| B | C | C#| D | D#| E | F | F#| G | G#| A | A#| B | C | C#| D | D#| E | ||| E | F | F#| G | G#| A | A#| B | C | C#| D | D#| E | F | F#| G | G#| A | A#| B |
HTML Guitar fretboard: note(offset) e(7) B(2) G(10) D(5) A(0) E(7)
E | F | F# | G | G# | A | A# | B | C | C# | D | D# | E | F | F# | G | G# | A | A# | B |
B | C | C# | D | D# | E | F | F# | G | G# | A | A# | B | C | C# | D | D# | E | F | F# |
G | G# | A | A# | B | C | C# | D | D# | E | F | F# | G | G# | A | A# | B | C | C# | D |
D | D# | E | F | F# | G | G# | A | A# | B | C | C# | D | D# | E | F | F# | G | G# | A |
A | A# | B | C | C# | D | D# | E | F | F# | G | G# | A | A# | B | C | C# | D | D# | E |
E | F | F# | G | G# | A | A# | B | C | C# | D | D# | E | F | F# | G | G# | A | A# | B |
HTML Guitar fretboard: C major Red=Root Green=3rd Blue=5th
E | F | G | A | B | C | D | E | F | G | A | B | ||||||||
B | C | D | E | F | G | A | B | C | D | E | F | ||||||||
G | A | B | C | D | E | F | G | A | B | C | D | ||||||||
D | E | F | G | A | B | C | D | E | F | G | A | ||||||||
A | B | C | D | E | F | G | A | B | C | D | E | ||||||||
E | F | G | A | B | C | D | E | F | G | A | B |
HTML Guitar fretboard: C major, note positions
2 4 | 3 5 | 4 7 | 5 9 | 6 11 | 0 0 | 1 2 | 2 4 | 3 5 | 4 7 | 5 9 | 6 11 | ||||||||
6 11 | 0 0 | 1 2 | 2 4 | 3 5 | 4 7 | 5 9 | 6 11 | 0 0 | 1 2 | 2 4 | 3 5 | ||||||||
4 7 | 5 9 | 6 11 | 0 0 | 1 2 | 2 4 | 3 5 | 4 7 | 5 9 | 6 11 | 0 0 | 1 2 | ||||||||
1 2 | 2 4 | 3 5 | 4 7 | 5 9 | 6 11 | 0 0 | 1 2 | 2 4 | 3 5 | 4 7 | 5 9 | ||||||||
5 9 | 6 11 | 0 0 | 1 2 | 2 4 | 3 5 | 4 7 | 5 9 | 6 11 | 0 0 | 1 2 | 2 4 | ||||||||
2 4 | 3 5 | 4 7 | 5 9 | 6 11 | 0 0 | 1 2 | 2 4 | 3 5 | 4 7 | 5 9 | 6 11 |
HTML Guitar fretboard: G major Red=Root Green=3rd Blue=5th
E | F# | G | A | B | C | D | E | F# | G | A | B | ||||||||
B | C | D | E | F# | G | A | B | C | D | E | F# | ||||||||
G | A | B | C | D | E | F# | G | A | B | C | D | ||||||||
D | E | F# | G | A | B | C | D | E | F# | G | A | ||||||||
A | B | C | D | E | F# | G | A | B | C | D | E | ||||||||
E | F# | G | A | B | C | D | E | F# | G | A | B |
Modes? Modes of G major follow. Just G scale starting from different notes. Ionian mode _IS_ major key. And pattern moves up+down fretboard giving different keys. Learn pattern from root to root. Ionian == natural major Aeolian == natural minor Pentatonic => scale has 5 notes only, drop 4th and 7th Pentatonic G: G A B D E G Has 5 modes, 1st to 5th related to Ionian, Dorian, Phyrgian, Mixolydian and Aeolian, just drop the not-needed notes. G Major: G A B C D E F# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ||| E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | | B | ||| B | C | | D | | E | | F#| G | | A | | B | C | | D | | E | | F#| ||| G | | A | | B | C | | D | | E | | F#| G | | A | | B | C | | D | ||| D | | E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | ||| A | | B | C | | D | | E | | F#| G | | A | | B | C | | D | | E | ||| E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | | B | xxxxxxxxxxxxxxx Ionian key G => G(3) xxxxxxxxxxxxxxxxxxx Dorian key G => A(5) xxxxxxxxxxxxxxx Phyrgian key G => B(7) xxxxxxxxxxxxxxx Lydian key G => C(8) xxxxxxxxxxxxxxxxxxx Mixolydian key G => D(10) xxxxxxxxxxxxxxxxxxx Aeolian key G => E(12) xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx Locrian key G => F#(14) Major scales, on the fretboard, more obfussy, you can see the different modes here! A Major: ||| E | | F#| | G#| A | | B | | C#| D | | E | | F#| | G#| A | | B | ||| B | | C#| D | | E | | F#| | G#| A | | B | | C#| D | | E | | F#| ||| | G#| A | | B | | C#| D | | E | | F#| | G#| A | | B | | C#| D | ||| D | | E | | F#| | G#| A | | B | | C#| D | | E | | F#| | G#| A | ||| A | | B | | C#| D | | E | | F#| | G#| A | | B | | C#| D | | E | ||| E | | F#| | G#| A | | B | | C#| D | | E | | F#| | G#| A | | B | A# Major: ||| | F | | G | | A | A#| | C | | D | D#| | F | | G | | A | A#| | ||| | C | | D | D#| | F | | G | | A | A#| | C | | D | D#| | F | | ||| G | | A | A#| | C | | D | D#| | F | | G | | A | A#| | C | | D | ||| D | D#| | F | | G | | A | A#| | C | | D | D#| | F | | G | | A | ||| A | A#| | C | | D | D#| | F | | G | | A | A#| | C | | D | D#| | ||| | F | | G | | A | A#| | C | | D | D#| | F | | G | | A | A#| | B Major: ||| E | | F#| | G#| | A#| B | | C#| | D#| E | | F#| | G#| | A#| B | ||| B | | C#| | D#| E | | F#| | G#| | A#| B | | C#| | D#| E | | F#| ||| | G#| | A#| B | | C#| | D#| E | | F#| | G#| | A#| B | | C#| | ||| | D#| E | | F#| | G#| | A#| B | | C#| | D#| E | | F#| | G#| | ||| | A#| B | | C#| | D#| E | | F#| | G#| | A#| B | | C#| | D#| E | ||| E | | F#| | G#| | A#| B | | C#| | D#| E | | F#| | G#| | A#| B | C Major: ||| E | F | | G | | A | | B | C | | D | | E | F | | G | | A | | B | ||| B | C | | D | | E | F | | G | | A | | B | C | | D | | E | F | | ||| G | | A | | B | C | | D | | E | F | | G | | A | | B | C | | D | ||| D | | E | F | | G | | A | | B | C | | D | | E | F | | G | | A | ||| A | | B | C | | D | | E | F | | G | | A | | B | C | | D | | E | ||| E | F | | G | | A | | B | C | | D | | E | F | | G | | A | | B | C# Major: ||| | F | F#| | G#| | A#| | C | C#| | D#| | F | F#| | G#| | A#| | ||| | C | C#| | D#| | F | F#| | G#| | A#| | C | C#| | D#| | F | F#| ||| | G#| | A#| | C | C#| | D#| | F | F#| | G#| | A#| | C | C#| | ||| | D#| | F | F#| | G#| | A#| | C | C#| | D#| | F | F#| | G#| | ||| | A#| | C | C#| | D#| | F | F#| | G#| | A#| | C | C#| | D#| | ||| | F | F#| | G#| | A#| | C | C#| | D#| | F | F#| | G#| | A#| | D Major: ||| E | | F#| G | | A | | B | | C#| D | | E | | F#| G | | A | | B | ||| B | | C#| D | | E | | F#| G | | A | | B | | C#| D | | E | | F#| ||| G | | A | | B | | C#| D | | E | | F#| G | | A | | B | | C#| D | ||| D | | E | | F#| G | | A | | B | | C#| D | | E | | F#| G | | A | ||| A | | B | | C#| D | | E | | F#| G | | A | | B | | C#| D | | E | ||| E | | F#| G | | A | | B | | C#| D | | E | | F#| G | | A | | B | D# Major: ||| | F | | G | G#| | A#| | C | | D | D#| | F | | G | G#| | A#| | ||| | C | | D | D#| | F | | G | G#| | A#| | C | | D | D#| | F | | ||| G | G#| | A#| | C | | D | D#| | F | | G | G#| | A#| | C | | D | ||| D | D#| | F | | G | G#| | A#| | C | | D | D#| | F | | G | G#| | ||| | A#| | C | | D | D#| | F | | G | G#| | A#| | C | | D | D#| | ||| | F | | G | G#| | A#| | C | | D | D#| | F | | G | G#| | A#| | E Major: ||| E | | F#| | G#| A | | B | | C#| | D#| E | | F#| | G#| A | | B | ||| B | | C#| | D#| E | | F#| | G#| A | | B | | C#| | D#| E | | F#| ||| | G#| A | | B | | C#| | D#| E | | F#| | G#| A | | B | | C#| | ||| | D#| E | | F#| | G#| A | | B | | C#| | D#| E | | F#| | G#| A | ||| A | | B | | C#| | D#| E | | F#| | G#| A | | B | | C#| | D#| E | ||| E | | F#| | G#| A | | B | | C#| | D#| E | | F#| | G#| A | | B | F Major: ||| E | F | | G | | A | A#| | C | | D | | E | F | | G | | A | A#| | ||| | C | | D | | E | F | | G | | A | A#| | C | | D | | E | F | | ||| G | | A | A#| | C | | D | | E | F | | G | | A | A#| | C | | D | ||| D | | E | F | | G | | A | A#| | C | | D | | E | F | | G | | A | ||| A | A#| | C | | D | | E | F | | G | | A | A#| | C | | D | | E | ||| E | F | | G | | A | A#| | C | | D | | E | F | | G | | A | A#| | F# Major: ||| | F | F#| | G#| | A#| B | | C#| | D#| | F | F#| | G#| | A#| B | ||| B | | C#| | D#| | F | F#| | G#| | A#| B | | C#| | D#| | F | F#| ||| | G#| | A#| B | | C#| | D#| | F | F#| | G#| | A#| B | | C#| | ||| | D#| | F | F#| | G#| | A#| B | | C#| | D#| | F | F#| | G#| | ||| | A#| B | | C#| | D#| | F | F#| | G#| | A#| B | | C#| | D#| | ||| | F | F#| | G#| | A#| B | | C#| | D#| | F | F#| | G#| | A#| B | G Major: ||| E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | | B | ||| B | C | | D | | E | | F#| G | | A | | B | C | | D | | E | | F#| ||| G | | A | | B | C | | D | | E | | F#| G | | A | | B | C | | D | ||| D | | E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | ||| A | | B | C | | D | | E | | F#| G | | A | | B | C | | D | | E | ||| E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | | B | G# Major: ||| | F | | G | G#| | A#| | C | C#| | D#| | F | | G | G#| | A#| | ||| | C | C#| | D#| | F | | G | G#| | A#| | C | C#| | D#| | F | | ||| G | G#| | A#| | C | C#| | D#| | F | | G | G#| | A#| | C | C#| | ||| | D#| | F | | G | G#| | A#| | C | C#| | D#| | F | | G | G#| | ||| | A#| | C | C#| | D#| | F | | G | G#| | A#| | C | C#| | D#| | ||| | F | | G | G#| | A#| | C | C#| | D#| | F | | G | G#| | A#| | Natural Pentatonic scales, on the fretboard C Pentatonic Major: ||| E | | | G | | A | | | C | | D | | E | | | G | | A | | | ||| | C | | D | | E | | | G | | A | | | C | | D | | E | | | ||| G | | A | | | C | | D | | E | | | G | | A | | | C | | D | ||| D | | E | | | G | | A | | | C | | D | | E | | | G | | A | ||| A | | | C | | D | | E | | | G | | A | | | C | | D | | E | ||| E | | | G | | A | | | C | | D | | E | | | G | | A | | | D Pentatonic Major: ||| E | | F#| | | A | | B | | | D | | E | | F#| | | A | | B | ||| B | | | D | | E | | F#| | | A | | B | | | D | | E | | F#| ||| | | A | | B | | | D | | E | | F#| | | A | | B | | | D | ||| D | | E | | F#| | | A | | B | | | D | | E | | F#| | | A | ||| A | | B | | | D | | E | | F#| | | A | | B | | | D | | E | ||| E | | F#| | | A | | B | | | D | | E | | F#| | | A | | B | E Pentatonic Major: ||| E | | F#| | G#| | | B | | C#| | | E | | F#| | G#| | | B | ||| B | | C#| | | E | | F#| | G#| | | B | | C#| | | E | | F#| ||| | G#| | | B | | C#| | | E | | F#| | G#| | | B | | C#| | ||| | | E | | F#| | G#| | | B | | C#| | | E | | F#| | G#| | ||| | | B | | C#| | | E | | F#| | G#| | | B | | C#| | | E | ||| E | | F#| | G#| | | B | | C#| | | E | | F#| | G#| | | B | F Pentatonic Major: ||| | F | | G | | A | | | C | | D | | | F | | G | | A | | | ||| | C | | D | | | F | | G | | A | | | C | | D | | | F | | ||| G | | A | | | C | | D | | | F | | G | | A | | | C | | D | ||| D | | | F | | G | | A | | | C | | D | | | F | | G | | A | ||| A | | | C | | D | | | F | | G | | A | | | C | | D | | | ||| | F | | G | | A | | | C | | D | | | F | | G | | A | | | G Pentatonic Major: ||| E | | | G | | A | | B | | | D | | E | | | G | | A | | B | ||| B | | | D | | E | | | G | | A | | B | | | D | | E | | | ||| G | | A | | B | | | D | | E | | | G | | A | | B | | | D | ||| D | | E | | | G | | A | | B | | | D | | E | | | G | | A | ||| A | | B | | | D | | E | | | G | | A | | B | | | D | | E | ||| E | | | G | | A | | B | | | D | | E | | | G | | A | | B | A Pentatonic Major: ||| E | | F#| | | A | | B | | C#| | | E | | F#| | | A | | B | ||| B | | C#| | | E | | F#| | | A | | B | | C#| | | E | | F#| ||| | | A | | B | | C#| | | E | | F#| | | A | | B | | C#| | ||| | | E | | F#| | | A | | B | | C#| | | E | | F#| | | A | ||| A | | B | | C#| | | E | | F#| | | A | | B | | C#| | | E | ||| E | | F#| | | A | | B | | C#| | | E | | F#| | | A | | B | B Pentatonic Major: ||| | | F#| | G#| | | B | | C#| | D#| | | F#| | G#| | | B | ||| B | | C#| | D#| | | F#| | G#| | | B | | C#| | D#| | | F#| ||| | G#| | | B | | C#| | D#| | | F#| | G#| | | B | | C#| | ||| | D#| | | F#| | G#| | | B | | C#| | D#| | | F#| | G#| | ||| | | B | | C#| | D#| | | F#| | G#| | | B | | C#| | D#| | ||| | | F#| | G#| | | B | | C#| | D#| | | F#| | G#| | | B | Major scales 0 2 4 5 7 9 11 A Major A B C# D E F# G# A A# Major A# C D D# F G A A# B Major B C# D# E F# G# A# B C Major C D E F G A B C C# Major C# D# F F# G# A# C C# D Major D E F# G A B C# D D# Major D# F G G# A# C D D# E Major E F# G# A B C# D# E F Major F G A A# C D E F F# Major F# G# A# B C# D# F F# G Major G A B C D E F# G G# Major G# A# C C# D# F G G# Minor scales 0 2 3 5 7 8 10 A Minor A B C D E F G A A# Minor A# C C# D# F F# G# A# B Minor B C# D E F# G A B C Minor C D D# F G G# A# C C# Minor C# D# E F# G# A B C# D Minor D E F G A A# C D D# Minor D# F F# G# A# B C# D# E Minor E F# G A B C D E F Minor F G G# A# C C# D# F F# Minor F# G# A B C# D E F# G Minor G A A# C D D# F G G# Minor G# A# B C# D# E F# G# Pentatonic scales A Pentatonic Major A B C# E F# A A Pentatonic Minor A B C E F A A# Pentatonic Major A# C D F G A# A# Pentatonic Minor A# C C# F F# A# B Pentatonic Major B C# D# F# G# B B Pentatonic Minor B C# D F# G B C Pentatonic Major C D E G A C C Pentatonic Minor C D D# G G# C C# Pentatonic Major C# D# F G# A# C# C# Pentatonic Minor C# D# E G# A C# D Pentatonic Major D E F# A B D D Pentatonic Minor D E F A A# D D# Pentatonic Major D# F G A# C D# D# Pentatonic Minor D# F F# A# B D# E Pentatonic Major E F# G# B C# E E Pentatonic Minor E F# G B C E F Pentatonic Major F G A C D F F Pentatonic Minor F G G# C C# F F# Pentatonic Major F# G# A# C# D# F# F# Pentatonic Minor F# G# A C# D F# G Pentatonic Major G A B D E G G Pentatonic Minor G A A# D D# G G# Pentatonic Major G# A# C D# F G# G# Pentatonic Minor G# A# B D# E G#
End of music - Begin of Frequency
Notes same A 5th on 1st == 2nd open (A) Notes same D 5th on 1st == 3rd open (D) Notes same G 5th on 1st == 4th open (G) Notes same B 4th on 1st == 5th open (B) Notes same E 5th on 1st == 6th open (E) 1st string open (E) is lowest. 6th string closed at rightmost B is highest relative octave offsets of strings eBGDAE 7 2 10 5 0 7 (low->high) EADGBe 7 0 5 10 2 7 Call A lower than lowest E 0. => we get offsets : 7 12 17 22 26 31 (x +5 +5 +5 +4 +5) .. and highest B offset is 50. 12 or 13 ??? 12 too small (but right?), 13 too big, real Guitar in between? 2.71828182845905 1 -1.99840144432528e-15 e = 2.71828182845906 log(2.71828182845906) = 1 (should be 1) 1.0594630943593**12 = 2.00000000000001 (should be 2) HTML Guitar fretboard: Fret number and length(mm) Offset, note and frequency(Hz) (if next lowest C off fretboard == 64Hz) (offset from next lowest A off fretboard) Note every 12 semitones (=frets) means 2*frequency
0 652.0 | 1 615.4 | 2 580.9 | 3 548.3 | 4 517.5 | 5 488.4 | 6 461.0 | 7 435.2 | 8 410.7 | 9 387.7 | 10 365.9 | 11 345.4 | 12 326.0 | 13 307.7 | 14 290.4 | 15 274.1 | 16 258.7 | 17 244.2 | 18 230.5 | 19 217.6 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 322.5 E | 32 341.7 F | 33 362.0 F# | 34 383.6 G | 35 406.4 G# | 36 430.5 A | 37 456.1 A# | 38 483.3 B | 39 512.0 C | 40 542.4 C# | 41 574.7 D | 42 608.9 D# | 43 645.1 E | 44 683.4 F | 45 724.1 F# | 46 767.1 G | 47 812.7 G# | 48 861.1 A | 49 912.3 A# | 50 966.5 B |
26 241.6 B | 27 256.0 C | 28 271.2 C# | 29 287.4 D | 30 304.4 D# | 31 322.5 E | 32 341.7 F | 33 362.0 F# | 34 383.6 G | 35 406.4 G# | 36 430.5 A | 37 456.1 A# | 38 483.3 B | 39 512.0 C | 40 542.4 C# | 41 574.7 D | 42 608.9 D# | 43 645.1 E | 44 683.4 F | 45 724.1 F# |
22 191.8 G | 23 203.2 G# | 24 215.3 A | 25 228.1 A# | 26 241.6 B | 27 256.0 C | 28 271.2 C# | 29 287.4 D | 30 304.4 D# | 31 322.5 E | 32 341.7 F | 33 362.0 F# | 34 383.6 G | 35 406.4 G# | 36 430.5 A | 37 456.1 A# | 38 483.3 B | 39 512.0 C | 40 542.4 C# | 41 574.7 D |
17 143.7 D | 18 152.2 D# | 19 161.3 E | 20 170.9 F | 21 181.0 F# | 22 191.8 G | 23 203.2 G# | 24 215.3 A | 25 228.1 A# | 26 241.6 B | 27 256.0 C | 28 271.2 C# | 29 287.4 D | 30 304.4 D# | 31 322.5 E | 32 341.7 F | 33 362.0 F# | 34 383.6 G | 35 406.4 G# | 36 430.5 A |
12 107.6 A | 13 114.0 A# | 14 120.8 B | 15 128.0 C | 16 135.6 C# | 17 143.7 D | 18 152.2 D# | 19 161.3 E | 20 170.9 F | 21 181.0 F# | 22 191.8 G | 23 203.2 G# | 24 215.3 A | 25 228.1 A# | 26 241.6 B | 27 256.0 C | 28 271.2 C# | 29 287.4 D | 30 304.4 D# | 31 322.5 E |
7 80.6 E | 8 85.4 F | 9 90.5 F# | 10 95.9 G | 11 101.6 G# | 12 107.6 A | 13 114.0 A# | 14 120.8 B | 15 128.0 C | 16 135.6 C# | 17 143.7 D | 18 152.2 D# | 19 161.3 E | 20 170.9 F | 21 181.0 F# | 22 191.8 G | 23 203.2 G# | 24 215.3 A | 25 228.1 A# | 26 241.6 B |
Real guitar string length max,min = 652,217 Guitar One,Two => i=0..20 soo....is that one too many? YES :( Guitar 3,4 => i=0..19 OK? YES :) Guitar 3 (from 217 up) 650.265271364483 613.768686069926 579.320496709797 546.805735654377 516.115887911183 487.14852896627 459.806982951936 434.000000000001 409.641451703856 386.650043672908 364.949044220113 344.4660282771 325.132635682241 306.884343034962 289.660248354898 273.402867827188 258.057943955591 243.574264483134 229.903491475967 217 Guitar 4 (from 652 dn) 652 615.406051868464 580.865964227501 548.264462745421 517.492742941633 488.448107061798 461.033621333628 435.15779245943 410.734262265728 387.681519490886 365.922627748855 345.384968761129 325.999999999999 307.703025934231 290.43298211375 274.13223137271 258.746371470816 244.224053530898 230.516810666813 217.578896229715 Real guitar x = 1.05961166227198, not 1.0594630943593 oh yeah _BIG_ difference:0.000148567912684028 Real guitar 652 615.319765924439 580.703089474396 548.033878967767 517.202573811516 488.10577707549 460.645908736897 434.730878432573 410.273776621559 387.19258312226 365.40989204673 344.852652209614 325.451922141168 307.142638882764 289.863399789504 273.55625660819 258.166521140057 243.642581836544 229.935730713018 216.999999999999 Frequency: 256 * 1.0594630943593**12 = 512.000000000002 512 1024 1024 2048.00000000001 0 C 128.00 1 C# 135.61 2 D 143.68 3 D# 152.22 4 E 161.27 5 F 170.86 6 F# 181.02 7 G 191.78 8 G# 203.19 9 A 215.27 10 A# 228.07 11 B 241.63 12 C 256.00 13 C# 271.22 14 D 287.35 15 D# 304.44 16 E 322.54 17 F 341.72 18 F# 362.04 19 G 383.57 20 G# 406.37 21 A 430.54 22 A# 456.14 23 B 483.26 24 C 512.00 25 C# 542.45 26 D 574.70 27 D# 608.87 28 E 645.08 29 F 683.44 30 F# 724.08 31 G 767.13 32 G# 812.75 33 A 861.08 34 A# 912.28 35 B 966.53 36 C 1024.00 37 C# 1084.89 38 D 1149.40 Frequency's 128 ... 256 ... 512: 128 135.61127607799 143.6751421836 152.218510720348 161.269894386544 170.859501333765 181.019335983756 191.783305840216 203.18733465193 215.269482304951 228.070071843927 241.631824046514 256.000000000001 271.22255215598 287.350284367201 304.437021440698 322.539788773089 341.71900266753 362.038671967514 383.566611680432 406.374669303861 430.538964609904 456.140143687856 483.26364809303 512.000000000003 542.445104311963 574.700568734403 608.874042881397 645.07957754618 683.438005335063 724.07734393503 767.133223360867 812.749338607725 861.077929219811 912.280287375715 966.527296186063 1024.00000000001 1084.89020862393 1149.40113746881 And major Roots, 3rds and 5ths? resonance? yep. reasonably close. 1st (root, 3rd, 5th, root) frequencies 2nd Calculated resonant frequencies: Root, +rootDif/4, +rootDif/2 A Major A 215.27 C# 271.22 E 322.54 A 430.54 215.27 269.09 322.90 A# Major A# 228.07 D 287.35 F 341.72 A# 456.14 228.07 285.09 342.11 B Major B 241.63 D# 304.44 F# 362.04 B 483.26 241.63 302.04 362.45 C Major C 256.00 E 322.54 G 383.57 C 512.00 256.00 320.00 384.00 C# Major C# 271.22 F 341.72 G# 406.37 C# 542.45 271.22 339.03 406.83 D Major D 287.35 F# 362.04 A 430.54 D 574.70 287.35 359.19 431.03 D# Major D# 304.44 G 383.57 A# 456.14 D# 608.87 304.44 380.55 456.66 E Major E 322.54 G# 406.37 B 483.26 E 645.08 322.54 403.17 483.81 F Major F 341.72 A 430.54 C 512.00 F 683.44 341.72 427.15 512.58 F# Major F# 362.04 A# 456.14 C# 542.45 F# 724.08 362.04 452.55 543.06 G Major G 383.57 B 483.26 D 574.70 G 767.13 383.57 479.46 575.35 G# Major G# 406.37 C 512.00 D# 608.87 G# 812.75 406.37 507.97 609.56
. | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
. | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
. | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
. | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
. | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
. | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
.. I'm just learning ... but it's quite powerful. I'm sure what I'm doing here is quite limited but there's lovely knacky things about perl that make it easy. I'd recommend perl to anyone.
#!/local/bin/perl use CGI::Request; my $cgi = GetRequest; my $formComments=<<"EINDE" # Music - scales # frequency 12 notes C=256Hz, 512Hz => spacing is 12th root of 2? # Root, 3rd and 5th freq spacing? resonant yes! yes! (for major scales) wow! # Guitar notes, chords # EINDE ; my $modeComments=<<"EINDE" Modes? Modes of G major follow. Just G scale starting from different notes. Ionian mode _IS_ major key. And pattern moves up+down fretboard giving different keys. Learn pattern from root to root. Ionian == natural major Aeolian == natural minor Pentatonic => scale has 5 notes only, drop 4th and 7th Pentatonic G: G A B D E G Has 5 modes, 1st to 5th related to Ionian, Dorian, Phyrgian, Mixolydian and Aeolian, just drop the not-needed notes. G Major: G A B C D E F# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ||| E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | | B | ||| B | C | | D | | E | | F#| G | | A | | B | C | | D | | E | | F#| ||| G | | A | | B | C | | D | | E | | F#| G | | A | | B | C | | D | ||| D | | E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | ||| A | | B | C | | D | | E | | F#| G | | A | | B | C | | D | | E | ||| E | | F#| G | | A | | B | C | | D | | E | | F#| G | | A | | B | xxxxxxxxxxxxxxx Ionian key G => G(3) xxxxxxxxxxxxxxxxxxx Dorian key G => A(5) xxxxxxxxxxxxxxx Phyrgian key G => B(7) xxxxxxxxxxxxxxx Lydian key G => C(8) xxxxxxxxxxxxxxxxxxx Mixolydian key G => D(10) xxxxxxxxxxxxxxxxxxx Aeolian key G => E(12) xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx Locrian key G => F#(14) EINDE ; # needed for numeric sort sub numericCompare { $a <=> $b; } ########### # sub defineGlobals { # 13 divisions for an octave, 12 notes. $chromaticScale="A A# B C C# D D# E F F# G G# "; $maxScaleNotes=12; $chromaticScaleR="A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# "; @noteColourTable= ( "444444", "445555", "446666", "447777", "448888", "449999", "44AAAA", "44BBBB", "44CCCC", "44DDDD", "44EEEE", "44FFFF" ); @noteColourTable2= ( "000000", "000000", "000000", "000000", "000000", "000000", "000000", "1100BC", "1100EF", "220055", "2200AA", "220056", "360089", "36CCCC", "36FF55", "445510", "443333", "446666", "449999", "4400BC", "4400EF", "660000", "660023", "660056", "660089", "66CCCC", "66FF55", "885510", "883333", "886666", "889999", "8800BC", "8800EF", "AA0000", "AA0023", "AA0056", "AA0079", "AACCCC", "AAFF55", "CC5510", "CC3333", "CC6666", "CC9999", "CC00BC", "CC00EF", "EE0000", "EE0023", "EE0056", "EE3399", "EFFF55", "FFFFFF" ); # Major chords => 0 2 45 7 9 BC (semi-tone spacing) @majorSemiToneSpacing = ( 0,2,4,5,7,9,11 ); @majorR35ToneSpacing = ( 0,4,7 ); @pentatonicMajorSemiToneSpacing = ( 0,2,4,7,9 ); # Minor chords 0 23 5 78 A C @minorSemiToneSpacing = ( 0,2,3,5,7,8,10 ); @minorR35ToneSpacing = ( 0,3,7 ); @pentatonicMinorSemiToneSpacing = ( 0,2,3,7,8 ); # interesting perl feature! look at major and minor semitonespacing, # there was more messing with major and it got left before going all the way to the end. # print major.... gave 3 5 7 8 10 0 2 print minor... gave 0 2 3 5 7 8 10 # so remember to sort with foreaches when order matters (e.g. printing scales). # also sort produces 0 10 2 3 5 7 8 !! # so sort numericCompare ... # nope! This was it: (after foreach $root (major....) ) # $root+=3;# going from C natural so we get all natural notes - don't ask. #yeow! this changes @majorSemiToneSpacing! # added 3 to all in @major... # Guitar fretboard note offsets e(7) B(2) G(10) D(5) A(0) E(7) (high->low) I think? @guitarFretNotes = (31,26,22,17,12,7); #@guitarFretNotes = (7,2,10,5,0,7); $maxGuitarFrets=20; @notes = split(/ [ ]*/,$chromaticScaleR); } ########### # Pass in offset of root along chromatic scale from A, e.g. A=0 C=3 G=10 # $what is major or minor or pentatonicmajor ...... # globals @majorSemiToneSpacing or @pentatonic... or @minor... are passed in # Uses globals @notes $maxScaleNotes sub printScale { local ($root, $what, *scaleToneSpacing) = @_; printf "%-2s %s ",$notes[$root],$what; my @scaleNote; my $c=0; foreach $i (sort numericCompare @scaleToneSpacing) { $scaleNote[$c++]=$notes[($i + $root) % $maxScaleNotes]; printf " %-2s ",$scaleNote[$c-1]; } printf " %-2s\n",$notes[$root]; # printf " %-2s 3rd=%-2s 5th=%-2s\n",$notes[$root],$scaleNote[2],$scaleNote[4]; } ########### # # Uses globals @notes @guitarFretNotes $maxGuitarFrets $maxScaleNotes sub printGuitarFretboard { foreach $note (@guitarFretNotes) { print "\n||"; for ($i=0;$i<$maxGuitarFrets;$i++) { # print "| $notes[$note+$i%$maxScaleNotes]"; printf "| %-2s", $notes[$note+$i%$maxScaleNotes]; } print "|"; } } ########### # Pass in offset of root along chromatic scale from A, e.g. A=0 C=3 G=10 # globals @majorSemiToneSpacing or @pentatonic... or @minor... are passed in # Uses globals @notes @guitarFretNotes $maxGuitarFrets $maxScaleNotes sub printGuitarFretboardScale { #$root=$_[0]; #*scaleToneSpacing=@_[1]; local ($root, *scaleToneSpacing) = @_; foreach $note (@guitarFretNotes) { print "\n||"; for ($i=0;$i<$maxGuitarFrets;$i++) { # if this_note isin this_scale # if ($note+$i)%$maxScaleNotes isin (@scaleToneSpacing)+$root undef $where; for ($[ .. $#scaleToneSpacing) { $where=$_, last if (($scaleToneSpacing[$_]+$root)%$maxScaleNotes eq ($note+$i)%$maxScaleNotes); } if (defined($where)) { printf "| %-2s", $notes[($note+$i)%$maxScaleNotes]; } else { print "| "; } } print "|"; } } ########### # # Uses globals @notes @guitarFretNotes $maxGuitarFrets $maxScaleNotes # colour by note sub printGuitarFretboardTable { print "
%-2s | ", $notes[$note+$i%$maxScaleNotes]; } print "
%-2s | ", $notes[$note+$i%$maxScaleNotes]; } elsif ($where == 2) { printf "%-2s | ", $notes[$note+$i%$maxScaleNotes]; } elsif ($where == 4) { printf "%-2s | ", $notes[$note+$i%$maxScaleNotes]; } else { printf "%-2s | ", $notes[$note+$i%$maxScaleNotes]; } } else { printf ""; } } print " |
%2d %4.1f", $i, 652/($twelfthroot2**$i); } print " |
---|
%2d %-3.1f %-2s | ", $colour%0x1000000, $note+$i, 64*($twelfthroot2**($note+$i-3)), $notes[$note+$i%$maxScaleNotes]; } print "
. | ", $colour%0x1000000; } print "
$formComments\n"; defineGlobals(); print "\nDefinitions\n"; print "chromaticScale $chromaticScale\n"; # print "$chromaticScaleR\n"; print "majorSemiToneSpacing @majorSemiToneSpacing\n"; print "minorSemiToneSpacing @minorSemiToneSpacing\n"; print "pentatonicMajorSemiToneSpacing @pentatonicMajorSemiToneSpacing\n"; print "pentatonicMinorSemiToneSpacing @pentatonicMinorSemiToneSpacing\n"; print "notes @notes\n"; print "notes "; foreach $note (@notes) { print "$note "; } print "\n"; print "notes by number "; for ($i=0;$i<$maxScaleNotes;$i++) { print "$i $notes[$i] "; } print "
"; print "\n\nGuitar fretboard: note(offset) e(7) B(2) G(10) D(5) A(0) E(7)"; &printGuitarFretboard; print "
"; print "\n\nHTML Guitar fretboard: note(offset) e(7) B(2) G(10) D(5) A(0) E(7)\n"; &printGuitarFretboardTable(); print "
"; print "\n\nHTML Guitar fretboard: C major Red=Root Green=3rd Blue=5th\n"; &printGuitarFretboardScaleTable(3); print "
\n\nHTML Guitar fretboard: C major, note positions\n"; $root=3; print "
$where $majorSemiToneSpacing[$where] | "; } else { printf ""; } } print " |
\n"; print "\n\nHTML Guitar fretboard: G major Red=Root Green=3rd Blue=5th\n"; &printGuitarFretboardScaleTable(10); print "
\n\n$modeComments"; print "\n\nMajor scales, on the fretboard, more obfussy, you can see the different modes here!"; for($root=0;$root<$maxScaleNotes;$root++){ print "\n$notes[$root] Major: "; &printGuitarFretboardScale($root,*majorSemiToneSpacing); } print "\n\nNatural Pentatonic scales, on the fretboard"; foreach $root (sort numericCompare @majorSemiToneSpacing) { $r=$root+3; #$root+=3;# going from C natural so we get all natural notes - don't ask. #yeow! this changes @majorSemiToneSpacing! $r%=$maxScaleNotes; # might as well print "\n$notes[$r] Pentatonic Major: "; &printGuitarFretboardScale($r,*pentatonicMajorSemiToneSpacing); } print "\n\nMajor scales @majorSemiToneSpacing\n"; for($root=0;$root<$maxScaleNotes;$root++){ &printScale($root,"Major",*majorSemiToneSpacing); } print "Minor scales @minorSemiToneSpacing\n"; for($root=0;$root<$maxScaleNotes;$root++){ &printScale($root,"Minor",*minorSemiToneSpacing); } print "\n\nPentatonic scales\n"; for($root=0;$root<$maxScaleNotes;$root++){ &printScale($root,"Pentatonic Major",*pentatonicMajorSemiToneSpacing); &printScale($root,"Pentatonic Minor",*pentatonicMinorSemiToneSpacing); } print "
End of music - Begin of Frequency
"; my $guitarComments=<<"EINDE" Notes same A 5th on 1st == 2nd open (A) Notes same D 5th on 1st == 3rd open (D) Notes same G 5th on 1st == 4th open (G) Notes same B 4th on 1st == 5th open (B) Notes same E 5th on 1st == 6th open (E) 1st string open (E) is lowest. 6th string closed at rightmost B is highest relative octave offsets of strings eBGDAE 7 2 10 5 0 7 (low->high) EADGBe 7 0 5 10 2 7 Call A lower than lowest E 0. => we get offsets : 7 12 17 22 26 31 (x +5 +5 +5 +4 +5) .. and highest B offset is 50. EINDE ; print "$guitarComments"; # frequency 13 notes C=256Hz, 512Hz => spacing is 13th root of 2? # log(ab) = log(a) + log(b) log(a/b) = log(a) - log(b) log(a^b) = b*log(a) # log(x) = y => e^y=x # #%#%###!@!! 13 should be 12????? print "\n\n 12 or 13 ??? 12 too small (but right?), 13 too big, real Guitar in between?\n\n"; # x^13 = 2 => # log(x^12) = log(2) => # log(x) = log(2)/12 => # e^(log(2)/12) = x # calculate e :- shouldn'tthis be easier? $e = 2.718; $loge = log($e); $diff=1-$loge; for($e=2.718281828459;$e<2.72 && $diff>0;$e+=0.00000000000001) { $loge=log($e); $diff=1-$loge; if ($diff<0) { print "\n$e $loge $diff\n"; } } $x = $e**(log(2)/12); $two = $x**12; $twelfthroot2=$x; print " e = $e log($e) = $loge (should be 1)\n"; print " $x**12 = $two (should be 2)\n"; print "\n\nHTML Guitar fretboard: Fret number and length(mm)"; print "\nOffset, note and frequency(Hz) (if next lowest C off fretboard == 64Hz) (offset from next lowest A off fretboard)"; print "\nNote every 12 semitones (=frets) means 2*frequency\n"; print ""; &printGuitarFretboardTableFreq; print "
"; $guitarMaxLength = 652; $guitarMinLength = 217; $guitarThree[19]=217; $guitarFour[0]=652; print "Real guitar string length max,min = $guitarMaxLength,$guitarMinLength \n"; print "Guitar One,Two => i=0..20 soo....is that one too many? YES :(\n"; print "Guitar 3,4 => i=0..19 OK? YES :)\n"; for ($i=1;$i<20;$i++){ $guitarThree[19-$i]=$guitarThree[20-$i]*$x; $guitarFour[$i]=$guitarFour[$i-1]/$x; } print "Guitar 3 (from 217 up) @guitarThree\n"; print "Guitar 4 (from 652 dn) @guitarFour\n"; # length difference 652-217 should be divisible in 20. # 217 * $x2**19 = 652 pretty much YES. $logx2 = log(652/217)/19; $x2 = $e**(log(652/217)/19); $delta=$x2-$x; print "Real guitar x = $x2, not $x oh yeah _BIG_ difference:$delta\n"; for ($i=0;$i<20;$i++){ $guitarReal[$i]=652/($x2**$i); } print "Real guitar @guitarReal\n"; # Frequency should correlate though # C = 256 * $x**12 should be 512 ? well, of course! That's the way I worked out $x silly. $h=256*($x**12); $h1=512*($x**12); $h2=1024*($x**12); print "\nFrequency: 256 * $x**12 = $h 512 $h1 1024 $h2\n"; # 39? silly cabbage. (cabbalo) should be 37 for ($i=0;$i<39;$i++){ $noteFreq[$i]=128*($x**$i); printf "%2d %-2s %4.2f ",$i,$notes[$i+3],$noteFreq[$i]; } print "\nFrequency's 128 ... 256 ... 512: @noteFreq\n"; print "\n\nAnd major Roots, 3rds and 5ths? resonance? yep. reasonably close."; print "\n1st (root, 3rd, 5th, root) frequencies"; print "\n2nd Calculated resonant frequencies: Root, +rootDif/4, +rootDif/2\n"; for($root=0;$root<12;$root++){ printf "%-2s Major", $notes[$root]; foreach $i (@majorR35ToneSpacing,12) { $frequency = 256*($x**($root+$i-3)); # C is 3rd note printf " %-2s %4.2f", $notes[($i + $root) % 12], $frequency; } print "\n "; $rootFrequency = 256*($x**($root-3)); # C is 3rd note $topRootFrequency = 256*2*($x**($root-3)); # C is 3rd note $rootPlusHalf=$rootFrequency+($topRootFrequency-$rootFrequency)/2; $rootPlusQuart=$rootFrequency+($topRootFrequency-$rootFrequency)/4; printf " %4.2f %4.2f %4.2f\n", $rootFrequency, $rootPlusQuart, $rootPlusHalf; } print ""; &printBlankColourTable; print ""; }