webmidi 0.1.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/LICENSE.txt +21 -0
- data/README.md +73 -0
- data/Rakefile +48 -0
- data/lib/webmidi/access.rb +170 -0
- data/lib/webmidi/callback_subscription.rb +26 -0
- data/lib/webmidi/clock.rb +129 -0
- data/lib/webmidi/configuration.rb +43 -0
- data/lib/webmidi/error.rb +26 -0
- data/lib/webmidi/message/base.rb +64 -0
- data/lib/webmidi/message/channel.rb +238 -0
- data/lib/webmidi/message/parser.rb +308 -0
- data/lib/webmidi/message/system.rb +162 -0
- data/lib/webmidi/message/ump.rb +675 -0
- data/lib/webmidi/message.rb +154 -0
- data/lib/webmidi/middleware/base.rb +16 -0
- data/lib/webmidi/middleware/channel_map.rb +36 -0
- data/lib/webmidi/middleware/filter.rb +22 -0
- data/lib/webmidi/middleware/logger.rb +17 -0
- data/lib/webmidi/middleware/note_range_filter.rb +34 -0
- data/lib/webmidi/middleware/panic.rb +73 -0
- data/lib/webmidi/middleware/pipeline.rb +19 -0
- data/lib/webmidi/middleware/recorder.rb +123 -0
- data/lib/webmidi/middleware/split_by_channel.rb +66 -0
- data/lib/webmidi/middleware/stack.rb +55 -0
- data/lib/webmidi/middleware/timing_gate.rb +58 -0
- data/lib/webmidi/middleware/transpose.rb +30 -0
- data/lib/webmidi/middleware/velocity_clamp.rb +37 -0
- data/lib/webmidi/middleware/velocity_scale.rb +55 -0
- data/lib/webmidi/middleware.rb +21 -0
- data/lib/webmidi/music/chord.rb +90 -0
- data/lib/webmidi/music/note.rb +102 -0
- data/lib/webmidi/music/rhythm.rb +92 -0
- data/lib/webmidi/music/scale.rb +85 -0
- data/lib/webmidi/music.rb +24 -0
- data/lib/webmidi/network/apple_midi.rb +189 -0
- data/lib/webmidi/network/osc.rb +205 -0
- data/lib/webmidi/network/rtp.rb +410 -0
- data/lib/webmidi/network.rb +10 -0
- data/lib/webmidi/port/base.rb +89 -0
- data/lib/webmidi/port/input.rb +158 -0
- data/lib/webmidi/port/map.rb +65 -0
- data/lib/webmidi/port/output.rb +208 -0
- data/lib/webmidi/port.rb +11 -0
- data/lib/webmidi/smf/event.rb +206 -0
- data/lib/webmidi/smf/reader.rb +237 -0
- data/lib/webmidi/smf/sequence.rb +135 -0
- data/lib/webmidi/smf/tempo_map.rb +107 -0
- data/lib/webmidi/smf/track.rb +130 -0
- data/lib/webmidi/smf/writer.rb +121 -0
- data/lib/webmidi/smf.rb +13 -0
- data/lib/webmidi/transport/adapter.rb +46 -0
- data/lib/webmidi/transport/base.rb +59 -0
- data/lib/webmidi/transport/device_info.rb +7 -0
- data/lib/webmidi/transport/null.rb +81 -0
- data/lib/webmidi/transport/virtual.rb +184 -0
- data/lib/webmidi/transport.rb +80 -0
- data/lib/webmidi/version.rb +5 -0
- data/lib/webmidi/virtual/loopback.rb +45 -0
- data/lib/webmidi/virtual/port.rb +48 -0
- data/lib/webmidi/virtual.rb +9 -0
- data/lib/webmidi.rb +19 -0
- data/webmidi.gemspec +32 -0
- metadata +108 -0
data/lib/webmidi.rb
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "webmidi/version"
|
|
4
|
+
require_relative "webmidi/error"
|
|
5
|
+
require_relative "webmidi/callback_subscription"
|
|
6
|
+
require_relative "webmidi/configuration"
|
|
7
|
+
require_relative "webmidi/message"
|
|
8
|
+
require_relative "webmidi/transport"
|
|
9
|
+
require_relative "webmidi/port"
|
|
10
|
+
require_relative "webmidi/access"
|
|
11
|
+
require_relative "webmidi/virtual"
|
|
12
|
+
require_relative "webmidi/smf"
|
|
13
|
+
require_relative "webmidi/middleware"
|
|
14
|
+
require_relative "webmidi/music"
|
|
15
|
+
require_relative "webmidi/network"
|
|
16
|
+
require_relative "webmidi/clock"
|
|
17
|
+
|
|
18
|
+
module Webmidi
|
|
19
|
+
end
|
data/webmidi.gemspec
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/webmidi/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "webmidi"
|
|
7
|
+
spec.version = Webmidi::VERSION
|
|
8
|
+
spec.authors = ["Yudai Takada"]
|
|
9
|
+
spec.email = ["t.yudai92@gmail.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "A Ruby MIDI library inspired by the W3C Web MIDI API"
|
|
12
|
+
spec.description = "Webmidi brings the W3C Web MIDI API design to Ruby with idiomatic DSL, " \
|
|
13
|
+
"MIDI message parsing, Standard MIDI File I/O, middleware pipeline, " \
|
|
14
|
+
"music theory DSL, network MIDI (RTP/OSC), and MIDI 2.0 UMP support."
|
|
15
|
+
spec.homepage = "https://github.com/ydah/webmidi"
|
|
16
|
+
spec.license = "MIT"
|
|
17
|
+
spec.required_ruby_version = ">= 3.2.0"
|
|
18
|
+
|
|
19
|
+
spec.metadata["source_code_uri"] = "https://github.com/ydah/webmidi"
|
|
20
|
+
spec.metadata["changelog_uri"] = "https://github.com/ydah/webmidi/blob/main/CHANGELOG.md"
|
|
21
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
22
|
+
|
|
23
|
+
File.basename(__FILE__)
|
|
24
|
+
spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
|
|
25
|
+
ls.readlines("\x0", chomp: true).reject do |f|
|
|
26
|
+
f.start_with?(*%w[bin/ Gemfile .gitignore .rspec spec/ .github/ .idea/])
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
spec.bindir = "exe"
|
|
30
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
31
|
+
spec.require_paths = ["lib"]
|
|
32
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: webmidi
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Yudai Takada
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: Webmidi brings the W3C Web MIDI API design to Ruby with idiomatic DSL,
|
|
13
|
+
MIDI message parsing, Standard MIDI File I/O, middleware pipeline, music theory
|
|
14
|
+
DSL, network MIDI (RTP/OSC), and MIDI 2.0 UMP support.
|
|
15
|
+
email:
|
|
16
|
+
- t.yudai92@gmail.com
|
|
17
|
+
executables: []
|
|
18
|
+
extensions: []
|
|
19
|
+
extra_rdoc_files: []
|
|
20
|
+
files:
|
|
21
|
+
- CHANGELOG.md
|
|
22
|
+
- LICENSE.txt
|
|
23
|
+
- README.md
|
|
24
|
+
- Rakefile
|
|
25
|
+
- lib/webmidi.rb
|
|
26
|
+
- lib/webmidi/access.rb
|
|
27
|
+
- lib/webmidi/callback_subscription.rb
|
|
28
|
+
- lib/webmidi/clock.rb
|
|
29
|
+
- lib/webmidi/configuration.rb
|
|
30
|
+
- lib/webmidi/error.rb
|
|
31
|
+
- lib/webmidi/message.rb
|
|
32
|
+
- lib/webmidi/message/base.rb
|
|
33
|
+
- lib/webmidi/message/channel.rb
|
|
34
|
+
- lib/webmidi/message/parser.rb
|
|
35
|
+
- lib/webmidi/message/system.rb
|
|
36
|
+
- lib/webmidi/message/ump.rb
|
|
37
|
+
- lib/webmidi/middleware.rb
|
|
38
|
+
- lib/webmidi/middleware/base.rb
|
|
39
|
+
- lib/webmidi/middleware/channel_map.rb
|
|
40
|
+
- lib/webmidi/middleware/filter.rb
|
|
41
|
+
- lib/webmidi/middleware/logger.rb
|
|
42
|
+
- lib/webmidi/middleware/note_range_filter.rb
|
|
43
|
+
- lib/webmidi/middleware/panic.rb
|
|
44
|
+
- lib/webmidi/middleware/pipeline.rb
|
|
45
|
+
- lib/webmidi/middleware/recorder.rb
|
|
46
|
+
- lib/webmidi/middleware/split_by_channel.rb
|
|
47
|
+
- lib/webmidi/middleware/stack.rb
|
|
48
|
+
- lib/webmidi/middleware/timing_gate.rb
|
|
49
|
+
- lib/webmidi/middleware/transpose.rb
|
|
50
|
+
- lib/webmidi/middleware/velocity_clamp.rb
|
|
51
|
+
- lib/webmidi/middleware/velocity_scale.rb
|
|
52
|
+
- lib/webmidi/music.rb
|
|
53
|
+
- lib/webmidi/music/chord.rb
|
|
54
|
+
- lib/webmidi/music/note.rb
|
|
55
|
+
- lib/webmidi/music/rhythm.rb
|
|
56
|
+
- lib/webmidi/music/scale.rb
|
|
57
|
+
- lib/webmidi/network.rb
|
|
58
|
+
- lib/webmidi/network/apple_midi.rb
|
|
59
|
+
- lib/webmidi/network/osc.rb
|
|
60
|
+
- lib/webmidi/network/rtp.rb
|
|
61
|
+
- lib/webmidi/port.rb
|
|
62
|
+
- lib/webmidi/port/base.rb
|
|
63
|
+
- lib/webmidi/port/input.rb
|
|
64
|
+
- lib/webmidi/port/map.rb
|
|
65
|
+
- lib/webmidi/port/output.rb
|
|
66
|
+
- lib/webmidi/smf.rb
|
|
67
|
+
- lib/webmidi/smf/event.rb
|
|
68
|
+
- lib/webmidi/smf/reader.rb
|
|
69
|
+
- lib/webmidi/smf/sequence.rb
|
|
70
|
+
- lib/webmidi/smf/tempo_map.rb
|
|
71
|
+
- lib/webmidi/smf/track.rb
|
|
72
|
+
- lib/webmidi/smf/writer.rb
|
|
73
|
+
- lib/webmidi/transport.rb
|
|
74
|
+
- lib/webmidi/transport/adapter.rb
|
|
75
|
+
- lib/webmidi/transport/base.rb
|
|
76
|
+
- lib/webmidi/transport/device_info.rb
|
|
77
|
+
- lib/webmidi/transport/null.rb
|
|
78
|
+
- lib/webmidi/transport/virtual.rb
|
|
79
|
+
- lib/webmidi/version.rb
|
|
80
|
+
- lib/webmidi/virtual.rb
|
|
81
|
+
- lib/webmidi/virtual/loopback.rb
|
|
82
|
+
- lib/webmidi/virtual/port.rb
|
|
83
|
+
- webmidi.gemspec
|
|
84
|
+
homepage: https://github.com/ydah/webmidi
|
|
85
|
+
licenses:
|
|
86
|
+
- MIT
|
|
87
|
+
metadata:
|
|
88
|
+
source_code_uri: https://github.com/ydah/webmidi
|
|
89
|
+
changelog_uri: https://github.com/ydah/webmidi/blob/main/CHANGELOG.md
|
|
90
|
+
rubygems_mfa_required: 'true'
|
|
91
|
+
rdoc_options: []
|
|
92
|
+
require_paths:
|
|
93
|
+
- lib
|
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
|
+
requirements:
|
|
96
|
+
- - ">="
|
|
97
|
+
- !ruby/object:Gem::Version
|
|
98
|
+
version: 3.2.0
|
|
99
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
requirements: []
|
|
105
|
+
rubygems_version: 4.0.6
|
|
106
|
+
specification_version: 4
|
|
107
|
+
summary: A Ruby MIDI library inspired by the W3C Web MIDI API
|
|
108
|
+
test_files: []
|