rubysketch 0.7.9 → 0.7.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4dad927342da7a253edae0172bc07d21de184c7b0d383fcee4b99cdc955ee419
4
- data.tar.gz: bb250fb9029706e415913d5974e6c39b4cf2c44fe8316489cb26974e546b573d
3
+ metadata.gz: f6117a060c48821e64824491702ec565a694a7e0cd79ae493679b29a693ccf60
4
+ data.tar.gz: 5d24fc2dd743608c4c33c6dc8db16b3c5f9ef3e036075286a359d03bf93e0879
5
5
  SHA512:
6
- metadata.gz: d225e85114e186fe587cbd490b5d4431d251d600a5c35aeeb5fb34bf05ac5e02d002efd62038066f4df4df130f897d3ae7120474d1211cf7f3ab9c5f19a73765
7
- data.tar.gz: e210ecf172241cd6e1c73afcd6ed70d747d19c6701b225216c3f9b35ded60f029b76dc50ca302f9542aae4d15073c12fa632f8b6a5078bbc8a423e1475202753
6
+ metadata.gz: 3d6499c19610d6506b77ae6e5d415f0acb1457429895e48a1ea67f1065c4dfa1c8d0991df5ba232eb40390971b5a7a6f6f124de53ef9e86abdc294df92994a48
7
+ data.tar.gz: 1e6505b54aaeadda4a040cefa0f14472466cbc4734a3b85cc2eccee164451f6f004186aa8cb719fdf629da5bbd2e2c30bf0029669cd64a03fddb2bb709241020
data/ChangeLog.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # rubysketch ChangeLog
2
2
 
3
3
 
4
+ ## [v0.7.10] - 2025-05-11
5
+
6
+ - Add notePresse() and noteReleased()
7
+ - Add noteNumber, noteFrequency, and noteVelocity
8
+
9
+
4
10
  ## [v0.7.9] - 2025-04-08
5
11
 
6
12
  - Update dependencies: xot, rucy, beeps, rays, reflex, processing
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.9
1
+ 0.7.10
@@ -13,19 +13,66 @@ module RubySketch
13
13
  # @private
14
14
  def initialize(window)
15
15
  super
16
- @window__ = window
17
- @timers__, @firingTimers__, @nextTimerID__ = {}, {}, 0
16
+ @window__ = window
17
+ @timers__ = {}
18
+ @firingTimers__ = {}
19
+ @nextTimerID__ = 0
20
+ @noteNumber__ = 69
21
+ @noteFrequency__ = 440
22
+ @noteVelocity__ = 1
18
23
 
19
24
  @world__ = createWorld
20
25
 
26
+ updateNoteStates = -> event {
27
+ @noteNumber__ = event.note
28
+ @noteFrequency__ = event.frequency
29
+ @noteVelocity__ = event.velocity
30
+ }
31
+
21
32
  @window__.update_window = proc do
22
33
  fireTimers__
23
34
  Beeps.process_streams!
35
+ Reflex.process_events!
36
+ end
37
+
38
+ @window__.note_on = proc do |e|
39
+ updateNoteStates.call e
40
+ @notePressedBlock__&.call
41
+ end
42
+
43
+ @window__.note_off = proc do |e|
44
+ updateNoteStates.call e
45
+ @noteReleasedBlock__&.call
24
46
  end
25
47
 
26
48
  noSmooth
27
49
  end
28
50
 
51
+ # @private
52
+ def hasUserBlocks__()
53
+ super ||
54
+ @notePressedBlock__ ||
55
+ @noteReleasedBlock__
56
+ end
57
+
58
+ # Defines notePressed block.
59
+ #
60
+ # @return [nil] nil
61
+ #
62
+ def notePressed(&block)
63
+ @notePressedBlock__ = block if block
64
+ nil
65
+ end
66
+
67
+ # Defines noteReleased block.
68
+ #
69
+ # @return [nil] nil
70
+ #
71
+ def noteReleased(&block)
72
+ @noteReleasedBlock__ = block if block
73
+ nil
74
+ end
75
+
29
76
  # Calls block after specified seconds
30
77
  #
