midilib 2.0.5 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +5 -5
  2. data/ChangeLog +2 -1
  3. data/Credits +39 -2
  4. data/README.rdoc +5 -6
  5. data/Rakefile +36 -49
  6. data/TODO.rdoc +13 -2
  7. data/examples/from_scratch.rb +1 -1
  8. data/examples/measures_mbt.rb +11 -11
  9. data/examples/print_program_changes.rb +2 -2
  10. data/examples/reader2text.rb +47 -47
  11. data/examples/seq2text.rb +1 -1
  12. data/examples/split.rb +4 -3
  13. data/examples/strings.rb +4 -4
  14. data/examples/transpose.rb +19 -20
  15. data/install.rb +21 -13
  16. data/lib/midilib/consts.rb +237 -239
  17. data/lib/midilib/event.rb +128 -100
  18. data/lib/midilib/info.rb +3 -5
  19. data/lib/midilib/io/midifile.rb +155 -182
  20. data/lib/midilib/io/seqreader.rb +80 -85
  21. data/lib/midilib/io/seqwriter.rb +93 -88
  22. data/lib/midilib/measure.rb +78 -80
  23. data/lib/midilib/mergesort.rb +39 -0
  24. data/lib/midilib/sequence.rb +40 -32
  25. data/lib/midilib/track.rb +16 -57
  26. data/lib/midilib/utils.rb +4 -7
  27. data/lib/midilib.rb +5 -5
  28. data/test/event_equality.rb +28 -30
  29. data/test/test_event.rb +9 -11
  30. data/test/test_io.rb +83 -3
  31. data/test/test_mergesort.rb +37 -0
  32. data/test/test_midifile.rb +6 -19
  33. data/test/test_sequence.rb +5 -4
  34. data/test/test_track.rb +9 -38
  35. data/test/test_varlen.rb +1 -3
  36. metadata +8 -95
  37. data/html/IO.html +0 -155
  38. data/html/MIDI/ActiveSense.html +0 -206
  39. data/html/MIDI/ChannelEvent.html +0 -231
  40. data/html/MIDI/ChannelPressure.html +0 -265
  41. data/html/MIDI/Clock.html +0 -206
  42. data/html/MIDI/Continue.html +0 -206
  43. data/html/MIDI/Controller.html +0 -280
  44. data/html/MIDI/Event.html +0 -489
  45. data/html/MIDI/IO/MIDIFile.html +0 -2024
  46. data/html/MIDI/IO/SeqReader.html +0 -904
  47. data/html/MIDI/IO/SeqWriter.html +0 -572
  48. data/html/MIDI/IO.html +0 -95
  49. data/html/MIDI/KeySig.html +0 -353
  50. data/html/MIDI/MIDI/MIDI/Array.html +0 -255
  51. data/html/MIDI/MIDI/MIDI.html +0 -95
  52. data/html/MIDI/MIDI.html +0 -95
  53. data/html/MIDI/Marker.html +0 -158
  54. data/html/MIDI/Measure.html +0 -328
  55. data/html/MIDI/Measures.html +0 -285
  56. data/html/MIDI/MetaEvent.html +0 -461
  57. data/html/MIDI/NoteEvent.html +0 -331
  58. data/html/MIDI/NoteOff.html +0 -228
  59. data/html/MIDI/NoteOn.html +0 -228
  60. data/html/MIDI/PitchBend.html +0 -266
  61. data/html/MIDI/PolyPressure.html +0 -277
  62. data/html/MIDI/ProgramChange.html +0 -265
  63. data/html/MIDI/Realtime.html +0 -242
  64. data/html/MIDI/Sequence.html +0 -896
  65. data/html/MIDI/SongPointer.html +0 -266
  66. data/html/MIDI/SongSelect.html +0 -265
  67. data/html/MIDI/Start.html +0 -206
  68. data/html/MIDI/Stop.html +0 -206
  69. data/html/MIDI/SystemCommon.html +0 -158
  70. data/html/MIDI/SystemExclusive.html +0 -268
  71. data/html/MIDI/SystemReset.html +0 -206
  72. data/html/MIDI/Tempo.html +0 -396
  73. data/html/MIDI/TimeSig.html +0 -388
  74. data/html/MIDI/Track.html +0 -695
  75. data/html/MIDI/TuneRequest.html +0 -242
  76. data/html/MIDI/Utils.html +0 -220
  77. data/html/MIDI.html +0 -547
  78. data/html/README_rdoc.html +0 -731
  79. data/html/TODO_rdoc.html +0 -125
  80. data/html/created.rid +0 -14
  81. data/html/css/fonts.css +0 -167
  82. data/html/css/rdoc.css +0 -590
  83. data/html/fonts/Lato-Light.ttf +0 -0
  84. data/html/fonts/Lato-LightItalic.ttf +0 -0
  85. data/html/fonts/Lato-Regular.ttf +0 -0
  86. data/html/fonts/Lato-RegularItalic.ttf +0 -0
  87. data/html/fonts/SourceCodePro-Bold.ttf +0 -0
  88. data/html/fonts/SourceCodePro-Regular.ttf +0 -0
  89. data/html/images/add.png +0 -0
  90. data/html/images/arrow_up.png +0 -0
  91. data/html/images/brick.png +0 -0
  92. data/html/images/brick_link.png +0 -0
  93. data/html/images/bug.png +0 -0
  94. data/html/images/bullet_black.png +0 -0
  95. data/html/images/bullet_toggle_minus.png +0 -0
  96. data/html/images/bullet_toggle_plus.png +0 -0
  97. data/html/images/date.png +0 -0
  98. data/html/images/delete.png +0 -0
  99. data/html/images/find.png +0 -0
  100. data/html/images/loadingAnimation.gif +0 -0
  101. data/html/images/macFFBgHack.png +0 -0
  102. data/html/images/package.png +0 -0
  103. data/html/images/page_green.png +0 -0
  104. data/html/images/page_white_text.png +0 -0
  105. data/html/images/page_white_width.png +0 -0
  106. data/html/images/plugin.png +0 -0
  107. data/html/images/ruby.png +0 -0
  108. data/html/images/tag_blue.png +0 -0
  109. data/html/images/tag_green.png +0 -0
  110. data/html/images/transparent.png +0 -0
  111. data/html/images/wrench.png +0 -0
  112. data/html/images/wrench_orange.png +0 -0
  113. data/html/images/zoom.png +0 -0
  114. data/html/index.html +0 -768
  115. data/html/js/darkfish.js +0 -161
  116. data/html/js/jquery.js +0 -4
  117. data/html/js/navigation.js +0 -142
  118. data/html/js/navigation.js.gz +0 -0
  119. data/html/js/search.js +0 -109
  120. data/html/js/search_index.js +0 -1
  121. data/html/js/search_index.js.gz +0 -0
  122. data/html/js/searcher.js +0 -228
  123. data/html/js/searcher.js.gz +0 -0
  124. data/html/table_of_contents.html +0 -1265
