フィボナッチミュージックというのをみかけて、groovyで実現したかったので、再びチャレンジ
2007/10/21
groovy
java
quicktime
やりかけてたことにチャレンジ。
フィボナッチミュージックというのをみかけて、groovyで実現したかったので、再びチャレンジ
元ネタ
http://arton.no-ip.info/diary/20070807.html#p01
ほとんど、そのまま、groovy + quicktimeにしてみました。
勉強になったことはループのuptoという書き方。
あと、rubyのputs。
import quicktime.QTSession
import quicktime.std.music.ToneDescription
import quicktime.std.music.NoteChannel
import quicktime.std.music.NoteRequest
QTSession.open()
NoteChannel noteChannel = new NoteChannel(new NoteRequest(new ToneDescription(1)))
def fib(n){
if(n<2) {
return n
}
fib(n-2)+fib(n-1)
}
s = 1
1.upto(30) { n ->
x = fib(n)
noteChannel.reset()
println x
x %= 19
x += 40
println x
noteChannel.playNoteRaw(s as int, 60)
s = x
sleep(100)
}
QTSession.close()
import quicktime.std.music.ToneDescription
import quicktime.std.music.NoteChannel
import quicktime.std.music.NoteRequest
QTSession.open()
NoteChannel noteChannel = new NoteChannel(new NoteRequest(new ToneDescription(1)))
def fib(n){
if(n<2) {
return n
}
fib(n-2)+fib(n-1)
}
s = 1
1.upto(30) { n ->
x = fib(n)
noteChannel.reset()
println x
x %= 19
x += 40
println x
noteChannel.playNoteRaw(s as int, 60)
s = x
sleep(100)
}
QTSession.close()
最後あたり再帰での計算が重くなります...Orz...
参考
http://programamemo2.blogspot.com/2007/08/groovymidi-quicktime.html
: