Collosal script with hidden problem

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Post Reply
Message
Author
Wguitarimprov
Posts: 2
Joined: 09 Aug 2013 15:07

Collosal script with hidden problem

#1 Post by Wguitarimprov » 09 Aug 2013 15:28

Every time I select Major it does the same thing a Minor
They are located under the standard scales section.

the Scales are the input, the Big chunk of code below it is what processes it and the very bottom thing displays it.

Good luck 8)

Code: Select all

@echo off

Title FretBoard Pro

:StartUp

:Open
Set EO=-
Set BO=-
Set GO=-
Set DO=-
Set AO=-

:FretBoard
Set A=-
Set Bb=--
set B=-
Set C=-
Set Db=--
Set D=-
Set Eb=--
Set E=-
Set F=-
Set Gb=--
Set G=-
Set Ab=--

:E string Frets
set 0=E
set 1=F
set 2=Gb
set 3=G
set 4=Ab
set 5=A
set 6=Bb
set 7=B
set 8=C
set 9=Db
set 10=D
set 11=Eb
set 12=E
set 13=F
set 14=Gb
set 15=G
set 16=Ab
set 17=A
set 18=Bb
set 19=B
set 20=C
set 21=Db
set 22=D
set 23=Eb

:Intervols
set W=2
Set H=1

:Menu
cls
echo 1)Notes
echo 2)Scales
set /p Menu=

if %Menu% == 1 Goto Input1
if %Menu% == 2 Goto Input2
goto Menu

:Input1
cls
echo What Notes Will Be Visible
echo A B C D E F G Or All
set /p input1=

if %input1% == A Goto A
if %input1% == B Goto B
if %input1% == C Goto C
if %input1% == D Goto D
if %input1% == E Goto E
if %input1% == F Goto F
if %input1% == G Goto G
if %input1% == All goto All
goto Input1

:A
Set A=A
Goto Display
:B
Set B=B
Goto Display
:C
Set C=C
Goto Display
:D
Set D=D
Goto Display
:E
Set E=E
Goto Display
:F
Set F=F
Goto Display
:G
Set G=G
Goto Display

:All
Set A=A
set B=B
Set C=C
Set D=D
Set E=E
Set F=F
Set G=G
Goto Display

:Input2
cls
set /p Scale=Scale:
set /p Key=Key:

if %Key% == E set D1=0
if %Key% == F set D1=1
if %Key% == Gb set D1=2
if %Key% == G set D1=3
if %Key% == Ab set D1=4
if %Key% == A set D1=5
if %Key% == Bb set D1=6
if %Key% == B set D1=7
if %Key% == C set D1=8
if %Key% == Db set D1=9
if %Key% == D set D1=10
if %Key% == Eb set D1=11

if %scale% == Major goto Major
if %scale% == Minor goto Minor

if %scale% == Ionian goto Ionian
if %scale% == Dorian goto Dorian
if %scale% == Phrygian goto Phrygian
if %scale% == Lydian goto Lydian
if %scale% == Mixolydian goto Mixolydian
if %scale% == Aeolian goto Aeolian
if %scale% == Locrian goto Locrian
goto Input2




:Scale Preset
Set /a D2=(%D1%+%%)
Set /a D3=(%D2%+%%)
Set /a D4=(%D3%+%%)
Set /a D5=(%D4%+%%)
Set /a D6=(%D5%+%%)
Set /a D7=(%D6%+%%)
echo
set About=""
:goto Scaleset



:                                                                      Standerd Scales

:Major
Set /a D2=(%D1%+%W%)
Set /a D3=(%D2%+%w%)
Set /a D4=(%D3%+%H%)
Set /a D5=(%D4%+%W%)
Set /a D6=(%D5%+%W%)
Set /a D7=(%D6%+%W%)
echo W W H W W W
set About=""
:goto Scaleset

:Minor
Set /a D2=(%D1%+%W%)
Set /a D3=(%D2%+%H%)
Set /a D4=(%D3%+%W%)
Set /a D5=(%D4%+%W%)
Set /a D6=(%D5%+%H%)
Set /a D7=(%D6%+%W%)
echo W H W W H W
set About=""
:goto Scaleset



:            Modal scales

:Ionian
Set /a D2=(%D1%+%W%)
Set /a D3=(%D2%+%w%)
Set /a D4=(%D3%+%H%)
Set /a D5=(%D4%+%W%)
Set /a D6=(%D5%+%W%)
Set /a D7=(%D6%+%W%)
echo W W H W W W
set About=""
:goto Scaleset

:Dorian
Set /a D2=(%D1%+%W%)
Set /a D3=(%D2%+%H%)
Set /a D4=(%D3%+%W%)
Set /a D5=(%D4%+%W%)
Set /a D6=(%D5%+%W%)
Set /a D7=(%D6%+%H%)
echo W H W W W H
set About=""
:goto Scaleset

:Phrygian
Set /a D2=(%D1%+%H%)
Set /a D3=(%D2%+%W%)
Set /a D4=(%D3%+%W%)
Set /a D5=(%D4%+%W%)
Set /a D6=(%D5%+%H%)
Set /a D7=(%D6%+%W%)
echo H W W W H W
set About=""
:goto Scaleset

:Lydian
Set /a D2=(%D1%+%W%)
Set /a D3=(%D2%+%W%)
Set /a D4=(%D3%+%W%)
Set /a D5=(%D4%+%H%)
Set /a D6=(%D5%+%W%)
Set /a D7=(%D6%+%W%)
echo W W W H W W
set About=""
:goto Scaleset

:Mixolydian
Set /a D2=(%D1%+%W%)
Set /a D3=(%D2%+%W%)
Set /a D4=(%D3%+%H%)
Set /a D5=(%D4%+%W%)
Set /a D6=(%D5%+%W%)
Set /a D7=(%D6%+%H%)
echo W W H W W H
set About=""
:goto Scaleset

:Aeolian
Set /a D2=(%D1%+%W%)
Set /a D3=(%D2%+%H%)
Set /a D4=(%D3%+%W%)
Set /a D5=(%D4%+%W%)
Set /a D6=(%D5%+%H%)
Set /a D7=(%D6%+%W%)
echo W H W W H W
set About=""
:goto Scaleset

:Locrian
Set /a D2=(%D1%+%H%)
Set /a D3=(%D2%+%W%)
Set /a D4=(%D3%+%W%)
Set /a D5=(%D4%+%H%)
Set /a D6=(%D5%+%W%)
Set /a D7=(%D6%+%W%)
echo H W W H W W
set About=""
:goto Scaleset






:Scaleset
cls
if %D1% == 0 set E=E
if %D1% == 1 set F=F
if %D1% == 2 set Gb=Gb
if %D1% == 3 set G=G
if %D1% == 4 set Ab=Ab
if %D1% == 5 set A=A
if %D1% == 6 set Bb=Bb
if %D1% == 7 set B=B
if %D1% == 8 set C=C
if %D1% == 9 set Db=Db
if %D1% == 10 set D=D
if %D1% == 11 set Eb=Eb
if %D1% == 12 set E=E
if %D1% == 13 set F=F
if %D1% == 14 set Gb=Gb
if %D1% == 15 set G=G
if %D1% == 16 set Ab=Ab
if %D1% == 17 set A=A
if %D1% == 18 set Bb=Bb
if %D1% == 19 set B=B
if %D1% == 20 set C=C
if %D1% == 21 set Db=Db
if %D1% == 22 set D=D
if %D1% == 23 set Eb=Eb


