From: obry@flash.bellcore.com (Pascal Obry)
Subject: GUITARE V4.0 ...
Organization: /u/obry/.organization
Distribution: rec.music.makers.guitar
Date: 12 Jan 93 10:08:42


Hi,

The new version of GUITARE (V4.0) is now available from ftp.nevada.edu

I have include here the README.

Let me know about your ideas, impressions, bugs ...

Pascal.

<file : README>

*******************
** GUITARE V4.0  **
*******************

Pascal OBRY (obry@bellcore.com)

-----------------------------------------------------------------------------
				CONTENTS
				========

	I		Informations

	II		Acknowledgements

	III		Compilation

	IV		PC-Users

	V		History

		V.I	  version 1.0   (June 8, 1992)
		V.II	  version 2.0   (June 19, 1992)
		V.III	  version 2.0a  (June 22, 1992)
		V.IV	  version 2.0b  (June 16, 1992)
		V.V	  version 2.5   (August 3, 1992)
		V.VI	  version 3.0   (September 15, 1992)
		V.VII     version 3.1	(December 15, 1992)
		V.VIII	  version 4.0   (January 8, 1992)

	VI		Chord notation into GUITARE

	VII		New release

	VIII		How to get it

	IX		bugs report

-----------------------------------------------------------------------------

I. Informations
===============

This program is the eighth version. I want it to be a help for the guitarist.
An help to explore the world of scales, chords, fingering ...

I distribute this for free (and without guarantees), so you can copy it and
redistribuate it to your friends freely.

All comments and bugs report will be welcome.


///////////////\
**IMPORTANT **
\\\\\\\\\\\\\\\/

This program is written in Ada, and I can't distribute a true executable 
version. So, you MUST have a Ada compiler to use it. If you have no Ada
compiler, try Ada/Ed from NYU (its free too), I make this program entirely 
with this compiler/interpreter.

	=> ftp cs.nyu.edu            IP address 128.122.140.24
	=> cd /pub/adaed

however I can distribute a kind of executable for PC, SPARC, DEC5000
(see comment at the end of this text).

-----------------------------------------------------------------------------

II. Acknowledgements
====================

Thank you to the team of NYU that provide a free Ada compiler/interpreter.

Thank you to Geoffrey O. Mendal for making the SEARCH packages.

Thanks also to all peoples who have helped me to make the good choices in
some theory problems. In particularly I'd like to thanks :

	Robert Sum
	Michael J. Marchi
	Mark Weatherhead
	Wayne Colella

Since some messages was anonym : thanks to everybody who have helped me.


-----------------------------------------------------------------------------

III. Compilation
================

	type amake (script for Ada/Ed)

	All should be without problem.

	If you use another compiler, maybe you will have to change the
	script, but this one will help you to find the dependancies.


ATTENTION
---------

When you run guitare, if you get an error like :

	Unable to open file lib/lib for reading

You can fix this by writing the full path for lib into the batch file guitare.

	something like : adaexec -m guitare /.../.../lib
					    ---------
						|
				full path -------

-----------------------------------------------------------------------------

IV. PC users
============

1)
	If you plan to use GUITARE you need at least a 386 and 2Mb.

2)
	you must not use emm386 or QEMM.

3)
	If you use my 'binary' version
	you should not be able to use POSITION for the chord with
	many notes (like the thirteenh or eleventh chords)

	Why ?
	Because my compiler is not a commercial one and it don't
	free very well the memory after usage ... So very quickly the
	entire memory of your PC will be used.

	Solution ?
	If somebody have access to a professional Ada compiler, compile
	my sources and send me back the executable version that I will
	put in the nevada archive.

4)
	Since the V2.5, I change the name of some files to be in the PC format.
	(i.e. no more than 8 characters for the filename)

-----------------------------------------------------------------------------

V. History
==========

V.I  *************** (V1.0)  ***************  JUNE, 8 (sources 35 ko)

