jvoorhis-gamelan 0.3

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.
Files changed (2) hide show
  1. data/README.rdoc +27 -0
  2. metadata +66 -0
data/README.rdoc ADDED
@@ -0,0 +1,27 @@
1
+ = Gamelan
2
+
3
+ Gamelan is a good-enough soft real-time event scheduler especially for music
4
+ applications. It exposes a simple API for executing Ruby code at a required
5
+ time. Uses include sending MIDI or OSC messages to external applications or
6
+ hardware.
7
+
8
+ Gamelan also makes life easier by supporting logical time. Logical time is
9
+ reflected in the scheduler's phase. The unit in logical time is the beat, and
10
+ the Scheduler's phase will increment by 1.0 with every beat.
11
+
12
+ Logical time varies with real time according to the tempo, which is specified
13
+ in bpm. For example, the Scheduler's phase will increment by 2.0 for every
14
+ second that elapses when using the default tempo of 120bpm. Applications are
15
+ free to alter the tempo at any time, including from within tasks.
16
+
17
+ = Notes
18
+
19
+ The author admits that Ruby is not at all friendly to realtime applications.
20
+ No guarantees are made about the scheduler's performance. It will not drift
21
+ (it will always stay in sync with the system clock), but jitter is inevitable.
22
+ This is minimized by using a hybrid spinlock implementation to wait between
23
+ dispatches, and by using a reasonably efficient priority queue to store Tasks.
24
+
25
+ The design is an elaboration of Topher Cyll's Timer implementation from his
26
+ book, <em>Practical Ruby Projects</em>, and the Priority Queue implementation
27
+ comes from Brian Amberg.
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jvoorhis-gamelan
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.3"
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Voorhis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-05-16 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: PriorityQueue
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.2
24
+ version:
25
+ description:
26
+ email: jvoorhis@gmail.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - README.rdoc
33
+ files: []
34
+
35
+ has_rdoc: true
36
+ homepage: http://github.com/jvoorhis/gamelan
37
+ post_install_message:
38
+ rdoc_options:
39
+ - --title
40
+ - Gamelan
41
+ - --main
42
+ - README.rdoc
43
+ - --line-numbers
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: "0"
51
+ version:
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ version:
58
+ requirements: []
59
+
60
+ rubyforge_project: gamelan
61
+ rubygems_version: 1.2.0
62
+ signing_key:
63
+ specification_version: 2
64
+ summary: Gamelan is a good-enough soft real-time event scheduler, written in Ruby, especially for music applications.
65
+ test_files: []
66
+