@@ -17,15 +17,14 @@ require 'midilib/sequence'
17
17
  require 'midilib/io/seqreader'
18
18
  require 'midilib/io/seqwriter'
19
19
 
20
-
21
20
  def usage
22
- $stderr.print <<EOF
23
- usage: #{$0} [--channel|-c channel] [--transpose|-t half_steps]
24
- input_midi_file output_midi_file
25
-
26
- --channel|-c channel 1-16; default is 1
27
- --transpose|-t half_steps default = 12 (one octave up)
28
- EOF
21
+ $stderr.print <<~EOF
22
+ usage: #{$0} [--channel|-c channel] [--transpose|-t half_steps]
23
+ input_midi_file output_midi_file
24
+ #{' '}
25
+ --channel|-c channel 1-16; default is 1
26
+ --transpose|-t half_steps default = 12 (one octave up)
27
+ EOF
29
28
  exit(1)
30
29
  end
31
30
 
@@ -33,7 +32,7 @@ transpose = 12
33
32
  channel = 0
34
33
 
35
34
  g = GetoptLong.new(['--transpose', '-t', GetoptLong::REQUIRED_ARGUMENT],
36
- ['--channel', '-c', GetoptLong::REQUIRED_ARGUMENT])
35
+ ['--channel', '-c', GetoptLong::REQUIRED_ARGUMENT])
37
36
  g.each do |name, arg|
38
37
  case name
39
38
  when '--transpose'
@@ -41,13 +40,13 @@ g.each do |name, arg|
41
40
  when '--channel'
42
41
  channel = arg.to_i - 1
43
42
  else
44
- usage()
43
+ usage
45
44
  end
46
45
  end
47
46
 