if %D2% == 0 set E=E
if %D2% == 1 set F=F
if %D2% == 2 set Gb=Gb
if %D2% == 3 set G=G
if %D2% == 4 set Ab=Ab
if %D2% == 5 set A=A
if %D2% == 6 set Bb=Bb
if %D2% == 7 set B=B
if %D2% == 8 set C=C
if %D2% == 9 set Db=Db
if %D2% == 10 set D=D
if %D2% == 11 set Eb=Eb
if %D2% == 12 set E=E
if %D2% == 13 set F=F
if %D2% == 14 set Gb=Gb
if %D2% == 15 set G=G
if %D2% == 16 set Ab=Ab
if %D2% == 17 set A=A
if %D2% == 18 set Bb=Bb
if %D2% == 19 set B=B
if %D2% == 20 set C=C
if %D2% == 21 set Db=Db
if %D2% == 22 set D=D
if %D2% == 23 set Eb=Eb

if %D3% == 0 set E=E
if %D3% == 1 set F=F
if %D3% == 2 set Gb=Gb
if %D3% == 3 set G=G
if %D3% == 4 set Ab=Ab
if %D3% == 5 set A=A
if %D3% == 6 set Bb=Bb
if %D3% == 7 set B=B
if %D3% == 8 set C=C
if %D3% == 9 set Db=Db
if %D3% == 10 set D=D
if %D3% == 11 set Eb=Eb
if %D3% == 12 set E=E
if %D3% == 13 set F=F
if %D3% == 14 set Gb=Gb
if %D3% == 15 set G=G
if %D3% == 16 set Ab=Ab
if %D3% == 17 set A=A
if %D3% == 18 set Bb=Bb
if %D3% == 19 set B=B
if %D3% == 20 set C=C
if %D3% == 21 set Db=Db
if %D3% == 22 set D=D
if %D3% == 23 set Eb=Eb

if %D4% == 0 set E=E
if %D4% == 1 set F=F
if %D4% == 2 set Gb=Gb
if %D4% == 3 set G=G
if %D4% == 4 set Ab=Ab
if %D4% == 5 set A=A
if %D4% == 6 set Bb=Bb
if %D4% == 7 set B=B
if %D4% == 8 set C=C
if %D4% == 9 set Db=Db
if %D4% == 10 set D=D
if %D4% == 11 set Eb=Eb
if %D4% == 12 set E=E
if %D4% == 13 set F=F
if %D4% == 14 set Gb=Gb
if %D4% == 15 set G=G
if %D4% == 16 set Ab=Ab
if %D4% == 17 set A=A
if %D4% == 18 set Bb=Bb
if %D4% == 19 set B=B
if %D4% == 20 set C=C
if %D4% == 21 set Db=Db
if %D4% == 22 set D=D
if %D4% == 23 set Eb=Eb

if %D5% == 0 set E=E
if %D5% == 1 set F=F
if %D5% == 2 set Gb=Gb
if %D5% == 3 set G=G
if %D5% == 4 set Ab=Ab
if %D5% == 5 set A=A
if %D5% == 6 set Bb=Bb
if %D5% == 7 set B=B
if %D5% == 8 set C=C
if %D5% == 9 set Db=Db
if %D5% == 10 set D=D
if %D5% == 11 set Eb=Eb
if %D5% == 12 set E=E
if %D5% == 13 set F=F
if %D5% == 14 set Gb=Gb
if %D5% == 15 set G=G
if %D5% == 16 set Ab=Ab
if %D5% == 17 set A=A
if %D5% == 18 set Bb=Bb
if %D5% == 19 set B=B
if %D5% == 20 set C=C
if %D5% == 21 set Db=Db
if %D5% == 22 set D=D
if %D5% == 23 set Eb=Eb

if %D6% == 0 set E=E
if %D6% == 1 set F=F
if %D6% == 2 set Gb=Gb
if %D6% == 3 set G=G
if %D6% == 4 set Ab=Ab
if %D6% == 5 set A=A
if %D6% == 6 set Bb=Bb
if %D6% == 7 set B=B
if %D6% == 8 set C=C
if %D6% == 9 set Db=Db
if %D6% == 10 set D=D
if %D6% == 11 set Eb=Eb
if %D6% == 12 set E=E
if %D6% == 13 set F=F
if %D6% == 14 set Gb=Gb
if %D6% == 15 set G=G
if %D6% == 16 set Ab=Ab
if %D6% == 17 set A=A
if %D6% == 18 set Bb=Bb
if %D6% == 19 set B=B
if %D6% == 20 set C=C
if %D6% == 21 set Db=Db
if %D6% == 22 set D=D
if %D6% == 23 set Eb=Eb