CHORD <chord name>

	give the notes in the chord, and display these notes in
	the neck of the guitar.

	<chord name> : Cmin/maj7 Cadd9 C7sus4 E#dim6 Dmaj9+11 Ao7 B ...

	know : minor, major, dominant7, seventh, eleventh, thirteenth
	       diminish, half diminish, suspended 4, suspendend 2
	       add, - and + sign

	ex : 
	> chord C
	> chord Ao7
	> chord Bmin9

SCALE <note> [<mode>]

	give the notes in the scale, and display these notes in
	the neck of the guitar.
		
	<note>       : C Db A# E ... (must be in capital letter)
	[<mode>]     : [optional] MAJOR, MINOR, DORIAN ...

	know : MAJOR/IONIAN, MINOR/AEOLIAN, DORIAN, PHRYGIAN, LYDIAN
	       MIXOLYDIAN, LOCRIAN

	ex :
	> scale D
	> scale Gb locrian

DISPLAY [STANDARD/EXTENDED]

	display the neck with 12 or 24 frets. Without parameter, the
	mode STABDARD is used.

TUNE [<note1> <note2> <note3> <note4> <note5> <note6>]

	give the tuning of the guitar. Without parameter, the default
	mode is used (i.e. TUNE E A D G B E)

	ex :
	> tune D G D G B D
	this defined the open G or "slack key" tune.

	> tune D G D G C D
	this defined the G modal or "sawmill" tune.

OUTPUT [STANDARD/<file>]

	write all informations into <file> or into the standard output.
	this allow to keep a log file.

	ex :
	> output
	> output file.out

INFO
	give some informations about the current parameters.

HELP
	display this message.

QUIT
	exit from the program.



V.II  *************** (V2.0)  *************** JUNE, 19 (sources 48 ko)

Modifications
-------------

You can display simultaneously 3 objects :

	object 1 can be - scale or chord
	object 2 can be - chord only
	object 3 can be - notes

	(this lead to a better ergonomy)

CHORD [<chord name>]
	with parameter : put this chord into object1
	without : clear object 1.

SCALE [<note> [<mode>]]
	with parameter : put this chord into object 1
	without : clear object 1.

DISPLAY become FINGERBOARD


-> the program handle more exceptions, (bad note, bad scale name ...) so it must exit
   less often and give more informations about the problems.


New
---

FINGERBOARD
	is the same as DISPLAY in V1.0

DISPLAY
	display the fingerboard

OVERLAY [<chord name>]
	with parameter : put this chord into object2
	without : clear object 2.

	ex :
	> chord C
	> overlay Dmin

NOTE [<note> [<note> ...]]
	with parameter : put these notes into object 3
	without : clear object 3.

	ex :
	> chord C
	> overlay Dmin
	> note B
	> note
	> overlay

TRANSPOSE <from_key> <to_key> MINOR/MAJOR <chord> [<chord> ...]
	transpose all the chords from the from_key to the to_key in the given
	mode.

TRANSPOSE <to_key>
	transpose in a new key (after the command above)

	ex :
	> transpose E G major E G#min7 D#dim
	> transpose B


And more modes :      WHOLE, HARMONIC_MINOR, DIMINISHED, BLUES,
		      PENTATONIC_MAJOR, PENTATONIC_MINOR, NEAPOLITAN_MAJOR,
		      NEAPOLITAN_MINOR, ENIGMATIC, HUNGARIAN




V.III  *************** (V2.0a)  *************** JUNE, 22 (sources 48 ko)

I fix 2 bugs :

	- the scale was bad formatted for the creation of extended chord like
	  Cadd9, Cadd11, Cm9, Cmaj13 ...

	- Synonym m9 for min9 was not handled.



V.IV  *************** (V2.0b)  *************** JULY, 16 (sources 50 ko)

I fix 1 bug :

	- Synonym m for min was not handled.

