maca-gamelan 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/README.rdoc +27 -0
  2. metadata +76 -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,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: maca-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
+ - !ruby/object:Gem::Dependency
26
+ name: PriorityQueue
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.1.2
34
+ version:
35
+ description:
36
+ email: jvoorhis@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README.rdoc
43
+ files: []
44
+
45
+ has_rdoc: true
46
+ homepage: http://github.com/jvoorhis/gamelan
47
+ post_install_message:
48
+ rdoc_options:
49
+ - --title
50
+ - Gamelan
51
+ - --main
52
+ - README.rdoc
53
+ - --line-numbers
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: "0"
61
+ version:
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ version:
68
+ requirements: []
69
+
70
+ rubyforge_project: gamelan
71
+ rubygems_version: 1.2.0
72
+ signing_key:
73
+ specification_version: 2
74
+ summary: Gamelan is a good-enough soft real-time event scheduler, written in Ruby, especially for music applications.
75
+ test_files: []
76
+