Install
mdpw30.zip |
インストール今回初めてJRubyを使用する方はJRuby(Ruby)をインストールしてください。 Download mdpw30.zipを解凍するとmdpw.jarがありますので JAVAのクラスパスに足してください。さらに"jruby"フォルダ内に"mdpw.rb"がありますので、 インクルードする必要があります。Top of this page| Next step 音の作り方音はクラスMnで作る必要があります。作成時の引数は前から ピッチ(0-127), 長さ(positive double), 強さ(0-127) 音色 (0 - 127, 129) となります。require "mdpw" n = Mn.new(60,1,32,1) p = MidiFilePlayer.new p.init('note.mid') p.setTempo(120) p.play(n) p.end() Top of this page| Next step 音列の作り方音列はクラスMsでつくります。このクラスは"Array"クラスを継承していますので同じメソッドが使用できます。require "mdpw" seq = Ms.new([Mn.new(60,1,64,1), Mn.new(62,1,64,1), Mn.new(64,1,64,1) ]) p = MidiFilePlayer.new p.init('seq.mid') p.setTempo(120) p.play(seq) p.end() Top of this page| Next step 和音の作り方和音はクラスMcを使用して作ります。やはり"Array"クラスを継承しています。 和音という名前ですが、音列を含むことも出来ます。require "mdpw" chord = Mc.new([Mn.new(60,1,64,1), Mn.new(64,1,64,1), Mn.new(67,1,64,1) ]) p = MidiFilePlayer.new p.init('chord.mid') p.setTempo(120) p.play(chord) p.end() Top of this page| Next step 曲の作り方曲は音列と和音を組み合わせて作ります。 これらは入れ子に出来ます。 メロディーを音列にして記述し、和音を列にして伴奏を作ります。 これらを和音に入れれば組み合わせて演奏されます。require "mdpw" seq = Ms.new([Mn.new(60,1,64,1), Mn.new(62,1,64,1), Mn.new(64,1,64,1) , Mn.new(65,1,-64,1) ]) chord = Mc.new([Mn.new(60,2,32,1), Mn.new(64,2,120,1), Mn.new(67,2,1,1)]) mp = Ms.new([seq, seq]) cp = Ms.new([chord, chord, chord, chord]) sample = Mc.new([mp , cp]) p = MidiFilePlayer.new p.init('sample.mid') p.setTempo(120) p.play(sample) p.end() Top of this page| Next step Visitor"Crescendo" visitorを実装した例です。 メソッド"proccess"で音に対する処理を記述します。第一引数が処理対象の音です。 第二引数は音の出現するタイミングが入ります。require "mdpw" class Crescendo < Visitor def initialize(d, sv, en) @duration = d @startv = sv @endv = en end def process(mn, d) mn.setVelocity((@endv - @startv)*d/@duration+@startv) end end seq = Ms.new([Mn.new(60,1,64,1), Mn.new(62,1,64,1), Mn.new(64,1,64,1) ]) v = Crescendo.new(seq.getDuration(), 32, 120) seq.visit(v) p = MidiFilePlayer.new p.init('visitor.mid') p.setTempo(120) p.play(seq) p.end() Top of this page |