I modify the output

	- a fingerboard is not cut in the output file. (formated in one page)

	- a '>' symbol before the string indicate that the unfreted string give
	  a note contained in the curent display.

I add the CHROMATIC scale.




V.V  *************** (V2.5)  *************** August, 3 (sources 90 ko)

----------------------

PC Users :

I change the name of some files to be in the PC format.
(i.e. no more than 8 characters for the filename)

----------------------

The SPARC version is fixed.

Now GUITARE handle a new chord format : C/E or D/F# ...


I add the POSITION, WITHOUT, COMMON_CHORDS and KEY_FOR commands.

POSITION [EASY / MEDIUM / DIFFICULT]

	display the fingering for the current chord in object 1.
	if object 1 is a scale it does nothing.
	if object 1 is a chord then it clear object 2 and 3 display the
	new fingerboard and then display the fingering positions.


WITHOUT <THIRD / SEVENTH / NINTH / ELEVENTH>

	without is only needed with the thirteenth chord. Why ?
	because a thirteenth chord has 7 notes and a guitar has only
	six strings. So, for this kind of chord you can delete one note
	from the chord. By default it is the eleventh.

	ex : 

	> chord C13-9
	> without ninth
	> position difficult

COMMON_CHORDS

	display the common chords found in a special key.
	this command is active only when the object 1 is a scale (of course !)
	The scale define the key.

KEY_FOR <chord name> [<chord name> ... ]

	return the key for the set of chord.

	ex :
	> key_for Abdim C#min D




V.VI  *************** (V3.0)  *************** September, 15 (sources 120 ko)

Improvement of the chord algorithm :

	- sus is a synonym for sus4

	- 2 is a synonym for sus2

	- all form like 6/9 are synonym for 6/add9

	- C5, A5, Gb5 ... the power chords are handle.

	- complex chords like E6/7/9/11 are handle

	- make a difference between a polychord and an altered bass chord.
				      ---------        ------------

		D/F# is a altered bass chord.
		D : D F# A

		because D chord contain a F# that should be the bass note.

		D/C is a polychord since C in not a part of the D chord.
		this chord could also be written as D7 (but in this case
		the bass note would be the D not the C)


I modify the POSITION command

POSITION [EASY / MEDIUM / DIFFICULT / COMMON / ANY]

	there is two more options.

	COMMON amd ANY active a switch for the next POSITION command.

	COMMON : will display only chord without unfretted string between
		 fretted string. this is the default option.

	ANY    : will display the same output as POSITION in GUITARE V2.5


	example :

	(1)

	command : chord C

	command : position 

	I             I             II            III           V
	===========   ===========   -----------   -----------   -----------
	| | | | * |   | | | | * |   | | * : : :   * * | | | *   | | * * * |
	-----------   -----------   -----------   -----------   -----------
	| | * | | |   | | * | | |   * * | : : :   | | | | | |   | | | | | |
	-----------   -----------   -----------   -----------   -----------
	| * | | | |   * * | | | |   | | | : : :   | | * * * |   | * | | | |
	-----------   -----------   -----------   -----------   -----------
	| | | | | |   | | | | | |   | | | : : :   | | | | | |   * | | | | *
	-----------   -----------   -----------   -----------   -----------
	E C E G C E   G C E G C E   G C E         G C G C E G   C E G C E C 

			.
			.
			.

	(2)

	command : chord C
	command : position any
	command : position

	I             I             I             I             II
	===========   ===========   ===========   ===========   -----------
	| | | | * |   | | | | * |   | : | : * :   : : | : * |   | | * : : |
	-----------   -----------   -----------   -----------   -----------
	| | * | | |   | | * | | |   | : * : | :   : : * : | |   * * | : : *
	-----------   -----------   -----------   -----------   -----------
	| * | | | |   * * | | | |   * : | : | :   : : | : | *   | | | : : |
	-----------   -----------   -----------   -----------   -----------
	E C E G C E   G C E G C E   G   E   C         E   C G   G C E     G 

			.
			.
			.



