
-----------------------------------
exploitmonkey
Wed Dec 29, 2004 8:00 pm

Cool Keyboard
-----------------------------------
This is the code for a simple keyboard I made.... an criticism would be good.... graphics soon to come

%>>>>CODE

loop
    var chars : array char of boolean
    Input.KeyDown (chars)
    if chars ('q') then
        sound (100, 100)

    elsif chars ('w') then
        sound (200, 100)
        
        elsif chars ('e') then
        sound (300, 100)
        
        elsif chars ('r') then
        sound (400, 100)
        
        elsif chars ('t') then
        sound (500, 100)
        
        elsif chars ('y') then
        sound (600, 100)
        
        elsif chars ('u') then
        sound (700, 100)
        
        elsif chars ('i') then
        sound (800, 100)
        
        elsif chars ('o') then
        sound (900, 100)
        
        elsif chars ('p') then
        sound (1000, 100)
        
        elsif chars ('a') then
        sound (1100, 100)
        
        elsif chars ('s') then
        sound (1200, 100)
        
        elsif chars ('d') then
        sound (1300, 100)
        
        elsif chars ('f') then
        sound (1400, 100)
        
        elsif chars ('g') then
        sound (1500, 100)
        
        elsif chars ('h') then
        sound (1600, 100)
        
        elsif chars ('j') then
        sound (1700, 100)
        
        elsif chars ('k') then
        sound (1800, 100)
        
        elsif chars ('l') then
        sound (1900, 100)
        
        elsif chars ('z') then
        sound (2000, 100)
        
        elsif chars ('x') then
        sound (2100, 100)
        
        elsif chars ('c') then
        sound (2200, 100)
        
        elsif chars ('v') then
        sound (2300, 100)
        
        elsif chars ('b') then
        sound (2400, 100)
        
        elsif chars ('n') then
        sound (2500, 100)
        
        elsif chars ('m') then
        sound (2600, 100)
        
       
          end if

end loop


%>>>>>END CODE

-----------------------------------
Delos
Wed Dec 29, 2004 9:55 pm


-----------------------------------
Ok...

1)
Use [code] tags.  Or feel the burn from the flames hurled at you by many people.

2)
You're idea is interesting...a little trite, but interesting.
Try this though:
You can either stick w/ your current Input.KeyDown() method of input, or use a getch.  Either way.
Pass your character input to a variable.  Take the ord() of it.  From there, you'll have a discernable number (integer).  Use that and some simple arithmetic to compute the resultant sound() values.
This will shorten your code considerably.

-----------------------------------
cool dude
Thu Dec 30, 2004 11:23 am


-----------------------------------
instead of using all the keys on the keyboard u could have done just one interval of the piano/keyboard and for example to play the note c u will press c on the keyboard. this will make it just like the piano and u could actually play a song. but this is pretty good too.

-----------------------------------
Andy
Thu Dec 30, 2004 11:35 am


-----------------------------------
wow.. two people commented on this program, and none of them noted the biggest error. i have no idea why turing does not recognize this error.. notice how he declared the variable inside the loop. in any high level programming language, this will not be acceptable. you cannot declare the variable with the same name over and over again.

-----------------------------------
Tony
Thu Dec 30, 2004 1:33 pm


-----------------------------------
Pass your character input to a variable.  Take the ord() of it.  From there, you'll have a discernable number (integer).  Use that and some simple arithmetic to compute the resultant sound() values.
although a good idea, you will have difficulty with keyboard layout that's not in alphabetical order. on a QWERT keyboard, the ord() values are respectivly

81 87 69 82 84

if there's a function to match them to 1,2,3,4,5 type of of an ordered list... let me know :wink:

-----------------------------------
cool dude
Thu Dec 30, 2004 2:14 pm


-----------------------------------
wow.. two people commented on this program, and none of them noted the biggest error. i have no idea why turing does not recognize this error.. notice how he declared the variable inside the loop. in any high level programming language, this will not be acceptable. you cannot declare the variable with the same name over and over again.

i did notice that but i ignored that because it worked both ways. but it is true u should always have the variables declared outside the loop.

-----------------------------------
we64
Thu Dec 30, 2004 6:43 pm


-----------------------------------
Yeah, true about the variables. But I guess he is just doing it because he can.. why not take the advantage of turing anyways... lol..

-----------------------------------
Delos
Thu Dec 30, 2004 7:08 pm


-----------------------------------
Pass your character input to a variable.  Take the ord() of it.  From there, you'll have a discernable number (integer).  Use that and some simple arithmetic to compute the resultant sound() values.
although a good idea, you will have difficulty with keyboard layout that's not in alphabetical order. on a QWERT keyboard, the ord() values are respectivly

81 87 69 82 84

if there's a function to match them to 1,2,3,4,5 type of of an ordered list... let me know :wink:

Did I mention that I just glanced at the code and didn't actually consider what it was used for? :lol:

-----------------------------------
Andy
Fri Dec 31, 2004 11:56 am


-----------------------------------
but its less efficient.. you're basicly formating that memory allocation when you can just replace what ever is inside it

-----------------------------------
BPhelmet
Fri Dec 31, 2004 2:51 pm


-----------------------------------
pretty interesting, sounds freaky
