challenge Tiny MML

文字列の入力をとり、音を鳴らすプログラムを作ってください。

入力はcがド、dがレ、eがミ、fがファ、gがソ、aがラ、bがシ、rが休符とします。この8文字以外の文字は入力に含まれていないと仮定して構いません。おのおのの音符・休符は八分音符・八分休符とします。

オクターブや音の長さの変更、同時発音などの機能は不要です。

サンプル入力(カエルの歌)

cdefedcrefgagfercrcrcrcrcdefedcr

Posted feedbacks - Groovy

quicktimeのapi使ってますが、ただしく使えているか自信ないです...
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import quicktime.QTSession
import quicktime.std.music.ToneDescription
import quicktime.std.music.NoteChannel
import quicktime.std.music.NoteRequest

// kaeru_song_player
// cがド、dがレ、eがミ、fがファ、gがソ、aがラ、bがシ、rが休符
def tbl = ['c':60, 'd':62, 'e':64, 'f':65, 'g':67, 'a':69, 'b':71, r:-1]
def song = "cdefedcrefgagfercrcrcrcrcdefedcr"

QTSession.open()
NoteChannel noteChannel = new NoteChannel(new NoteRequest(new ToneDescription(1)))

for(c in song){
    noteChannel.playNoteRaw(tbl[c] as int, 60)
    sleep(300)
}

QTSession.close()

Index

Feed

Other

Link

Pathtraq

loading...