unimidi 0.0.7-i386-mingw32 → 0.1.3-i386-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +12 -12
- data/README.rdoc +51 -52
- data/lib/unimidi.rb +19 -17
- data/lib/unimidi/adapter/alsa-rawmidi.rb +32 -25
- data/lib/unimidi/adapter/midi-jruby.rb +32 -25
- data/lib/unimidi/adapter/midi-winmm.rb +32 -25
- data/lib/unimidi/congruous_api_adapter.rb +196 -112
- data/lib/unimidi/platform.rb +35 -30
- metadata +6 -6
data/LICENSE
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
Copyright 2010-2011 Ari Russo
|
2
|
-
|
3
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
you may not use this file except in compliance with the License.
|
5
|
-
You may obtain a copy of the License at
|
6
|
-
|
7
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
|
9
|
-
Unless required by applicable law or agreed to in writing, software
|
10
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
See the License for the specific language governing permissions and
|
1
|
+
Copyright 2010-2011 Ari Russo
|
2
|
+
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
you may not use this file except in compliance with the License.
|
5
|
+
You may obtain a copy of the License at
|
6
|
+
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
See the License for the specific language governing permissions and
|
13
13
|
limitations under the License.
|
data/README.rdoc
CHANGED
@@ -1,52 +1,51 @@
|
|
1
|
-
= UniMIDI
|
2
|
-
|
3
|
-
== Summary
|
4
|
-
|
5
|
-
Platform independent realtime MIDI input and output for Ruby.
|
6
|
-
|
7
|
-
== Features
|
8
|
-
|
9
|
-
*
|
10
|
-
* Both input and output to and from multiple devices concurrently
|
11
|
-
* Agnostically handle different MIDI Message types
|
12
|
-
|
13
|
-
== Requirements
|
14
|
-
|
15
|
-
Platform
|
16
|
-
|
17
|
-
* JRuby: {midi-jruby}[http://github.com/arirusso/midi-jruby]
|
18
|
-
* Linux: {alsa-rawmidi}[http://github.com/arirusso/alsa-rawmidi]
|
19
|
-
* Windows/Cygwin: {midi-winmm}[http://github.com/arirusso/midi-winmm]
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
Copyright (c) 2010-2011 Ari Russo
|
1
|
+
= UniMIDI
|
2
|
+
|
3
|
+
== Summary
|
4
|
+
|
5
|
+
Platform independent realtime MIDI input and output for Ruby.
|
6
|
+
|
7
|
+
== Features
|
8
|
+
|
9
|
+
* Currently Linux, JRuby, Windows and Cygwin are supported. OSX is {in progress}[http://github.com/arirusso/ffi-coremidi]
|
10
|
+
* Both input and output to and from multiple devices concurrently
|
11
|
+
* Agnostically handle different MIDI and SysEx Message types
|
12
|
+
|
13
|
+
== Requirements
|
14
|
+
|
15
|
+
Platform
|
16
|
+
|
17
|
+
* JRuby: {midi-jruby}[http://github.com/arirusso/midi-jruby]
|
18
|
+
* Linux: {alsa-rawmidi}[http://github.com/arirusso/alsa-rawmidi]
|
19
|
+
* Windows/Cygwin: {midi-winmm}[http://github.com/arirusso/midi-winmm]
|
20
|
+
|
21
|
+
A couple of notes about JRuby only:
|
22
|
+
|
23
|
+
* You must be in 1.9 mode. This is normally accomplished by passing --1.9 to JRuby at the command line.
|
24
|
+
* javax.sound has some documented issues with SysEx messages in some versions OSX Snow Leopard which do affect this library.
|
25
|
+
|
26
|
+
== Install
|
27
|
+
|
28
|
+
* gem install unimidi
|
29
|
+
|
30
|
+
== Examples
|
31
|
+
|
32
|
+
* {input}[http://github.com/arirusso/unimidi/blob/master/examples/input.rb]
|
33
|
+
* {output}[http://github.com/arirusso/unimidi/blob/master/examples/output.rb]
|
34
|
+
|
35
|
+
== Tests
|
36
|
+
|
37
|
+
* please see {test/config.rb}[http://github.com/arirusso/unimidi/blob/master/test/config.rb] before running tests
|
38
|
+
|
39
|
+
== Documentation
|
40
|
+
|
41
|
+
* {rdoc}[http://rdoc.info/gems/unimidi]
|
42
|
+
|
43
|
+
== Author
|
44
|
+
|
45
|
+
{Ari Russo}[http://github.com/arirusso] <ari.russo at gmail.com>
|
46
|
+
|
47
|
+
== License
|
48
|
+
|
49
|
+
Apache 2.0, See the file LICENSE
|
50
|
+
|
51
|
+
Copyright (c) 2010-2011 Ari Russo
|
data/lib/unimidi.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# A realtime MIDI interface for Ruby
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# A realtime MIDI interface for Ruby
|
4
|
+
# (c)2010-2011 Ari Russo and licensed under the Apache 2.0 License
|
5
|
+
#
|
6
|
+
|
7
|
+
module UniMIDI
|
8
|
+
|
9
|
+
VERSION = "0.1.3"
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'unimidi/congruous_api_adapter'
|
14
|
+
require 'unimidi/platform'
|
15
|
+
|
16
|
+
module UniMIDI
|
17
|
+
extend(Platform.instance.interface)
|
18
|
+
include(Platform.instance.interface)
|
19
|
+
end
|
@@ -1,26 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
class Input
|
13
|
-
include CongruousApiAdapter::Device
|
14
|
-
include CongruousApiAdapter::Input
|
15
|
-
defer_to AlsaRawMIDI::Input
|
16
|
-
end
|
17
|
-
|
18
|
-
class Output
|
19
|
-
include CongruousApiAdapter::Device
|
20
|
-
include CongruousApiAdapter::Output
|
21
|
-
defer_to AlsaRawMIDI::Output
|
22
|
-
end
|
23
|
-
|
24
|
-
|
25
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# (c)2010-2011 Ari Russo and licensed under the Apache 2.0 License
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'alsa-rawmidi'
|
7
|
+
|
8
|
+
module UniMIDI
|
9
|
+
|
10
|
+
module AlsaRawMIDIAdapter
|
11
|
+
|
12
|
+
class Input
|
13
|
+
include CongruousApiAdapter::Device
|
14
|
+
include CongruousApiAdapter::Input
|
15
|
+
defer_to AlsaRawMIDI::Input
|
16
|
+
end
|
17
|
+
|
18
|
+
class Output
|
19
|
+
include CongruousApiAdapter::Device
|
20
|
+
include CongruousApiAdapter::Output
|
21
|
+
defer_to AlsaRawMIDI::Output
|
22
|
+
end
|
23
|
+
|
24
|
+
class Device
|
25
|
+
extend CongruousApiAdapter::Device::ClassMethods
|
26
|
+
defer_to AlsaRawMIDI::Device
|
27
|
+
input_class Input
|
28
|
+
output_class Output
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
26
33
|
end
|
@@ -1,26 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
class Input
|
13
|
-
include CongruousApiAdapter::Device
|
14
|
-
include CongruousApiAdapter::Input
|
15
|
-
defer_to MIDIJRuby::Input
|
16
|
-
end
|
17
|
-
|
18
|
-
class Output
|
19
|
-
include CongruousApiAdapter::Device
|
20
|
-
include CongruousApiAdapter::Output
|
21
|
-
defer_to MIDIJRuby::Output
|
22
|
-
end
|
23
|
-
|
24
|
-
|
25
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# (c)2010-2011 Ari Russo and licensed under the Apache 2.0 License
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'midi-jruby'
|
7
|
+
|
8
|
+
module UniMIDI
|
9
|
+
|
10
|
+
module MIDIJRubyAdapter
|
11
|
+
|
12
|
+
class Input
|
13
|
+
include CongruousApiAdapter::Device
|
14
|
+
include CongruousApiAdapter::Input
|
15
|
+
defer_to MIDIJRuby::Input
|
16
|
+
end
|
17
|
+
|
18
|
+
class Output
|
19
|
+
include CongruousApiAdapter::Device
|
20
|
+
include CongruousApiAdapter::Output
|
21
|
+
defer_to MIDIJRuby::Output
|
22
|
+
end
|
23
|
+
|
24
|
+
class Device
|
25
|
+
extend CongruousApiAdapter::Device::ClassMethods
|
26
|
+
defer_to MIDIJRuby::Device
|
27
|
+
input_class Input
|
28
|
+
output_class Output
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
26
33
|
end
|
@@ -1,26 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
class Input
|
13
|
-
include CongruousApiAdapter::Device
|
14
|
-
include CongruousApiAdapter::Input
|
15
|
-
defer_to MIDIWinMM::Input
|
16
|
-
end
|
17
|
-
|
18
|
-
class Output
|
19
|
-
include CongruousApiAdapter::Device
|
20
|
-
include CongruousApiAdapter::Output
|
21
|
-
defer_to MIDIWinMM::Output
|
22
|
-
end
|
23
|
-
|
24
|
-
|
25
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# (c)2010-2011 Ari Russo and licensed under the Apache 2.0 License
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'midi-winmm'
|
7
|
+
|
8
|
+
module UniMIDI
|
9
|
+
|
10
|
+
module MIDIWinMMAdapter
|
11
|
+
|
12
|
+
class Input
|
13
|
+
include CongruousApiAdapter::Device
|
14
|
+
include CongruousApiAdapter::Input
|
15
|
+
defer_to MIDIWinMM::Input
|
16
|
+
end
|
17
|
+
|
18
|
+
class Output
|
19
|
+
include CongruousApiAdapter::Device
|
20
|
+
include CongruousApiAdapter::Output
|
21
|
+
defer_to MIDIWinMM::Output
|
22
|
+
end
|
23
|
+
|
24
|
+
class Device
|
25
|
+
extend CongruousApiAdapter::Device::ClassMethods
|
26
|
+
defer_to MIDIWinMM::Device
|
27
|
+
input_class Input
|
28
|
+
output_class Output
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
26
33
|
end
|
@@ -1,113 +1,197 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
def
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
def
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# (c)2010-2011 Ari Russo and licensed under the Apache 2.0 License
|
4
|
+
#
|
5
|
+
|
6
|
+
module UniMIDI
|
7
|
+
|
8
|
+
module CongruousApiAdapter
|
9
|
+
|
10
|
+
module Device
|
11
|
+
|
12
|
+
def initialize(device_obj)
|
13
|
+
@device = device_obj
|
14
|
+
@id = @device.id
|
15
|
+
@name = @device.name
|
16
|
+
end
|
17
|
+
|
18
|
+
# enable the device for use, can be passed a block to which the device will be passed back
|
19
|
+
def open(*a, &block)
|
20
|
+
@device.open(*a)
|
21
|
+
unless block.nil?
|
22
|
+
begin
|
23
|
+
block.call(self)
|
24
|
+
ensure
|
25
|
+
close
|
26
|
+
end
|
27
|
+
else
|
28
|
+
self
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# close the device
|
33
|
+
def close(*a)
|
34
|
+
@device.close(*a)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.included(base)
|
38
|
+
#base.send(:attr_reader, :device)
|
39
|
+
base.send(:attr_reader, :name)
|
40
|
+
base.send(:attr_reader, :id)
|
41
|
+
end
|
42
|
+
|
43
|
+
module ClassMethods
|
44
|
+
|
45
|
+
def first
|
46
|
+
new(device_class.first)
|
47
|
+
end
|
48
|
+
|
49
|
+
def last
|
50
|
+
new(device_class.last)
|
51
|
+
end
|
52
|
+
|
53
|
+
def all
|
54
|
+
all_by_type.values.flatten
|
55
|
+
end
|
56
|
+
|
57
|
+
def all_by_type
|
58
|
+
{
|
59
|
+
:input => device_class.all_by_type[:input].map { |d| get_input_class.new(d) },
|
60
|
+
:output => device_class.all_by_type[:output].map { |d| get_output_class.new(d) }
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
def defer_to(klass)
|
65
|
+
const_set("DeferToClass", klass)
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_input_class
|
69
|
+
const_get("InputClass")
|
70
|
+
end
|
71
|
+
|
72
|
+
def get_output_class
|
73
|
+
const_get("OutputClass")
|
74
|
+
end
|
75
|
+
|
76
|
+
def input_class(klass)
|
77
|
+
const_set("InputClass", klass)
|
78
|
+
end
|
79
|
+
|
80
|
+
def output_class(klass)
|
81
|
+
const_set("OutputClass", klass)
|
82
|
+
end
|
83
|
+
|
84
|
+
def device_class
|
85
|
+
const_get("DeferToClass")
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
module Input
|
93
|
+
|
94
|
+
def self.included(base)
|
95
|
+
base.extend(Device::ClassMethods)
|
96
|
+
base.extend(ClassMethods)
|
97
|
+
end
|
98
|
+
|
99
|
+
#
|
100
|
+
# returns an array of MIDI event hashes as such:
|
101
|
+
# [
|
102
|
+
# { :data => [144, 60, 100], :timestamp => 1024 },
|
103
|
+
# { :data => [128, 60, 100], :timestamp => 1100 },
|
104
|
+
# { :data => [144, 40, 120], :timestamp => 1200 }
|
105
|
+
# ]
|
106
|
+
#
|
107
|
+
# the data is an array of Numeric bytes
|
108
|
+
# the timestamp is the number of millis since this input was enabled
|
109
|
+
#
|
110
|
+
def gets(*a)
|
111
|
+
@device.gets(*a)
|
112
|
+
end
|
113
|
+
|
114
|
+
#
|
115
|
+
# same as gets but returns message data as string of hex digits as such:
|
116
|
+
# [
|
117
|
+
# { :data => "904060", :timestamp => 904 },
|
118
|
+
# { :data => "804060", :timestamp => 1150 },
|
119
|
+
# { :data => "90447F", :timestamp => 1300 }
|
120
|
+
# ]
|
121
|
+
#
|
122
|
+
def gets_bytestr(*a)
|
123
|
+
@device.gets_bytestr(*a)
|
124
|
+
end
|
125
|
+
|
126
|
+
#
|
127
|
+
# returns an array of data bytes such as
|
128
|
+
# [144, 60, 100, 128, 60, 100, 144, 40, 120]
|
129
|
+
#
|
130
|
+
def gets_data(*a)
|
131
|
+
arr = gets
|
132
|
+
arr.map { |msg| msg[:data] }.inject { |a,b| a + b }
|
133
|
+
end
|
134
|
+
|
135
|
+
#
|
136
|
+
# returns a string of data such as
|
137
|
+
# "90406080406090447F"
|
138
|
+
#
|
139
|
+
def gets_data_bytestr(*a)
|
140
|
+
arr = gets_bytestr
|
141
|
+
arr.map { |msg| msg[:data] }.join
|
142
|
+
end
|
143
|
+
|
144
|
+
module ClassMethods
|
145
|
+
|
146
|
+
# returns all inputs
|
147
|
+
def all
|
148
|
+
device_class.all.map { |d| new(d) }
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
154
|
+
|
155
|
+
module Output
|
156
|
+
|
157
|
+
def self.included(base)
|
158
|
+
base.extend(Device::ClassMethods)
|
159
|
+
base.extend(ClassMethods)
|
160
|
+
end
|
161
|
+
|
162
|
+
# sends a message to the output. the message can be:
|
163
|
+
#
|
164
|
+
# bytes eg output.puts(0x90, 0x40, 0x40)
|
165
|
+
# an array of bytes eg output.puts([0x90, 0x40, 0x40])
|
166
|
+
# or a string eg output.puts("904040")
|
167
|
+
#
|
168
|
+
def puts(*a)
|
169
|
+
@device.puts(*a)
|
170
|
+
end
|
171
|
+
|
172
|
+
# sends a message to the output in a form of a string eg "904040". this method does not do
|
173
|
+
# type checking and therefore is more performant than puts
|
174
|
+
def puts_bytestr(*a)
|
175
|
+
@device.puts_bytestr(*a)
|
176
|
+
end
|
177
|
+
|
178
|
+
# sends a message to the output in a form of bytes eg output.puts_bytes(0x90, 0x40, 0x40).
|
179
|
+
# this method does not do type checking and therefore is more performant than puts
|
180
|
+
def puts_bytes(*a)
|
181
|
+
@device.puts_bytes(*a)
|
182
|
+
end
|
183
|
+
|
184
|
+
module ClassMethods
|
185
|
+
|
186
|
+
# returns all outputs
|
187
|
+
def all
|
188
|
+
device_class.all.map { |d| new(d) }
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
192
|
+
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
|
113
197
|
end
|
data/lib/unimidi/platform.rb
CHANGED
@@ -1,30 +1,35 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
when /
|
21
|
-
when /
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
30
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# (c)2010-2011 Ari Russo and licensed under the Apache 2.0 License
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'singleton'
|
7
|
+
|
8
|
+
module UniMIDI
|
9
|
+
|
10
|
+
class Platform
|
11
|
+
|
12
|
+
include Singleton
|
13
|
+
|
14
|
+
attr_reader :interface
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
lib = case RUBY_PLATFORM
|
18
|
+
when /java/ then 'midi-jruby'
|
19
|
+
when /linux/ then 'alsa-rawmidi'
|
20
|
+
when /mingw/ then 'midi-winmm' #cygwin
|
21
|
+
when /win/ then 'midi-winmm'
|
22
|
+
end
|
23
|
+
require("unimidi/adapter/#{lib}")
|
24
|
+
@interface = case RUBY_PLATFORM
|
25
|
+
when /java/ then MIDIJRubyAdapter
|
26
|
+
when /linux/ then AlsaRawMIDIAdapter
|
27
|
+
when /mingw/ then MIDIWinMMAdapter #cygwin
|
28
|
+
when /win/ then MIDIWinMMAdapter
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unimidi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: i386-mingw32
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-04
|
12
|
+
date: 2011-05-04 00:00:00.000000000 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: midi-winmm
|
17
|
-
requirement: &
|
17
|
+
requirement: &9399804 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,8 +22,8 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
26
|
-
description:
|
25
|
+
version_requirements: *9399804
|
26
|
+
description: Platform Independent, realtime MIDI input and output for Ruby.
|
27
27
|
email:
|
28
28
|
- ari.russo@gmail.com
|
29
29
|
executables: []
|
@@ -62,5 +62,5 @@ rubyforge_project: unimidi
|
|
62
62
|
rubygems_version: 1.5.2
|
63
63
|
signing_key:
|
64
64
|
specification_version: 3
|
65
|
-
summary:
|
65
|
+
summary: Realtime MIDI input and output for Ruby.
|
66
66
|
test_files: []
|