launchpad 0.2.2 → 0.3.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.
metadata CHANGED
@@ -1,62 +1,111 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: launchpad
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Thomas Jachmann
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2010-02-24 00:00:00 +01:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2013-03-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: portmidi
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.0.6
17
22
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
23
29
  version: 0.0.6
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: thoughtbot-shoulda
30
+ - !ruby/object:Gem::Dependency
31
+ name: ffi
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: minitest-reporters
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
27
70
  type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
34
- version:
35
- - !ruby/object:Gem::Dependency
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
36
79
  name: mocha
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
37
86
  type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: "0"
44
- version:
45
- description: This gem provides an interface to access novation's launchpad programmatically. LEDs can be lighted and button presses can be evaluated using launchpad's MIDI input/output.
46
- email: tom.j@gmx.net
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: This gem provides an interface to access novation's launchpad programmatically.
95
+ LEDs can be lighted and button presses can be evaluated using launchpad's MIDI input/output.
96
+ email:
97
+ - self@thomasjachmann.com
47
98
  executables: []
48
-
49
99
  extensions: []
50
-
51
- extra_rdoc_files:
52
- - LICENSE
53
- - README.rdoc
54
- files:
55
- - .document
100
+ extra_rdoc_files: []
101
+ files:
56
102
  - .gitignore
103
+ - .travis.yml
104
+ - Gemfile
57
105
  - LICENSE
58
106
  - README.rdoc
59
107
  - Rakefile
108
+ - examples/binary_clock.rb
60
109
  - examples/color_picker.rb
61
110
  - examples/colors.rb
62
111
  - examples/doodle.rb
@@ -64,55 +113,48 @@ files:
64
113
  - examples/drawing_board.rb
65
114
  - examples/feedback.rb
66
115
  - examples/reset.rb
67
- - examples/setup.rb
68
- - experiments/wandering_dot.rb
69
116
  - launchpad.gemspec
70
117
  - lib/launchpad.rb
71
118
  - lib/launchpad/device.rb
72
119
  - lib/launchpad/errors.rb
73
120
  - lib/launchpad/interaction.rb
121
+ - lib/launchpad/logging.rb
74
122
  - lib/launchpad/midi_codes.rb
75
123
  - lib/launchpad/version.rb
76
124
  - test/helper.rb
77
125
  - test/test_device.rb
78
126
  - test/test_interaction.rb
79
- has_rdoc: true
80
- homepage: http://github.com/thomasjachmann/launchpad
127
+ homepage: https://github.com/thomasjachmann/launchpad
81
128
  licenses: []
82
-
83
129
  post_install_message:
84
- rdoc_options:
85
- - --charset=UTF-8
86
- require_paths:
130
+ rdoc_options: []
131
+ require_paths:
87
132
  - lib
88
- required_ruby_version: !ruby/object:Gem::Requirement
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: "0"
93
- version:
94
- required_rubygems_version: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: "0"
99
- version:
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ segments:
140
+ - 0
141
+ hash: 1494178665931121358
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ! '>='
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ segments:
149
+ - 0
150
+ hash: 1494178665931121358
100
151
  requirements: []
101
-
102
- rubyforge_project:
103
- rubygems_version: 1.3.5
152
+ rubyforge_project: launchpad
153
+ rubygems_version: 1.8.23
104
154
  signing_key:
105
155
  specification_version: 3
106
156
  summary: A gem for accessing novation's launchpad programmatically and easily.
107
- test_files:
157
+ test_files:
108
158
  - test/helper.rb
109
159
  - test/test_device.rb
110
160
  - test/test_interaction.rb