if %D7% == 0 set E=E
if %D7% == 1 set F=f
if %D7% == 2 set Gb=Gb
if %D7% == 3 set G=G
if %D7% == 4 set Ab=Ab
if %D7% == 5 set A=A
if %D7% == 6 set Bb=Bb
if %D7% == 7 set B=B
if %D7% == 8 set C=C
if %D7% == 9 set Db=Db
if %D7% == 10 set D=D
if %D7% == 11 set Eb=Eb
if %D7% == 12 set E=E
if %D7% == 13 set F=F
if %D7% == 14 set Gb=Gb
if %D7% == 15 set G=G
if %D7% == 16 set Ab=Ab
if %D7% == 17 set A=A
if %D7% == 18 set Bb=Bb
if %D7% == 19 set B=B
if %D7% == 20 set C=C
if %D7% == 21 set Db=Db
if %D7% == 22 set D=D
if %D7% == 23 set Eb=Eb
goto Display







:display
if %E% == E set EO=E
if %B% == B set BO=B
if %G% == G set GO=G
if %D% == D set DO=D
if %A% == A set AO=A
cls
echo  %About%
echo.
echo  %EO% I-%F%-- -%Gb%- -%G%-- -%Ab%- -%A%-- -%Bb%- -%B%-- -%C%-- -%Db%- -%D%-- -%Eb%- -%E%-- I
echo  %BO% I-%C%-- -%Db%- -%D%-- -%Eb%- -%E%-- -%F%-- -%Gb%- -%G%-- -%Ab%- -%A%-- -%Bb%- -%B%-- I
echo  %GO% I-%Ab%- -%A%-- -%Bb%- -%B%-- -%C%-- -%Db%- -%D%-- -%Eb%- -%E%-- -%F%-- -%Gb%- -%G%-- I
echo  %DO% I-%Eb%- -%E%-- -%F%-- -%Gb%- -%G%-- -%Ab%- -%A%-- -%Bb%- -%B%-- -%C%-- -%Db%- -%D%-- I
echo  %AO% I-%Bb%- -%B%-- -%C%-- -%Db%- -%D%-- -%Eb%- -%E%-- -%F%-- -%Gb%- -%G%-- -%Ab%- -%A%-- I
echo  %EO% I-%F%-- -%Gb%- -%G%-- -%Ab%- -%A%-- -%Bb%- -%B%-- -%C%-- -%Db%- -%D%-- -%Eb%- -%E%-- I
echo      1    2    3    4    5    6    7    8    9   10    11   12
Pause
goto StartUp

penpen
Expert
Posts: 2009
Joined: 23 Jun 2013 06:15
Location: Germany

Re: Collosal script with hidden problem

#2 Post by penpen » 09 Aug 2013 16:24

Without having tested the code, i assume your error is caused by a false use of goto,
as you are defining a label named ":goto" instead of using the goto command:

Code: Select all

:goto Scaleset
or as you are goto an unexisting label:

Code: Select all

goto Display

The right use goto is as follows:

Code: Select all

goto :Scaleset
goto :Display

penpen

PS: I recommend you to use loops, that reduces your code and makes it easier to read;
for example:

Code: Select all

:Open
for %%a in (EO BO GO DO AO) do set "%%a=-"

:FretBoard
for %%a in (A B C D E F G) do set "%%a=-"
for %%a in (Bb Db Eb Gb Ab) do set "%%a=--"

foxidrive
Expert
Posts: 6031
Joined: 10 Feb 2012 02:20

Re: Collosal script with hidden problem

#3 Post by foxidrive » 09 Aug 2013 18:20

The Guitar code looks interesting - please post the final version here too.

Post Reply