31
78
  # @param [Numeric] seconds Time at which the block is called
@@ -262,6 +309,30 @@ module RubySketch
262
309
  Sound.load path
263
310
  end
264
311
 
312
+ # Returns the last note number that was pressed or released.
313
+ #
314
+ # @return [Numeric] last note number
315
+ #
316
+ def noteNumber()
317
+ @noteNumber__
318
+ end
319
+
320
+ # Returns the last note frequency that was pressed or released.
321
+ #
322
+ # @return [Numeric] last note frequency
323
+ #
324
+ def noteFrequency()
325
+ @noteFrequency__
326
+ end
327
+
328
+ # Returns the last note velocity that was pressed or released.
329
+ #
330
+ # @return [Numeric] last note velocity
331
+ #
332
+ def noteVelocity()
333
+ @noteVelocity__
334
+ end
335
+
265
336
  # Sets gravity for the physics engine.
266
337
  #
267
338
  # @overload gravity(vec)
data/rubysketch.gemspec CHANGED
@@ -25,12 +25,12 @@ Gem::Specification.new do |s|
25
25
  s.platform = Gem::Platform::RUBY
26
26
  s.required_ruby_version = '>= 3.0.0'
27
27
 
28
- s.add_dependency 'xot', '~> 0.3.6', '>= 0.3.6'
29
- s.add_dependency 'rucy', '~> 0.3.6', '>= 0.3.6'
30
- s.add_dependency 'beeps', '~> 0.3.6', '>= 0.3.6'
31
- s.add_dependency 'rays', '~> 0.3.6', '>= 0.3.6'
32
- s.add_dependency 'reflexion', '~> 0.3.6', '>= 0.3.6'
33
- s.add_dependency 'processing', '~> 1.1', '>= 1.1.8'
28
+ s.add_dependency 'xot', '~> 0.3.7', '>= 0.3.7'
29
+ s.add_dependency 'rucy', '~> 0.3.7', '>= 0.3.7'
30
+ s.add_dependency 'beeps', '~> 0.3.7', '>= 0.3.7'
31
+ s.add_dependency 'rays', '~> 0.3.7', '>= 0.3.7'
32
+ s.add_dependency 'reflexion', '~> 0.3.7', '>= 0.3.7'
33
+ s.add_dependency 'processing', '~> 1.1', '>= 1.1.9'
34
34
 
35
35
  s.files = `git ls-files`.split $/
36
36
  s.test_files = s.files.grep %r{^(test|spec|features)/}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubysketch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.7.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-08 00:00:00.000000000 Z
11
+ date: 2025-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -16,100 +16,100 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.6
19
+ version: 0.3.7
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.3.6
22
+ version: 0.3.7
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 0.3.6
29
+ version: 0.3.7
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.3.6
32
+ version: 0.3.7
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rucy
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.3.6
39
+ version: 0.3.7
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 0.3.6
42
+ version: 0.3.7
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 0.3.6
49
+ version: 0.3.7
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 0.3.6
52
+ version: 0.3.7
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: beeps
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 0.3.6
59
+ version: 0.3.7
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 0.3.6
62
+ version: 0.3.7
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: 0.3.6
69
+ version: 0.3.7
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 0.3.6
72
+ version: 0.3.7
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: rays
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: 0.3.6
79
+ version: 0.3.7
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.3.6
82
+ version: 0.3.7
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.3.6
89
+ version: 0.3.7
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 0.3.6
92
+ version: 0.3.7
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: reflexion
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: 0.3.6
99
+ version: 0.3.7
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.3.6
102
+ version: 0.3.7
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: 0.3.6
109
+ version: 0.3.7
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: 0.3.6
112
+ version: 0.3.7
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: processing
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -119,7 +119,7 @@ dependencies:
119
119
  version: '1.1'
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 1.1.8
122
+ version: 1.1.9
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,7 +129,7 @@ dependencies:
129
129
  version: '1.1'
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 1.1.8
132
+ version: 1.1.9
133
133
  description: A game engine based on the Processing API.
134
134
  email: xordog@gmail.com
135
135
  executables: []