111
- - examples/color_picker.rb
112
- - examples/colors.rb
113
- - examples/doodle.rb
114
- - examples/double_buffering.rb
115
- - examples/drawing_board.rb
116
- - examples/feedback.rb
117
- - examples/reset.rb
118
- - examples/setup.rb
data/.document DELETED
@@ -1,3 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- LICENSE
@@ -1,5 +0,0 @@
1
- # normally, this is done by rubygems (or whatever you use for your library management)
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
-
4
- require 'rubygems'
5
- require 'launchpad'
@@ -1,116 +0,0 @@
1
- require 'rubygems'
2
- require 'midiator'
3
-
4
- @midi = MIDIator::Interface.new
5
- @midi.autodetect_driver
6
-
7
- def note_for(x, y)
8
- y * 16 + x
9
- end
10
-
11
- def on_all(&block)
12
- (0..7).each do |row|
13
- row_start = row * 16
14
- (row_start..(row_start+7)).each(&block)
15
- end
16
- end
17
-
18
- def rand_pos
19
- rand(8)
20
- end
21
-
22
- def rand_dir
23
- rand(3) - 1
24
- end
25
-
26
- def new_dir(dir, pos)
27
- if (dir <= 0 && pos == 0) || pos == 7
28
- new_dir = rand_dir.abs
29
- new_dir = -new_dir if dir > 0
30
- new_dir
31
- else
32
- dir
33
- end
34
- end
35
-
36
- def change_dir(dir, pos, change)
37
- if (dir <= 0 && pos == 0) || pos == 7
38
- -dir
39
- elsif change
40
- case dir
41
- when -1 then -rand(2)
42
- when 0 then rand(2) == 0 ? -1 : 1
43
- when 1 then rand(2)
44
- end
45
- else
46
- dir
47
- end
48
- end
49
-
50
- def new_pos(pos, dir)
51
- [0, [pos + dir, 7].min].max
52
- end
53
-
54
- def end_it
55
- sleep 1
56
- final_note = note_for(@pos_x, @pos_y)
57
- 4.times do
58
- on_all {|note| @midi.note_on(note, 0, 1) unless note == final_note}
59
- sleep 0.5
60
- on_all {|note| @midi.note_on(note, 0, 16) unless note == final_note}
61
- sleep 0.5
62
- end
63
- on_all {|note| @midi.note_off(note, 0)}
64
- sleep 0.5
65
- end
66
-
67
- remaining_notes = []
68
- on_all do |note|
69
- remaining_notes << note
70
- @midi.note_off(note, 0)
71
- end
72
- remaining_notes.uniq!
73
-
74
- sleep (ARGV[0] || 0).to_i
75
-
76
- @pos_x = rand_pos
77
- @pos_y = rand_pos
78
- @dir_x = rand_dir
79
- @dir_y = rand_dir
80
-
81
- new_note = note_for(@pos_x, @pos_y)
82
- old_note = nil
83
-
84
- on_all {|note| @midi.note_on(note, 0, 3)}
85
- on_all {|note| @midi.note_off(note, 0) unless note == new_note}
86
-
87
- sleep 2
88
- sleep_time = 1
89
-
90
- loop do
91
- unless old_note == new_note || old_note.nil?
92
- @midi.note_off(old_note, 0)
93
- @midi.note_on(old_note, 0, 16)
94
- @midi.note_on(new_note, 0, 3)
95
- end
96
- remaining_notes.delete(new_note)
97
- end_it && break if remaining_notes.empty?
98
- change = rand(1)
99
- @dir_x = change_dir(@dir_x, @pos_x, change == 0)
100
- @dir_y = change_dir(@dir_y, @pos_y, change != 0)
101
- #@dir_x = new_dir(@dir_x, @pos_x)
102
- #@dir_y = new_dir(@dir_y, @pos_y)
103
- #while @dir_x == 0 && @dir_y == 0 || (old_note.nil? && (@dir_x == 0 || @dir_y == 0))
104
- # if rand(1) == 0
105
- # @dir_x = new_dir(@dir_x, @pos_x)
106
- # else
107
- # @dir_y = new_dir(@dir_y, @pos_y)
108
- # end
109
- #end
110
- @pos_x = new_pos(@pos_x, @dir_x)
111
- @pos_y = new_pos(@pos_y, @dir_y)
112
- old_note = new_note
113
- new_note = note_for(@pos_x, @pos_y)
114
- sleep sleep_time
115
- sleep_time *= 0.96
116
- end