
-----------------------------------
Il Lupo
Mon Jun 13, 2011 5:04 pm

Turing Piano
-----------------------------------
Task:
I am trying to make a Turing program that will allow me to play a simulator piano.

Problem:
The problem that I am experiencing with my program is that whenever I play
a note, all of the other notes on the keyboard start to sound similar. Also, 
if I were to continuously tap on a key, the sound of that key will sound either 
lower or higher - depending on what note it plays. 

------------------------------------------------------------------------------------------------
Program:
(The program is incomplete.)

%Program: Piano

%Setscreen:
setscreen ("graphics:700,550")

%Variable(s) (Declared & Assigned):
%Font Vaiable(s):
var chars : array char of boolean

var PrestigeEliteStd : int

var PrestigeEliteStd_2 : int

var PrestigeEliteStd_3 : int

var BatangChe : int

var BatangChe_2 : int

var BatangChe_3 : int

var GungsuhChe : int

var MingLiU : int

var MingLiU_2 : int

PrestigeEliteStd := Font.New ("Prestige Elite Std:45:bold")

PrestigeEliteStd_2 := Font.New ("Prestige Elite Std:40:bold")

PrestigeEliteStd_3 := Font.New ("Prestige Elite Std:25:bold")

BatangChe := Font.New ("@BatangChe:35:bold")

BatangChe_2 := Font.New ("@BatangChe:35:bold")

BatangChe_3 := Font.New ("@BatangChe:27:bold")

GungsuhChe := Font.New ("@GungsuhChe:40")

MingLiU := Font.New ("MingLiU:20")

MingLiU_2 := Font.New ("MingLiU:35")

%Keyboard:
Draw.Box (1, 1, 697, 275, black)

Draw.Box (1, 55, 697, 55, black)

Draw.Box (1, 110, 697, 110, black)

Draw.Box (1, 165, 697, 165, black)

Draw.Box (1, 220, 697, 220, black)

%Keyboard (1st Row):
Font.Draw ("Turing Piano", 185, 10, GungsuhChe, black)

Draw.Line (126, 1, 126, 55, black)

Draw.Line (567, 1, 567, 55, black)

%Keyboard (Fill 1st Row):
Draw.Fill (10, 10, grey, black)

Draw.Fill (666, 10, grey, black)

%Keyboard (2nd Row):
Font.Draw ("C", 20, 67, BatangChe, black)

Font.Draw ("D", 83, 67, BatangChe, black)

Font.Draw ("E", 145, 67, BatangChe, black)

Font.Draw ("F", 210, 67, BatangChe, black)

Font.Draw ("G", 270, 67, BatangChe, black)

Font.Draw ("A", 337, 67, BatangChe, black)

Font.Draw ("B", 400, 67, BatangChe, black)

Font.Draw ("C1", 449, 67, BatangChe, black)

Font.Draw ("D1", 512, 67, BatangChe, black)

Font.Draw ("E1", 575, 67, BatangChe, black)

Font.Draw ("F1", 642, 67, BatangChe, black)

Draw.Line (63, 110, 63, 165, black)

Draw.Line (126, 110, 126, 165, black)

Draw.Line (189, 110, 189, 165, black)

Draw.Line (252, 110, 252, 165, black)

Draw.Line (315, 110, 315, 165, black)

Draw.Line (378, 110, 378, 165, black)

Draw.Line (441, 110, 441, 165, black)

Draw.Line (504, 110, 504, 165, black)

Draw.Line (567, 110, 567, 165, black)

Draw.Line (630, 110, 630, 165, black)

%Keyboard (3rd Row):
Font.Draw ("A", 15, 120, PrestigeEliteStd_2, black)

Font.Draw ("S", 79, 120, PrestigeEliteStd_2, black)

Font.Draw ("D", 142, 120, PrestigeEliteStd_2, black)

Font.Draw ("F", 205, 120, PrestigeEliteStd_2, black)

Font.Draw ("G", 267, 120, PrestigeEliteStd_2, black)

Font.Draw ("H", 332, 120, PrestigeEliteStd_2, black)

Font.Draw ("J", 392, 120, PrestigeEliteStd_2, black)

Font.Draw ("K", 455, 120, PrestigeEliteStd_2, black)

Font.Draw ("L", 520, 120, PrestigeEliteStd_2, black)

Font.Draw (":", 587, 144, PrestigeEliteStd_3, black)

Font.Draw (";", 586, 120, PrestigeEliteStd_3, black)

Font.Draw ("'", 648, 120, PrestigeEliteStd_2, black)

Draw.Line (63, 55, 63, 110, black)

Draw.Line (126, 55, 126, 110, black)

Draw.Line (189, 55, 189, 110, black)

Draw.Line (252, 55, 252, 110, black)

Draw.Line (315, 55, 315, 110, black)

Draw.Line (378, 55, 378, 110, black)

Draw.Line (441, 55, 441, 110, black)

Draw.Line (504, 55, 504, 110, black)

Draw.Line (567, 55, 567, 110, black)

Draw.Line (630, 55, 630, 110, black)

%Keyboard (4th Row):
Font.Draw ("Q", 60, 175, PrestigeEliteStd, black)

Font.Draw ("W", 137, 175, PrestigeEliteStd, black)

Font.Draw ("E", 215, 175, PrestigeEliteStd, black)

Font.Draw ("T", 290, 175, PrestigeEliteStd, black)

Font.Draw ("Y", 368, 175, PrestigeEliteStd, black)

