Seuraava ohjelmanpätkä arpoo kappaleen, soittaa sen piipperillä ja tulostaa näytölle, miltä se näyttää Nokian kännykän Soittoäänen sävellys -ruudussa.
' Copyright Jaakko Kulhia
CLS
INPUT "Kuinka pitkän soittoäänen haluat?"; real%
CLS
ala$ = ""
FOR re% = 1 TO real%
RANDOMIZE TIMER
i% = RND * 8
RANDOMIZE TIMER
pituus% = INT(RND * 6) + 1
RANDOMIZE TIMER
yla% = RND * 2
DO
DO
RANDOMIZE TIMER
o% = RND * 6
IF o% = 0 THEN
o% = 3
END IF
LOOP UNTIL o% < 4
LOOP WHILE o% < 2
GOTO kovin
kova:
i$ = is$
pituus$ = STR$(pituus%)
oktaavi$ = STR$(o%)
ok$ = STR$(o% - 1)
IF i% = 0 OR i% = 8 THEN
i$ = "n0"
ok$ = ""
o$ = ""
is$ = "-"
yla$ = ""
ali$ = ""
END IF
re$ = re$ + "l" + pituus$ + "o" + oktaavi$ + i$ + yla$ + " "
ala$ = ala$ + pituus$ + is$ + ali$ + ok$ + " | "
LOCATE 1, 1: PRINT "loading...."; re% / real% * 100; "%"
NEXT
CLS
PRINT ala$
PLAY re$
END
kovin:
IF i% = 1 THEN
is$ = "a"
ELSEIF i% = 2 THEN
is$ = "b"
ELSEIF i% = 3 THEN
is$ = "c"
ELSEIF i% = 4 THEN
is$ = "d"
ELSEIF i% = 5 THEN
is$ = "e"
ELSEIF i% = 6 THEN
is$ = "f"
ELSEIF i% = 7 THEN
is$ = "g"
END IF
IF pituus% = 3 THEN
pituus% = 4
ELSEIF pituus% = 4 THEN
pituus% = 8
ELSEIF pituus% = 5 THEN
pituus% = 16
ELSEIF pituus% = 6 THEN
pituus% = 32
ELSE
pituus% = 8
END IF
IF yla% = 2 THEN
yla$ = "+"
ali$ = "#"
END IF
IF is$ = "e" OR is$ = "b" THEN
yla$ = ""
END IF
GOTO kova
ENDkiitos! tämä tulee tarpeeseen!
Hyvin toimii, mutta ohjelman luomia ääniä en kyllä kännykkään laittaisi.
miksi?
RND on aina RND
hyvin sanottu!
Missä? Minkä soittoääni arpojan?
Jaakon tekemän koodivinkin. Löytyy QBasic-alueelta.
Lähettäkää nyt niitä kommenteja siitä!!! ottakaa Antista mallia!!!
ompas hijano
mielestäni laatua voisi hieman kohentaa.
Kätevä systeemi.
Hö johan on epeli!
Ihme laite ;)
Olen itse tehnyt joskus samantapaisia (mutta ne ei näyttänyt soitettua kappaletta soittoäänenä)
Ei sitä randomize timeriä tarvi joka randomin välissä tehdä? Mulla on toiminu ihan yhdellä randomize timerillä
nice
Kätevä! Juuri sopiva käyttöjärjestelmääni!
Aihe on jo aika vanha, joten et voi enää vastata siihen.