From: obry@flash.bellcore.com (Pascal Obry)
Subject: GUITARE V3.0 advertisement time ...
Organization: /u/obry/.organization
Distribution: rec.music.makers.guitar.tab
Date: 11 Nov 92 09:21:47


I recieved some request since my last message to know what GUITARE is.
I think that it is the time for an advertisement.

Pascal.


---------------- README ------------------------------------------------------

*******************
** GUITARE V3.0  **
*******************

Pascal OBRY (obry@bellcore.com)

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

Informations
============

This program is the seventh 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

Why 'true executable' version, because I can distribute a kind of
executable for PC, SPARC, DEC5000 (see comment at the end of this text).

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

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.

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

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 avoid this by writing the full path for lib into the batch guitare.

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

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

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)

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

History
=======

*************** (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.


*************** (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


*************** (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.

*************** (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.


*************** (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


*************** (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)

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

New release
===========

I plan to make the following enhancement :

	any ideas ?

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

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 ...

If you have not an FTP access, send me a mail, I will send you the
program.

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

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

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						     --
--  Morristown, New Jersey 07962-1910					     --
-------------------------------------------------------------------------------

  `` inheritance is surely a good answer, but who knows the question ? ''