Τελική μορφή! Χρόνια Πολλά και καλή διασκέδαση!
(διόρθωσα το C4# σε C#4 πρώτα η νότα και μετά ο αριθμός οκτάβας)
Μπορεί κάποιος να ανεβάσει την οκτάβα, αλλά πρέπει να αλλάξει τα νούμερα από Α#3 ..D5...Συνολικά υπάρχουν 7 οκτάβες από 1 έως 7. Εδώ το πιανάκι είναι μπάσο, η 4η είναι η μεσαία οκτάβα. Παρακάτω έχω βάλει και το κανονικό πιανάκι!
Δεν είναι δύσκολο να γίνει με δυο κλαβιέ! Ήδη εδώ έχουμε δυο σειρές τα μαύρα και τα άσπρα πλήκτρα!
Πίνακας Νοτα1$(10,3), Νοτα2$(10,3)
διαμεσου ΓέμισεΠίνακα()
Φόρμα 60,30
Πένα 14
Οθονη 5
Διπλά
Αναφορά 2, "Πιανάκι 004"
Κανονικά
Αναφορά 2,{Οδηγίες
1-Έξοδος 3-Ξυλόφωνο 4-Πιάνο 5-Σαξόφωνο 8-Πλήκτρα/Νότες 9-Ρυθμός Ναι 0-Ρυθμός Όχι
Διάστημα - Δυναμώνει τις νότες
-- Γιώργος Καρράς --
}
Σχέδιο.Νημάτων Διαδοχικό
Παίξε 0 \\ καθαρίζει το σύστημα
Γενική πλ$=" ", τέμπο=300, οργ=5, φ=0, εντ$="V90", φων(18), χρη(17) ' 0 ..17,
ν=1
Για ι=1 έως 16 { χρη(ι)=Αληθές }
χρη(10)= Ψευδές \\ για την drum machine
\\ υπολογισμός θέσης του κλαβιέ!
μμ=2*(χ.σημεια Δια 14)
μμ2= μμ δια 2
κκ=γραμμή/ύψος*υ.σημεια
κκ1=υ.σημεια/ύψος*8
γραμ=υ.σημεια/ύψος*1.5
Οθόνη , Γραμμή+9
Τμήμα Πλήκτρο {
Διάβασε α$, πατ, επιλ
αν πατ τοτε {
Αν Θέση(πλ$,α$+"-")>0 τότε έξοδος
διαμέσου Επομ()
φων(επιλ)=φ \\ δεν χρειάζεται <=
Τύπωσε α$, φ
Φωνή φ, τεμπο, α$+εντ$ : πλ$<=πλ$+α$+"-": Παίξε φ, οργ
} αλλιως {
πλ$<=αλλαγή$(α$+"-","", πλ$)
Αν φων(επιλ)>0 τότε {
Παίξε φων(επιλ), 0 ' προσθήκη στην αναθ. 131
χρη(φων(επιλ))~
φων(επιλ)=0
}
}
Ρουτίνα Επομ()
τοπικη ι
για ι=1 έως 16 {
αν χρη(ι) τότε έξοδος
}
αν ι<17 τότε { φ<=ι : χρη(ι)~ } αλλιώς φ<=1: χρη(1)=αληθές : Τυπωσε "!!!!!!!!"
Τέλος Ρουτίνας
}
\\ κανάλι 10 είναι το drum machine
Νήμα { Φωνή 10,400,"CV90CC ab Cd eCC" : Παίξε 10,1 } ως Λ κάθε 60
Νήμα {
πλήκτρο "A#2", πατημένο(κωδ("A")), 1
πλήκτρο "B2", πατημένο(κωδ("Z")), 2
πλήκτρο "C3", πατημένο(κωδ("X")), 3
πλήκτρο "C#3", πατημένο(κωδ("D")), 4
πλήκτρο "D3", πατημένο(κωδ("C")), 5
πλήκτρο "D#3", πατημένο(κωδ("F")), 6
πλήκτρο "E3", πατημένο(κωδ("V")), 7
πλήκτρο "F3", πατημένο(κωδ("B")), 8
πλήκτρο "F#3", πατημένο(κωδ("H")), 9
πλήκτρο "G3", πατημένο(κωδ("N")), 10
πλήκτρο "G#3", πατημένο(κωδ("J")), 11
πλήκτρο "A3", πατημένο(κωδ("M")), 12
πλήκτρο "A#3", πατημένο(κωδ("K")), 13
\\ https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
πλήκτρο "B3", πατημένο(0xBC), 14 \\ VK_OEM_COMMA
πλήκτρο "C4", πατημένο(0xBE), 15 \\ VK_OEM_PERIOD
πλήκτρο "C#4", πατημένο(0xBA), 16 \\ VK_OEM_1
πλήκτρο "D4", πατημένο(0xBF), 17 \\VK_OEM_2
} ως ΑΛ κάθε 50
Τύπωσε "οκ"
Νηματα
Αναμονή 100 \\ ξεκινάει το Λ μέσα στην αναμονή και μετά αλλάζουμε το χρόνο του!
Νήμα Λ Κάθε 6000
Κύριο.Έργο 100 {
Διαμέσου Εμφ_Κλαβιέ(μμ, κκ, μμ2, κκ1)
αν πατημένο(κωδ("1")) τότε έξοδος
αν πατημένο(κωδ("3")) τότε οργ<=14 : τέμπο<=100 ' ξυλόφωνο
αν πατημένο(κωδ("4")) τότε οργ<=5 : τέμπο<=300 ' Πιάνο
αν πατημένο(κωδ("5")) τότε οργ<=65 : τέμπο<=5000 ' Σαξόφωνο
αν πατημένο(κωδ("8")) τότε ν=1-ν
αν πατημένο(κωδ("9")) τότε Νήμα Λ Ξεκίνα
αν πατημένο(κωδ("0")) τότε Νήμα Λ Κράτα
αν πατημένο(32) τότε { εντ$<="V127" } Αλλιώς εντ$<="V90"
Τύπωσε "--------"
}
Τύπωσε "Τέλος"
Ρουτίνα Εμφ_Κλαβιέ(π0,υ0, π1, υ1)
ανανεωση 5000
Διαμέσου Κλαβιέ(π0, υ0, π1, υ1, 0, &Νοτα1$())
Διαμέσου Κλαβιέ(π0-π1/2,υ0,π1,υ1*2/3, -1, &Νοτα2$())
ανανέωση 50
Τέλος Ρουτίνας
Ρουτινα Κλαβιέ(π0, υ0,π1, υ1, π3, &Ν$())
Ένωσε Ν$() στο Ν()
π3-!
Τοπικές κ=-1, ι
Για ι=π0 εως 9*π1+π0 ανά π1
κ++
Αν Ν$(κ,0)<>"" Τότε {
θέση ι+π3*π1/6, υ0
Αν π3 τότε {
βαψε π1-π3*π1/3-15,υ1-15, 7* (1-(φων(Ν(κ,2))>0))+1, 0,1
} Αλλιώς {
βαψε π1-15,υ1-15,15,7* (1-(φων(Ν(κ,2))=0))+1,1
}
θέση ι+π3*π1/6, υ0
βαψε @ π1-π3*π1/3,υ1,2,1
θέση ι+π3*π1/6, υ0+υ1-γραμ
πένα π3*15 { βαψε @ π1-π3*π1/3,γραμ,5,Ν$(κ,ν)}
}
Επόμενο ι
Τέλος Ρουτίνας
Ρουτίνα ΓέμισεΠίνακα()
Τοπικές ν,π, ν$, κ$, νο
Σωρός Νέος {
Σειρά "A#2", "A", 1, 1, 2
Σειρά "B2", "Z", 2, 1, 1
Σειρά "C3", "X", 3, 2, 1
Σειρά "C#3", "D", 4, 3, 2
Σειρά "D3", "C", 5, 3, 1
Σειρά "D#3", "F", 6, 4, 2
Σειρά "E3", "V", 7, 4, 1
Σειρά "F3", "B", 8, 5, 1
Σειρά "F#3", "H", 9, 6, 2
Σειρά "G3", "N", 10, 6, 1
Σειρά "G#3", "J", 11, 7, 2
Σειρά "A3", "M", 12, 7, 1
Σειρά "A#3", "K", 13, 8, 2
Σειρά "B3", ",", 14, 8, 1
Σειρά "C4", ".", 15, 9, 1
Σειρά "C#4",";", 16 , 10, 2 \\ 10 μικρά - λείπουν μερικά
Σειρά "D4", "/", 17, 10, 1 \\ 10 μεγάλα πλήκτρα
Ενώ όχι κενό {
Διάβασε ν$, κ$, νο, ν, π
Αν π=1 τότε {
νοτα1$(ν-1,0):= ν$, κ$, νο
} Αλλιώς {
νοτα2$(ν-1,0):= ν$, κ$, νο
}
}
}
Τέλος Ρουτίνας
Και με μια οκτάβα πιο ψηλά (στο μέσον δηλαδή, η 4 είναι η μεσαία)
Πίνακας Νοτα1$(10,3), Νοτα2$(10,3)
διαμεσου ΓέμισεΠίνακα()
Φόρμα 60,30
Πένα 14
Οθονη 5
Διπλά
Αναφορά 2, "Πιανάκι 005"
Κανονικά
Αναφορά 2,{Οδηγίες
1-Έξοδος 3-Ξυλόφωνο 4-Πιάνο 5-Σαξόφωνο 8-Πλήκτρα/Νότες 9-Ρυθμός Ναι 0-Ρυθμός Όχι
Διάστημα - Δυναμώνει τις νότες
-- Γιώργος Καρράς --
}
Σχέδιο.Νημάτων Διαδοχικό
Παίξε 0 \\ καθαρίζει το σύστημα
Γενική πλ$=" ", τέμπο=300, οργ=5, φ=0, εντ$="V90", φων(18), χρη(17) ' 0 ..17,
ν=1
Για ι=1 έως 16 { χρη(ι)=Αληθές }
χρη(10)= Ψευδές \\ για την drum machine
\\ υπολογισμός θέσης του κλαβιέ!
μμ=2*(χ.σημεια Δια 14)
μμ2= μμ δια 2
κκ=γραμμή/ύψος*υ.σημεια
κκ1=υ.σημεια/ύψος*8
γραμ=υ.σημεια/ύψος*1.5
Οθόνη , Γραμμή+9
Τμήμα Πλήκτρο {
Διάβασε α$, πατ, επιλ
αν πατ τοτε {
Αν Θέση(πλ$,α$+"-")>0 τότε έξοδος
διαμέσου Επομ()
φων(επιλ)=φ \\ δεν χρειάζεται <=
Τύπωσε α$, φ
Φωνή φ, τεμπο, α$+εντ$ : πλ$<=πλ$+α$+"-": Παίξε φ, οργ
} αλλιως {
πλ$<=αλλαγή$(α$+"-","", πλ$)
Αν φων(επιλ)>0 τότε {
Παίξε φων(επιλ), 0 ' προσθήκη στην αναθ. 131
χρη(φων(επιλ))~
φων(επιλ)=0
}
}
Ρουτίνα Επομ()
τοπικη ι
για ι=1 έως 16 {
αν χρη(ι) τότε έξοδος
}
αν ι<17 τότε { φ<=ι : χρη(ι)~ } αλλιώς φ<=1: χρη(1)=αληθές : Τυπωσε "!!!!!!!!"
Τέλος Ρουτίνας
}
\\ κανάλι 10 είναι το drum machine
Νήμα { Φωνή 10,400,"CV90CC ab Cd eCC" : Παίξε 10,1 } ως Λ κάθε 60
Νήμα {
πλήκτρο "A#3", πατημένο(κωδ("A")), 1
πλήκτρο "B3", πατημένο(κωδ("Z")), 2
πλήκτρο "C4", πατημένο(κωδ("X")), 3
πλήκτρο "C#4", πατημένο(κωδ("D")), 4
πλήκτρο "D4", πατημένο(κωδ("C")), 5
πλήκτρο "D#4", πατημένο(κωδ("F")), 6
πλήκτρο "E4", πατημένο(κωδ("V")), 7
πλήκτρο "F4", πατημένο(κωδ("B")), 8
πλήκτρο "F#4", πατημένο(κωδ("H")), 9
πλήκτρο "G4", πατημένο(κωδ("N")), 10
πλήκτρο "G#4", πατημένο(κωδ("J")), 11
πλήκτρο "A4", πατημένο(κωδ("M")), 12
πλήκτρο "A#4", πατημένο(κωδ("K")), 13
\\ https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
πλήκτρο "B4", πατημένο(0xBC), 14 \\ VK_OEM_COMMA
πλήκτρο "C5", πατημένο(0xBE), 15 \\ VK_OEM_PERIOD
πλήκτρο "C#5", πατημένο(0xBA), 16 \\ VK_OEM_1
πλήκτρο "D5", πατημένο(0xBF), 17 \\VK_OEM_2
} ως ΑΛ κάθε 50
Τύπωσε "οκ"
Νηματα
Αναμονή 100 \\ ξεκινάει το Λ μέσα στην αναμονή και μετά αλλάζουμε το χρόνο του!
Νήμα Λ Κάθε 6000
Κύριο.Έργο 100 {
Διαμέσου Εμφ_Κλαβιέ(μμ, κκ, μμ2, κκ1)
αν πατημένο(κωδ("1")) τότε έξοδος
αν πατημένο(κωδ("3")) τότε οργ<=14 : τέμπο<=100 ' ξυλόφωνο
αν πατημένο(κωδ("4")) τότε οργ<=5 : τέμπο<=300 ' Πιάνο
αν πατημένο(κωδ("5")) τότε οργ<=65 : τέμπο<=5000 ' Σαξόφωνο
αν πατημένο(κωδ("8")) τότε ν=1-ν
αν πατημένο(κωδ("9")) τότε Νήμα Λ Ξεκίνα
αν πατημένο(κωδ("0")) τότε Νήμα Λ Κράτα
αν πατημένο(32) τότε { εντ$<="V127" } Αλλιώς εντ$<="V90"
Τύπωσε "--------"
}
Τύπωσε "Τέλος"
Ρουτίνα Εμφ_Κλαβιέ(π0,υ0, π1, υ1)
ανανεωση 5000
Διαμέσου Κλαβιέ(π0, υ0, π1, υ1, 0, &Νοτα1$())
Διαμέσου Κλαβιέ(π0-π1/2,υ0,π1,υ1*2/3, -1, &Νοτα2$())
ανανέωση 50
Τέλος Ρουτίνας
Ρουτινα Κλαβιέ(π0, υ0,π1, υ1, π3, &Ν$())
Ένωσε Ν$() στο Ν()
π3-!
Τοπικές κ=-1, ι
Για ι=π0 εως 9*π1+π0 ανά π1
κ++
Αν Ν$(κ,0)<>"" Τότε {
θέση ι+π3*π1/6, υ0
Αν π3 τότε {
βαψε π1-π3*π1/3-15,υ1-15, 7* (1-(φων(Ν(κ,2))>0))+1, 0,1
} Αλλιώς {
βαψε π1-15,υ1-15,15,7* (1-(φων(Ν(κ,2))=0))+1,1
}
θέση ι+π3*π1/6, υ0
βαψε @ π1-π3*π1/3,υ1,2,1
θέση ι+π3*π1/6, υ0+υ1-γραμ
πένα π3*15 { βαψε @ π1-π3*π1/3,γραμ,5,Ν$(κ,ν)}
}
Επόμενο ι
Τέλος Ρουτίνας
Ρουτίνα ΓέμισεΠίνακα()
Τοπικές ν,π, ν$, κ$, νο
Σωρός Νέος {
Σειρά "A#3", "A", 1, 1, 2
Σειρά "B3", "Z", 2, 1, 1
Σειρά "C4", "X", 3, 2, 1
Σειρά "C#4", "D", 4, 3, 2
Σειρά "D4", "C", 5, 3, 1
Σειρά "D#4", "F", 6, 4, 2
Σειρά "E4", "V", 7, 4, 1
Σειρά "F4", "B", 8, 5, 1
Σειρά "F#4", "H", 9, 6, 2
Σειρά "G4", "N", 10, 6, 1
Σειρά "G#4", "J", 11, 7, 2
Σειρά "A4", "M", 12, 7, 1
Σειρά "A#4", "K", 13, 8, 2
Σειρά "B4", ",", 14, 8, 1
Σειρά "C5", ".", 15, 9, 1
Σειρά "C#5",";", 16 , 10, 2 \\ 10 μικρά - λείπουν μερικά
Σειρά "D5", "/", 17, 10, 1 \\ 10 μεγάλα πλήκτρα
Ενώ όχι κενό {
Διάβασε ν$, κ$, νο, ν, π
Αν π=1 τότε {
νοτα1$(ν-1,0):= ν$, κ$, νο
} Αλλιώς {
νοτα2$(ν-1,0):= ν$, κ$, νο
}
}
}
Τέλος Ρουτίνας
Υπάρχουν πληκτρολόγια που δέχονται έξι πλήκτρα μαζί! (έχω ένα Logitech K310 που παίζει 6 νότες μαζί). Σε φορητούς σπάνια παίζουν πάνω από δύο πλήκτρα. Με χρήση δεύτερου πληκτρολόγιου αυξάνουμε τα πλήκτρα που μπορούν να παίξουν ταυτόχρονα.
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.