class Musicality::MidiUtil

Constants

NOTENUM_TO_PITCH
PITCH_TO_NOTENUM
QUARTER

Public Class Methods

delta(duration, ppqn) click to toggle source

Number of pulses equivalent to the given duration

# File lib/musicality/performance/midi/midi_util.rb, line 6
def self.delta duration, ppqn
  pulses = (duration / QUARTER) * ppqn
  return pulses.round
end
dynamic_to_volume(dynamic) click to toggle source
# File lib/musicality/performance/midi/midi_util.rb, line 29
def self.dynamic_to_volume dynamic
  (dynamic * 127).round
end
note_velocity(attack) click to toggle source
# File lib/musicality/performance/midi/midi_util.rb, line 33
def self.note_velocity(attack)
  case attack
  when Attack::NORMAL, Attack::NONE then 70
  when Attack::TENUTO then 90
  when Attack::ACCENT then 112
  else
    raise ArgumentError
  end
end
notenum_to_pitch(notenum) click to toggle source
# File lib/musicality/performance/midi/midi_util.rb, line 25
def self.notenum_to_pitch notenum
  NOTENUM_TO_PITCH.fetch(notenum)
end
pitch_to_notenum(pitch) click to toggle source
# File lib/musicality/performance/midi/midi_util.rb, line 21
def self.pitch_to_notenum pitch
  PITCH_TO_NOTENUM.fetch(pitch.round)
end