Font.Draw ("U", 444, 175, PrestigeEliteStd, black)

Font.Draw ("O", 522, 175, PrestigeEliteStd, black)

Font.Draw ("P", 600, 175, PrestigeEliteStd, black)

Draw.Line (39, 165, 39, 220, black)

Draw.Line (116, 165, 116, 220, black)

Draw.Line (193, 165, 193, 220, black)

Draw.Line (270, 165, 270, 220, black)

Draw.Line (347, 165, 347, 220, black)

Draw.Line (424, 165, 424, 220, black)

Draw.Line (501, 165, 501, 220, black)

Draw.Line (578, 165, 578, 220, black)

Draw.Line (655, 165, 655, 220, black)

%Keyboard (Fill 4th Row):
Draw.Fill (10, 168, grey, black)

Draw.Fill (695, 168, grey, black)

%Keyboard (5th Row):
Font.Draw ("Quit", 43, 235, BatangChe_3, black)

Font.Draw ("C#", 133, 230, BatangChe_2, black)

Font.Draw ("D#", 210, 230, BatangChe_2, black)

Font.Draw ("F#", 283, 230, BatangChe_2, black)

Font.Draw ("G#", 362, 230, BatangChe_2, black)

Font.Draw ("Bb", 439, 230, BatangChe_2, black)

Font.Draw ("C#1", 503, 230, BatangChe_2, black)

Font.Draw ("D#1", 580, 230, BatangChe_2, black)

Draw.Line (39, 220, 39, 275, black)

Draw.Line (116, 220, 116, 275, black)

Draw.Line (193, 220, 193, 275, black)

Draw.Line (270, 220, 270, 275, black)

Draw.Line (347, 220, 347, 275, black)

Draw.Line (424, 220, 424, 275, black)

Draw.Line (501, 220, 501, 275, black)

Draw.Line (578, 220, 578, 275, black)

Draw.Line (655, 220, 655, 275, black)

%Keyboard (Fill 5th Row):
Draw.Fill (10, 225, grey, black)

Draw.Fill (666, 225, grey, black)

%Piano (White Keys):
Draw.Box (1, 277, 697, 547, black)

Draw.Line (63, 277, 63, 420, black)

Draw.Line (126, 277, 126, 420, black)

Draw.Line (189, 277, 189, 547, black)

Draw.Line (252, 277, 252, 420, black)

Draw.Line (315, 277, 315, 420, black)

Draw.Line (378, 277, 378, 420, black)

Draw.Line (441, 277, 441, 547, black)

Draw.Line (504, 277, 504, 420, black)

Draw.Line (567, 277, 567, 420, black)

Draw.Line (630, 277, 630, 547, black)

Font.Draw ("C", 18, 289, MingLiU_2, black)

Font.Draw ("D", 82, 289, MingLiU_2, black)

Font.Draw ("E", 145, 289, MingLiU_2, black)

Font.Draw ("F", 210, 289, MingLiU_2, black)

Font.Draw ("G", 273, 289, MingLiU_2, black)

Font.Draw ("A", 335, 289, MingLiU_2, black)

Font.Draw ("B", 398, 289, MingLiU_2, black)

Font.Draw ("C1", 451, 289, MingLiU_2, black)

Font.Draw ("D1", 515, 289, MingLiU_2, black)

Font.Draw ("E1", 579, 289, MingLiU_2, black)

Font.Draw ("F1", 645, 289, MingLiU_2, black)

%Piano (Black Keys):
Draw.Box (40, 420, 87, 547, black)

Draw.Box (105, 420, 150, 547, black)

Draw.Box (227, 420, 275, 547, black)

Draw.Box (290, 420, 340, 547, black)

Draw.Box (355, 420, 400, 547, black)

Draw.Box (480, 420, 525, 547, black)

Draw.Box (547, 420, 592, 547, black)

%Piano (Fill Black Keys):
Draw.Fill (45, 430, black, black)

Draw.Fill (110, 430, black, black)

Draw.Fill (232, 430, black, black)

Draw.Fill (295, 430, black, black)

Draw.Fill (360, 430, black, black)

Draw.Fill (485, 430, black, black)

Draw.Fill (552, 430, black, black)

Font.Draw ("C#", 50, 430, MingLiU, white)

Font.Draw ("D#", 115, 430, MingLiU, white)

Font.Draw ("F#", 237, 430, MingLiU, white)

Font.Draw ("G#", 303, 430, MingLiU, white)

Font.Draw ("Bb", 363, 430, MingLiU, white)

Font.Draw ("C#1", 485, 430, MingLiU, white)

Font.Draw ("D#1", 552, 430, MingLiU, white)

%Play Piano:
loop

    Input.KeyDown (chars)

    if chars ('a') then

        Music.Play (">c")

    elsif chars ('s') then

        Music.Play (">d")

    elsif chars ('d') then

        Music.Play (">e")

    elsif chars ('f') then

        Music.Play (">f")

    elsif chars ('g') then

        Music.Play (">g")

    elsif chars ('h') then

        Music.Play (">a")

    elsif chars ('j') then

        Music.Play (">b")

    elsif chars ('k') then

        Music.Play (" raises to the next octave and < lowers. 


-----------------------------------
Il Lupo
Fri Jun 17, 2011 5:58 pm

Re: Turing Piano
-----------------------------------
Oh, okay. Now I understand how to do this. Also, thanks for the link that showed me the instructions to Music.Play,
for that really helped me. 
PS. Sorry for the late reply, I wasn't online for a while.