New command : ANALYSE, SYNONYM, MODE

ANALYSE <note> <note> <note> [<note> ...] / [<p1> .. <p6>]

	give the name of the chord containing the given notes. And also give
	the explanation of the chord construction (good tool for the beginner!
	isn't it ?).

	We can also enter the note by fretted position on the fingerboard.
	if one of the position is 'x' then the string is not played.


	example :

		if you don't know the chord name for F# A D C
		you could get it by :

		command : analyse C A F# D

		  for C  A  F# D   the chord names could be :

		          D7        or   Ddom 7    : major triad, minor 7th
		          D/C                      : major triad (polychord)


		OR

		command : analyse x 3 2 0 1 0

		  for C  E  G   the chords names could be :

		          C         or   Cmaj      : major triad



SYNONYM <chord name>

	give the name of the chords with the same notes than <chord name>.

	example :

		command : synonym C6   

		  for C6 the synonym are : 

		          C6                       : major triad plus 6th
		          Am7                      : minor triad, minor 7th


MODE [GUITAR / BASS / MANDOLINE]

	set the instrument mode. 
	(GUITAR is the default when you run guitare)




V.VII  *************** (V3.1)  *************** December, 15 (sources 135 ko)

*** this version was never distributed

fixed bug :

	- 2 is not the synonym for sus2

	  a sus2 chord is : a root, no third but a 2nd, a fifth

	  Csus2 : C D G

	  a 2 chord is : add 9

	  C2    : C E G D [synonym Cadd9]

	- confusion between altered bass chord, inversion and polychord


New command : PROGRESSION

PROGRESSION

	after a command you can request a progression.

	command : scale E major
	command : progression I IV V

		The progression in this key is : 

			E, A, B, 


And again more scales :

	KUMOI, MELODIC, HARMONIC_MAJOR, HUNGARIAN_MAJOR, ENIGMATIC_MINOR,
	COMPOSITEII, PERSIAN, HIROJOSHI, AUGMENTED, PELOG, DOMINANT_SUS,
	SPANISH, BEBOP_LOCRIAN, BEBOP_DOMINANT, BEBOP_DORIAN, BEBOP_MAJOR
	IONIAN_b5, LOCRIAN_7




V.VIII  *************** (V4.0)  *************** January, 8 (sources 151 ko)

fixed bug :

	- format of the fingerboard in Mandoline or Bass mode.

	- more consistent error messages.


Modification of : HELP

HELP <command> / 'chord_format' / 'note_format' / 'scale_mode'

	give you the help about one of the command of GUITARE.

		ex : HELP scale

	or about a subject

		ex : HELP chord_format


Modification of : POSITION

The open string are indicated with a 'O' and the killed string  with a 'x' in
the first fret. (this help to read the fingerings)



New command : ANALYSE_SCALE, PATTERN

ANALYSE_SCALE <note> [<note> ...]

	this command will tell you the name of the scale that you give.

	command : analyse_scale C D E F G A B C



The previous (in V2.5) command ANALYSE is renamed ANALYSE_CHORD to be
consistent with ANALYSE_SCALE.


PATTERN <number>
	give the sweep pattern for a scale.
	works for all scale, but give a good result only for the scale
	with 7 and 8 notes.


- the information command doesn't print any more the scales mode since they
  are now printed by the help command. (i.e. help scale_mode)




Now GUITARE read the file named guitare.ini (a file with one command by line)
from the current directory and execute the commands. This is usefull to
customize GUITARE with the defualt parameters that you like. You can put into
this file any valid command.

ex : for a bass player

----------------------------------
mode bass
----------------------------------


ex : for a mandoline player who want all kind of fingerings

----------------------------------
mode mandoline
position any
----------------------------------


ex : if you want always an output file to keep track of your work
---------------------------------- 
output work.sav
----------------------------------


This can also be used to create batch processing.
----------------------------------
output work.sav
scale C major
scale C minor
scale C spanish
pattern 1
pattern 2
pattern 3
pattern 4
pattern 5
pattern 6
pattern 7
pattern 8
quit
---------------------------------- 




-----------------------------------------------------------------------------

VI. Chord notation into GUITARE
===============================

The modern notation use a <delta> (greek letter) that is impossible to
type in a standard computer. So GUITARE doesn't use the standard notation.
It use more the notation that is found into the news group, or the
Guitar Handbook.

The conventions are the following :

Standard	GUITARE		Meaning [examples]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
nothing/M	nothing/maj	major triad
-		min		minor triad
+		aug		augmented triad
o		dim		diminished triad
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<delta>		maj7		major 7th chord
7		7		dominant 7 chord
0 with /	o		half-diminished 7 chord
o7		dim7		diminished 7 chord
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
chd1
----		chd1 // chd2	polychord
chd2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
chd / note	chd / note	Altered bass
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#		#		raise the pitch of the note to a sharp [C11#9]
b		b		lower the pitch of the note to a flat [C11b9]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		no		substract a note from a chord [C9(no 3rd)]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


notes :

	- you can use brakets everywhere like separator.
	- a slash can also be used like a separator for readability

		ex : C13#11#9 can be written C13/#11/#9

	- a double /  "//" give a polychord.
	  GUITARE put the first chord (chd1) into Object 1 (see HISTORY V2.0)
		  and put the second (chd2) into the Object 2


	  =>    > chord C // G

	     is equivalent to

	        > chord C
		> overlay G

-----------------------------------------------------------------------------

VII. New release
================

I plan to make the following enhancement :

	- Add a sound interface for a PC sound card (Sound Blaster)

	any others ideas ?

-----------------------------------------------------------------------------

VIII. How to get it
===================

Now the program is avalaible by ftp.

	ftp ftp.nevada.edu
	cd /pub/guitar/GUITARE

	get README.1st (explain what to get, and how to make it running)
	get README (this file)

	get ...

              =========================================

You could also use the FTPMAIL service. This allow (almost everybody) to ftp
something even without the ftp access.

	send a mail to ftpmail@decwrl.dec.com

	subject : <what you want>

	connect ftp.nevada.edu
	reply <your mail address>
	binary
	uuencode
	chunksize 64000 <or any other limits imposed by your mail server>
	get pub/guitar/GUITARE/<file>
	quit

wait to recieve the file. You can put many lines with get ...

NOTE : a mail with only 'help' will give you comments on how to use ftpmail.

	<file> can be :

	guitareV4.0.sparc.tar.Z
	guitare4.exe
	guitareV4.0.dec.tar.Z

	README.1st
	README

	rt_pc.exe
	rt_dec.tar.Z
	rt_sparc.tar.Z

              =========================================

If you have not an FTP access, and not an FTPMAIL access (and only in this
case) send me a mail, I will send you the program.

	- Ada sources
	- PC binary       (read PC users section)
	- SPARC binary
	- DEC 5000 binary

-----------------------------------------------------------------------------

IX. bugs report
===============

Please, if you report a bug include :

	- your sample
	- the answer of my program
	- and the answer that you were expecting
	- and some comments.

-----------------------------------------------------------------------------


Enjoy it !
Pascal.
--

-------------------------------------------------------------------------------
--  Pascal OBRY								     --
--  Room 2D-337				e_mail : obry@bellcore.com  	     --
--  Bellcore								     --
--  445 South Street			voice : 1 - 201 829 4039	     --
--  Post Office Box 1910		FAX   : 1 - 201 829 5981	     --
--  Morristown, New Jersey 07962-1910					     --
-------------------------------------------------------------------------------

  `` inheritance is surely a good answer, but who knows the question ? ''
Newsgroups: rec.music.makers.guitar,alt.guitar