48
- usage() unless ARGV.length >= 2
47
+ usage unless ARGV.length >= 2
49
48
 
50
- seq = MIDI::Sequence.new()
49
+ seq = MIDI::Sequence.new
51
50
  File.open(ARGV[0], 'rb') do |file|
52
51
  # The block we pass in to Sequence.read is called at the end of every
53
52
  # track read. It is optional, but is useful for progress reports.
@@ -58,13 +57,13 @@ end
58
57
 
59
58
  seq.each do |track|
60
59
  track.each do |event|
61
- if event.kind_of?(MIDI::NoteEvent) && event.channel == channel
62
- val = event.note + transpose
63
- if val < 0 || val > 127
64
- $stderr.puts "transposition out of range; ignored"
65
- else
66
- event.note = val
67
- end
60
+ next unless event.is_a?(MIDI::NoteEvent) && event.channel == channel
61
+
62
+ val = event.note + transpose
63
+ if val < 0 || val > 127
64
+ warn 'transposition out of range; ignored'
65
+ else
66
+ event.note = val
68
67
  end
69
68
  end
70
69
  end
@@ -72,4 +71,4 @@ end
72
71
  # Output to named file or stdout.
73
72
  file = ARGV[1] ? File.open(ARGV[1], 'wb') : $stdout
74
73
  seq.write(file)
75
- file.close() if ARGV[1]
74
+ file.close if ARGV[1]
data/install.rb CHANGED
@@ -13,13 +13,21 @@ require 'getoptlong'
13
13
  require 'find'
14
14
  begin
15
15
  require 'ftools'
16
- def mkdirs(dir); File.makedirs(dir); end
17
- def install(*args); File.install(*args); end
16
+ def mkdirs(dir)
17
+ File.makedirs(dir)
18
+ end
19
+
20
+ def install(*args)
21
+ File.install(*args)
22
+ end
18
23
  rescue LoadError
19
24
  require 'fileutils'
20
- def mkdirs(dir); FileUtils.mkdir_p(dir); end
25
+ def mkdirs(dir)
26
+ FileUtils.mkdir_p(dir)
27
+ end
28
+
21
29
  def install(*args)
22
- args[2] = {mode: args[2], verbose: args[3]}
30
+ args[2] = { mode: args[2], verbose: args[3] }
23
31
  args.pop
24
32
  FileUtils.install(*args)
25
33
  end
@@ -35,15 +43,15 @@ def instdir
35
43
  if name == '--install-dir'
36
44
  return arg
37
45
  else
38
- $stderr.puts "usage: $0 [--install-dir dir]"
46
+ warn 'usage: $0 [--install-dir dir]'
39
47
  end
40
48
  end
41
49
 
42
50
  begin
43
51
  require 'rbconfig'
44
- libdir = Config::CONFIG['sitedir'] + "/" +
45
- Config::CONFIG['MAJOR'] + "." +
46
- Config::CONFIG['MINOR']
52
+ libdir = Config::CONFIG['sitedir'] + '/' +
53
+ Config::CONFIG['MAJOR'] + '.' +
54
+ Config::CONFIG['MINOR']
47
55
  rescue ScriptError
48
56
  $LOAD_PATH.each do |l|
49
57
  if l =~ /site_ruby/ && l =~ /\d$/ && l !~ /#{PLATFORM}/
@@ -51,18 +59,18 @@ def instdir
51
59
  break
52
60
  end
53
61
  end
54
- STDERR.puts "Can't find required file `rbconfig.rb'."
55
- STDERR.puts "The `midilib' files need to be installed manually in #{libdir}"
62
+ warn "Can't find required file `rbconfig.rb'."
63
+ warn "The `midilib' files need to be installed manually in #{libdir}"
56
64
  end
57
- return libdir
65
+ libdir
58
66
  end
59
67
 
60
- INSTALL_DIR = instdir()
68
+ INSTALL_DIR = instdir
61
69
  files = Dir.chdir('lib') { Dir['**/*.rb'] }
62
70
 
63
71
  files.each do |f|
64
72
  dir = File.dirname(f)
65
73
  target_dir = File.join(INSTALL_DIR, dir)
66
74
  mkdirs(target_dir) unless File.exist?(target_dir)
67
- install(File.join('lib', f), File.join(INSTALL_DIR, f), 0644, true)
75
+ install(File.join('lib', f), File.join(INSTALL_DIR, f), 0o644, true)
68
76
  end