alda-rb 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +13 -3
- data/bin/console +6 -4
- data/examples/alternate_endings.rb +26 -0
- data/examples/bwv846_prelude.rb +74 -0
- data/examples/clapping_music.rb +25 -0
- data/examples/dot_accessor.rb +8 -0
- data/examples/entropy.rb +32 -0
- data/examples/hello_world.rb +8 -0
- data/examples/key_signature.rb +18 -0
- data/examples/midi_note_numbers.rb +9 -0
- data/examples/modes2.rb +12 -0
- data/examples/multi_poly.rb +14 -0
- data/examples/nesting.rb +26 -0
- data/examples/phase.rb +14 -0
- data/examples/seconds_and_milliseconds.rb +10 -0
- data/examples/showcase.rb +30 -0
- data/lib/alda-rb/version.rb +3 -1
- data/lib/alda-rb.rb +112 -26
- metadata +16 -9
- data/.idea/$CACHE_FILE$ +0 -19
- data/.idea/alda-rb.iml +0 -18
- data/.idea/dictionaries +0 -6
- data/.idea/misc.xml +0 -12
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -6
- data/.idea/workspace.xml +0 -273
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1a40fb3e4fa0d3ae035cbaf901b0fa209676743cd36b31168b9e04af9bf6aaf
|
4
|
+
data.tar.gz: df7faaf786abc7e90260864d5abaa275c3702f81b7ad9b114b287ca940d07dee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7378bb4040c96cf509ea800412000f5f1d676a5e2d3e62016906c928c9991fc6f2fd0358989e5ea0d0e8526767fcbc8d8942ccbb9f7742fe2106f7ab44d0596f
|
7
|
+
data.tar.gz: bfb477c6af6d034c3b4b05ddf8a5e73fd2887584eae8b959487c72dddcd7deda77617e2c6b3392b2cc71574ac81a05df9825cd686a7de9f3eb79e6d8731ddb09
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Alda-rb
|
2
2
|
|
3
3
|
A Ruby library for live-coding music with [Alda](https://alda.io/).
|
4
|
-
Also provides
|
4
|
+
Also provides an Alda DSL in Ruby.
|
5
5
|
|
6
6
|
## Installation
|
7
7
|
|
@@ -31,6 +31,7 @@ Alda.up if Alda.down?
|
|
31
31
|
puts Alda.version
|
32
32
|
|
33
33
|
score = Alda::Score.new { o4; c4/e/g; -d8; r8_16; +f4; o5; c2 }
|
34
|
+
|
34
35
|
Alda::Score.new do
|
35
36
|
piano_
|
36
37
|
quant 200
|
@@ -43,6 +44,15 @@ Alda::Score.new do
|
|
43
44
|
v2; o6
|
44
45
|
motif = -> { c200ms; d500ms }
|
45
46
|
8.times { motif * 2; e400ms_4; t4 { a; b; c } }
|
47
|
+
_ended
|
48
|
+
|
49
|
+
violin_
|
50
|
+
__ended
|
51
|
+
->i do
|
52
|
+
c2; d4; e2_4; e2; d4; c2_4; c2; e4; d2
|
53
|
+
i == 0 ? (c4; d1_2) : (d4; c1_2)
|
54
|
+
end * 2
|
55
|
+
|
46
56
|
end.play
|
47
57
|
```
|
48
58
|
|
@@ -54,7 +64,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
54
64
|
|
55
65
|
## Contributing
|
56
66
|
|
57
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
67
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/UlyssesZh/alda-rb. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/UlyssesZh/alda-rb/blob/master/CODE_OF_CONDUCT.md).
|
58
68
|
|
59
69
|
|
60
70
|
## License
|
@@ -63,4 +73,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
63
73
|
|
64
74
|
## Code of Conduct
|
65
75
|
|
66
|
-
Everyone interacting in the
|
76
|
+
Everyone interacting in the alda-rb project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/UlyssesZh/alda-rb/blob/master/CODE_OF_CONDUCT.md).
|
data/bin/console
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
|
-
require
|
4
|
-
|
4
|
+
require 'bundler/setup'
|
5
|
+
require_relative '../lib/alda-rb'
|
5
6
|
|
6
7
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
8
|
# with your gem easier. You can also use a different console, if you like.
|
9
|
+
include Alda
|
8
10
|
|
9
11
|
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
12
|
# require "pry"
|
11
13
|
# Pry.start
|
12
14
|
|
13
|
-
require
|
14
|
-
IRB.start
|
15
|
+
require 'irb'
|
16
|
+
IRB.start __FILE__
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
# transcribed from:
|
6
|
+
# https://www.rosegardenmusic.com/tutorials/supplemental/n-endings/index.html
|
7
|
+
|
8
|
+
Alda::Score.new do
|
9
|
+
vibraphone_ 'vibes-1'
|
10
|
+
panning 10
|
11
|
+
s do
|
12
|
+
a; b8; +o; d; -o; b; g; b; +o; c
|
13
|
+
e4; -o; a; +o; c; -o; g
|
14
|
+
s{ g; +o; g8; f; e; c; -o; a4 }%1..2
|
15
|
+
s{ b8; +o; d; g2_4 }%3
|
16
|
+
end * 3
|
17
|
+
|
18
|
+
vibraphone_ 'vibes-2'
|
19
|
+
panning 90
|
20
|
+
s do
|
21
|
+
a; +o; e; -o; a; r
|
22
|
+
b; r; b; r
|
23
|
+
s{ g; r; +o; g; -o; g }%1..2
|
24
|
+
s{ +o; d; r; a; g }%3
|
25
|
+
end * 3
|
26
|
+
end.play
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
# Prelude and Fugue in C major, BWV 864
|
6
|
+
# (Prelude)
|
7
|
+
#
|
8
|
+
# J. S. Bach
|
9
|
+
#
|
10
|
+
# sheet music:
|
11
|
+
# http://www.freesheetpianomusic.com/bach/content/Well-Tempered%20Clavier_Book_1/Prelude%20and%20Fugue%20No.1%20C%20major%20BWV%20846.pdf
|
12
|
+
|
13
|
+
include Alda
|
14
|
+
|
15
|
+
Score.new do
|
16
|
+
def Note.absolute event_list, pitch, duration
|
17
|
+
/(?<letter>[a-g][-+_]*)(?<octave>\d*)/ =~ pitch
|
18
|
+
octave = @last_octave ||= '4' if octave.empty?
|
19
|
+
event_list.events.push new "o#{@last_octave = octave} #{letter}", duration
|
20
|
+
end
|
21
|
+
|
22
|
+
piano_; tempo 60
|
23
|
+
%w[
|
24
|
+
c e g c5 e
|
25
|
+
c4 d a d5 f
|
26
|
+
b3 d4 g d5 f
|
27
|
+
c4 e g c5 e
|
28
|
+
c4 e a e5 a
|
29
|
+
c4 d f+ a d5
|
30
|
+
b3 d4 g d5 g5
|
31
|
+
b3 c4 e g c5
|
32
|
+
a3 c4 e g c5
|
33
|
+
d3 a d4 f+ c5
|
34
|
+
g3 b d4 g b
|
35
|
+
g3 b- e4 g c+5
|
36
|
+
f3 a d4 a d5
|
37
|
+
f3 a- d4 f b
|
38
|
+
e3 g c4 g c5
|
39
|
+
e3 f a c4 f
|
40
|
+
d3 f a c4 f
|
41
|
+
g2 d3 g b f4
|
42
|
+
c3 e g c4 e
|
43
|
+
c3 g b- c4 e
|
44
|
+
f2 f3 a c4 e
|
45
|
+
f+2 c3 a c4 e-
|
46
|
+
a-2 f3 b c4 d
|
47
|
+
g2 f3 g b d4
|
48
|
+
g2 e3 g c4 e
|
49
|
+
g2 d3 g c4 f
|
50
|
+
g2 d3 g b f4
|
51
|
+
g2 e-3 a c4 f+
|
52
|
+
g2 e3 g c4 g
|
53
|
+
g2 d3 g c4 f
|
54
|
+
g2 d3 g b f4
|
55
|
+
c2 c3 g b- e4
|
56
|
+
].each_slice 5 do |n1, n2, *notes|
|
57
|
+
s do
|
58
|
+
v1; Note.absolute self, n1, '2'
|
59
|
+
v2; r16; Note.absolute self, n2, '4..'
|
60
|
+
v3; r8; s{ notes.each { Note.absolute self, _1, '16' } }*2
|
61
|
+
end * 2
|
62
|
+
end
|
63
|
+
alda_code <<~ENDING
|
64
|
+
V1:
|
65
|
+
o2 c1 | c1 | c1~1s
|
66
|
+
V2:
|
67
|
+
o3 r16 c2... | r16 <b2... | >c1~1s
|
68
|
+
V3:
|
69
|
+
o3
|
70
|
+
r8 f16 a > c f c < a > c < a f a f d f d
|
71
|
+
r8 > g16 b > d f d < b > d < b g b d f e d
|
72
|
+
e1~1s/g/>c
|
73
|
+
ENDING
|
74
|
+
end.play
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
# Clapping Music (1972)
|
6
|
+
# for two performers
|
7
|
+
#
|
8
|
+
# Steve Reich
|
9
|
+
#
|
10
|
+
# sheet music:
|
11
|
+
# https://sites.ualberta.ca/~michaelf/SEM-O/SEM-O_2014/Steve's%20piece/clapping_reich.jpg
|
12
|
+
|
13
|
+
Alda::Score.new do
|
14
|
+
pattern = %i[clap clap clap rest clap clap rest clap rest clap clap rest]
|
15
|
+
pattern.define_singleton_method(:round_shift) { push shift }
|
16
|
+
Alda::Sequence.class_exec do
|
17
|
+
define_method(:clap) { +d }; define_method(:rest) { r }
|
18
|
+
define_method(:play) { pattern.each { __send__ _1 } }
|
19
|
+
end
|
20
|
+
|
21
|
+
tempo! 172
|
22
|
+
midi_percussion_; o2; set_note_length 8
|
23
|
+
v1; s{ play }*(12*13)
|
24
|
+
v2; 13.times { s{ play; pattern.round_shift }*12 }
|
25
|
+
end.play
|
data/examples/entropy.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
REST_RATE = 0.15
|
6
|
+
MS_LOWER = 30
|
7
|
+
MS_UPPER = 3000
|
8
|
+
OCTAVE_UPPER = 9
|
9
|
+
|
10
|
+
Alda::Score.new do
|
11
|
+
random_note = -> do
|
12
|
+
ms = -> { duration ms rand(MS_UPPER - MS_LOWER) + MS_LOWER }
|
13
|
+
if rand < REST_RATE
|
14
|
+
pause ms.()
|
15
|
+
octave rand OCTAVE_UPPER
|
16
|
+
note pitch("abcdefg"[rand 7].to_sym,
|
17
|
+
%i[sharp flat natural][rand 3]), ms.()
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
midi_electric_piano_1_
|
22
|
+
panning 25
|
23
|
+
random_note * 50
|
24
|
+
|
25
|
+
midi_timpani_
|
26
|
+
panning 50
|
27
|
+
random_note * 50
|
28
|
+
|
29
|
+
midi_celesta_
|
30
|
+
panning 75
|
31
|
+
random_note * 50
|
32
|
+
end.play
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
Alda::Score.new do
|
6
|
+
vibraphone_
|
7
|
+
quant 200
|
8
|
+
|
9
|
+
key_signature 'f+ c+ g+'
|
10
|
+
a8; b; +o; c; d; e; f; g; a; -o
|
11
|
+
a; b; +o; ~c; d; e; ~f; ~g; a; -o
|
12
|
+
|
13
|
+
key_signature [:g, :minor]
|
14
|
+
g; a; b; +o; +c; d; e; +f; g; -o
|
15
|
+
|
16
|
+
key_signature e: [:flat], b: [:flat]
|
17
|
+
g1_1/b/d
|
18
|
+
end.play
|
data/examples/modes2.rb
ADDED
data/examples/nesting.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
Alda::Score.new do
|
6
|
+
piano_
|
7
|
+
|
8
|
+
v1
|
9
|
+
c8; d; e; f; g2_
|
10
|
+
|
11
|
+
v2
|
12
|
+
s{ c8; d }*2; e
|
13
|
+
f; g*3
|
14
|
+
t do
|
15
|
+
t{ c; c }
|
16
|
+
s{ g/e/c; s{ d }*2 }
|
17
|
+
s{ c; d }*5
|
18
|
+
end * 5
|
19
|
+
a/b/c; b; c/e
|
20
|
+
|
21
|
+
v3
|
22
|
+
a8; b; +o; c2_
|
23
|
+
|
24
|
+
clarinet_
|
25
|
+
a2; e
|
26
|
+
end.play
|
data/examples/phase.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
Alda::Score.new do
|
6
|
+
tempos = { violin_: 100, viola_: 105, cello_: 110 }
|
7
|
+
|
8
|
+
tempos.each do |ins, tempo|
|
9
|
+
__send__ ins
|
10
|
+
tempo tempo
|
11
|
+
end
|
12
|
+
tempos.keys.lazy.map { __send__ _1 }.inject :/
|
13
|
+
s{ e8; f; g }*99
|
14
|
+
end.play
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alda-rb'
|
4
|
+
|
5
|
+
puts Alda.version
|
6
|
+
|
7
|
+
score = Alda::Score.new { o4; c4/e/g; -d8; r8_16; +f4; o5; c2 }
|
8
|
+
|
9
|
+
Alda::Score.new do
|
10
|
+
piano_
|
11
|
+
quant 200
|
12
|
+
v1
|
13
|
+
5.times do |t|
|
14
|
+
transpose t
|
15
|
+
import score
|
16
|
+
note midi_note(30 + t * t), duration(note_length 1)
|
17
|
+
end
|
18
|
+
v2; o6
|
19
|
+
motif = -> { c200ms; d500ms }
|
20
|
+
8.times { motif * 2; e400ms_4; t4 { a; b; c } }
|
21
|
+
_ended
|
22
|
+
|
23
|
+
violin_
|
24
|
+
__ended
|
25
|
+
->i do
|
26
|
+
c2; d4; e2_4; e2; d4; c2_4; c2; e4; d2
|
27
|
+
i == 0 ? (c4; d1_2) : (d4; c1_2)
|
28
|
+
end * 2
|
29
|
+
|
30
|
+
end.play
|
data/lib/alda-rb/version.rb
CHANGED
data/lib/alda-rb.rb
CHANGED
@@ -7,7 +7,7 @@ class Array
|
|
7
7
|
end
|
8
8
|
class Hash
|
9
9
|
def to_alda_code
|
10
|
-
"{#{to_a.
|
10
|
+
"{#{to_a.reduce(:+).map(&:to_alda_code).join ' '}}"
|
11
11
|
end
|
12
12
|
end
|
13
13
|
class String
|
@@ -25,6 +25,11 @@ class Numeric
|
|
25
25
|
inspect
|
26
26
|
end
|
27
27
|
end
|
28
|
+
class Range
|
29
|
+
def to_alda_code
|
30
|
+
"#{first}-#{last}"
|
31
|
+
end
|
32
|
+
end
|
28
33
|
class Proc
|
29
34
|
# Runs +self+ for +n+ times.
|
30
35
|
def * n
|
@@ -48,6 +53,7 @@ module Alda
|
|
48
53
|
|
49
54
|
# The method give Alda# ability to invoke +alda+ at the command line,
|
50
55
|
# using +name+ as subcommand and +args+ as arguments.
|
56
|
+
# +opts+ are converted to command line options.
|
51
57
|
#
|
52
58
|
# The return value is the string output by the command in STDOUT.
|
53
59
|
#
|
@@ -55,12 +61,15 @@ module Alda
|
|
55
61
|
# @example
|
56
62
|
# Alda.version
|
57
63
|
# # => "Client version: 1.4.0\nServer version: [27713] 1.4.0\n"
|
58
|
-
# Alda.parse
|
64
|
+
# Alda.parse code: 'bassoon: o3 c'
|
59
65
|
# # => "{\"chord-mode\":false,\"current-instruments\":...}\n"
|
60
66
|
# Alda.sandwich
|
61
67
|
# # => Alda::CommandLineError (Expected a command, got sandwich)
|
62
|
-
def self.method_missing name, *args
|
68
|
+
def self.method_missing name, *args, **opts
|
63
69
|
name = name.to_s.gsub ?_, ?-
|
70
|
+
args.concat opts.map { |key, val|
|
71
|
+
["--#{key.to_s.gsub ?_, ?-}", val.to_s]
|
72
|
+
}.flatten
|
64
73
|
output = IO.popen [executable, name, *args], &:read
|
65
74
|
raise CommandLineError.new $?, output if $?.exitstatus.nonzero?
|
66
75
|
output
|
@@ -94,7 +103,7 @@ module Alda
|
|
94
103
|
end
|
95
104
|
|
96
105
|
# Including this module can make your class have the ability
|
97
|
-
# to have
|
106
|
+
# to have an event list.
|
98
107
|
# See docs below to get an overview of its functions.
|
99
108
|
module EventList
|
100
109
|
|
@@ -120,20 +129,22 @@ module Alda
|
|
120
129
|
#
|
121
130
|
# 5. Starting with "r": rest. See Rest#.
|
122
131
|
#
|
123
|
-
# 6.
|
132
|
+
# 6. "x": chord. See Chord#.
|
133
|
+
#
|
134
|
+
# 7. "s": sequence. See Sequence#.
|
124
135
|
#
|
125
|
-
#
|
136
|
+
# 8. Starting with "o": octave. See Octave#.
|
126
137
|
#
|
127
|
-
#
|
138
|
+
# 9. Starting with "v": voice. See Voice#.
|
128
139
|
#
|
129
|
-
#
|
140
|
+
# 10. Starting with "__" (2 underlines): at marker. See AtMarker#.
|
130
141
|
#
|
131
|
-
#
|
142
|
+
# 11. Starting with "_" (underline): marker. See Marker#.
|
132
143
|
#
|
133
144
|
# Notes cannot have dots.
|
134
145
|
# To tie multiple durations, +_+ is used instead of +~+.
|
135
146
|
#
|
136
|
-
# All the appended events are contained in
|
147
|
+
# All the appended events are contained in an EventContainer# object,
|
137
148
|
# which is to be returned.
|
138
149
|
#
|
139
150
|
# These sugars forms a DSL.
|
@@ -153,6 +164,8 @@ module Alda
|
|
153
164
|
Rest.new duration
|
154
165
|
when /^x$/ =~ name
|
155
166
|
Chord.new &block
|
167
|
+
when /^s$/ =~ name
|
168
|
+
Sequence.new *args, &block
|
156
169
|
when /^o(?<num>\d*)$/ =~ name
|
157
170
|
Octave.new num
|
158
171
|
when /^v(?<num>\d+)$/ =~ name
|
@@ -171,8 +184,9 @@ module Alda
|
|
171
184
|
# Append the events of another EventList# object here.
|
172
185
|
# This method covers the disadvantage of alda's being unable to
|
173
186
|
# import scores from other files.
|
187
|
+
# See https://github.com/alda-lang/alda-core/issues/8.
|
174
188
|
def import event_list
|
175
|
-
@events
|
189
|
+
@events.concat event_list.events
|
176
190
|
end
|
177
191
|
|
178
192
|
# @param block to be passed with the EventList# object as +self+.
|
@@ -204,19 +218,43 @@ module Alda
|
|
204
218
|
end
|
205
219
|
end
|
206
220
|
|
207
|
-
# The class mixes in EventList# and provides
|
221
|
+
# The class mixes in EventList# and provides methods to play or parse.
|
208
222
|
class Score
|
209
223
|
include EventList
|
210
224
|
|
211
225
|
# Plays the score.
|
212
|
-
# @return
|
226
|
+
# @return The command line output of the +alda+ command.
|
213
227
|
# @example
|
214
228
|
# Alda::Score.new { piano_; c; d; e }.play
|
215
229
|
# # => "[27713] Parsing/evaluating...\n[27713] Playing...\n"
|
216
230
|
# # (and plays the sound)
|
217
|
-
|
231
|
+
# Alda::Score.new { piano_; c; d; e }.play from: 1
|
232
|
+
# # (plays only an E note)
|
233
|
+
def play **opts
|
218
234
|
Alda.stop
|
219
|
-
Alda.play
|
235
|
+
Alda.play code: self, **opts
|
236
|
+
end
|
237
|
+
|
238
|
+
# Parses the score.
|
239
|
+
# @return The JSON string of the parse result.
|
240
|
+
# @example
|
241
|
+
# Alda::Score.new { piano_; c }.parse output: :events
|
242
|
+
# # => "[{\"event-type\":...}]\n"
|
243
|
+
def parse **opts
|
244
|
+
Alda.parse code: self, **opts
|
245
|
+
end
|
246
|
+
|
247
|
+
# Exports the score.
|
248
|
+
# @return The command line output of the +alda+ command.
|
249
|
+
# @example
|
250
|
+
# Alda::Score.new { piano_; c }.export output: 'temp.mid'
|
251
|
+
# # (outputs a midi file called temp.mid)
|
252
|
+
def export **opts
|
253
|
+
Alda.export code: self, **opts
|
254
|
+
end
|
255
|
+
|
256
|
+
def to_s
|
257
|
+
events_alda_codes
|
220
258
|
end
|
221
259
|
end
|
222
260
|
|
@@ -224,11 +262,11 @@ module Alda
|
|
224
262
|
class Event
|
225
263
|
|
226
264
|
# The EventList# object that contains it.
|
227
|
-
# Note that it may not be directly contained, but with
|
265
|
+
# Note that it may not be directly contained, but with an EventContainer#
|
228
266
|
# object in the middle.
|
229
267
|
attr_accessor :parent
|
230
268
|
|
231
|
-
# The callback invoked when it is contained in
|
269
|
+
# The callback invoked when it is contained in an EventContainer#.
|
232
270
|
# It is overridden in InlineLisp#, so be aware if you want to
|
233
271
|
# override InlineLisp#on_contained.
|
234
272
|
# @example
|
@@ -253,12 +291,19 @@ module Alda
|
|
253
291
|
# The contained Event# object.
|
254
292
|
attr_accessor :event
|
255
293
|
|
294
|
+
# The repetition counts. +nil+ if none.
|
295
|
+
attr_accessor :count
|
296
|
+
|
297
|
+
# The repetition labels. Empty if none.
|
298
|
+
attr_accessor :labels
|
299
|
+
|
256
300
|
# @param event The Event# object to be contained.
|
257
301
|
# @param parent The EventList# object containing the event.
|
258
302
|
def initialize event, parent
|
259
303
|
@event = event
|
260
304
|
@parent = parent
|
261
305
|
@event.parent = @parent
|
306
|
+
@labels = []
|
262
307
|
@event.on_contained
|
263
308
|
end
|
264
309
|
|
@@ -284,11 +329,29 @@ module Alda
|
|
284
329
|
end
|
285
330
|
|
286
331
|
def to_alda_code
|
287
|
-
@event.to_alda_code
|
332
|
+
result = @event.to_alda_code
|
333
|
+
unless @labels.empty?
|
334
|
+
result.concat ?', @labels.map(&:to_alda_code).join(?,)
|
335
|
+
end
|
336
|
+
result.concat ?*, @count.to_alda_code if @count
|
337
|
+
result
|
338
|
+
end
|
339
|
+
|
340
|
+
# Marks repetition.
|
341
|
+
def * num
|
342
|
+
@count = num
|
343
|
+
end
|
344
|
+
|
345
|
+
# Marks alternative repetition.
|
346
|
+
def % labels
|
347
|
+
labels = [labels] unless labels.respond_to? :to_a
|
348
|
+
@labels.replace labels.to_a
|
288
349
|
end
|
289
350
|
|
290
351
|
def method_missing name, *args
|
291
|
-
@event.__send__ name, *args
|
352
|
+
result = @event.__send__ name, *args
|
353
|
+
result = self if result == @event
|
354
|
+
result
|
292
355
|
end
|
293
356
|
end
|
294
357
|
|
@@ -341,7 +404,7 @@ module Alda
|
|
341
404
|
# Alda::Score.new { piano_; +c }.play
|
342
405
|
# # (plays a C\# note)
|
343
406
|
def +@
|
344
|
-
@pitch
|
407
|
+
@pitch.concat ?+
|
345
408
|
self
|
346
409
|
end
|
347
410
|
|
@@ -350,7 +413,7 @@ module Alda
|
|
350
413
|
# Alda::Score.new { piano_; -d }.play
|
351
414
|
# # (plays a Db note)
|
352
415
|
def -@
|
353
|
-
@pitch
|
416
|
+
@pitch.concat ?-
|
354
417
|
self
|
355
418
|
end
|
356
419
|
|
@@ -359,12 +422,14 @@ module Alda
|
|
359
422
|
# Alda::Score.new { piano_; key_sig 'f+'; ~f }.play
|
360
423
|
# # (plays a F note)
|
361
424
|
def ~
|
362
|
-
@pitch
|
425
|
+
@pitch.concat ?_
|
363
426
|
self
|
364
427
|
end
|
365
428
|
|
366
429
|
def to_alda_code
|
367
|
-
@pitch + @duration
|
430
|
+
result = @pitch + @duration
|
431
|
+
result.concat ?*, @count.to_alda_code if @count
|
432
|
+
result
|
368
433
|
end
|
369
434
|
end
|
370
435
|
|
@@ -466,8 +531,20 @@ module Alda
|
|
466
531
|
|
467
532
|
def to_alda_code
|
468
533
|
result = @names.join ?/
|
469
|
-
result
|
470
|
-
result
|
534
|
+
result.concat " \"#{@arg}\"" if @arg
|
535
|
+
result.concat ?:
|
536
|
+
end
|
537
|
+
|
538
|
+
# @example
|
539
|
+
# Alda::Score.new do
|
540
|
+
# violin_/viola_/cello_('strings'); g1_1_1
|
541
|
+
# strings_.cello_; -o; c1_1_1
|
542
|
+
# end.play
|
543
|
+
def method_missing name, *args
|
544
|
+
name = name.to_s
|
545
|
+
return super unless name[-1] == ?_
|
546
|
+
name[-1] = ''
|
547
|
+
@names.last.concat ?., name
|
471
548
|
end
|
472
549
|
end
|
473
550
|
|
@@ -525,7 +602,7 @@ module Alda
|
|
525
602
|
end
|
526
603
|
end
|
527
604
|
|
528
|
-
# An at-marker event
|
605
|
+
# An at-marker event.
|
529
606
|
# @see Marker#
|
530
607
|
class AtMarker < Event
|
531
608
|
|
@@ -541,4 +618,13 @@ module Alda
|
|
541
618
|
?@ + @name
|
542
619
|
end
|
543
620
|
end
|
621
|
+
|
622
|
+
# A sequence event. Includes EventList#.
|
623
|
+
class Sequence < Event
|
624
|
+
include EventList
|
625
|
+
|
626
|
+
def to_alda_code
|
627
|
+
@events.to_alda_code
|
628
|
+
end
|
629
|
+
end
|
544
630
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alda-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ulysses Zhan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -18,13 +18,6 @@ extensions: []
|
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
20
|
- ".gitignore"
|
21
|
-
- ".idea/$CACHE_FILE$"
|
22
|
-
- ".idea/alda-rb.iml"
|
23
|
-
- ".idea/dictionaries"
|
24
|
-
- ".idea/misc.xml"
|
25
|
-
- ".idea/modules.xml"
|
26
|
-
- ".idea/vcs.xml"
|
27
|
-
- ".idea/workspace.xml"
|
28
21
|
- ".travis.yml"
|
29
22
|
- CODE_OF_CONDUCT.md
|
30
23
|
- Gemfile
|
@@ -34,6 +27,20 @@ files:
|
|
34
27
|
- alda-rb.gemspec
|
35
28
|
- bin/console
|
36
29
|
- bin/setup
|
30
|
+
- examples/alternate_endings.rb
|
31
|
+
- examples/bwv846_prelude.rb
|
32
|
+
- examples/clapping_music.rb
|
33
|
+
- examples/dot_accessor.rb
|
34
|
+
- examples/entropy.rb
|
35
|
+
- examples/hello_world.rb
|
36
|
+
- examples/key_signature.rb
|
37
|
+
- examples/midi_note_numbers.rb
|
38
|
+
- examples/modes2.rb
|
39
|
+
- examples/multi_poly.rb
|
40
|
+
- examples/nesting.rb
|
41
|
+
- examples/phase.rb
|
42
|
+
- examples/seconds_and_milliseconds.rb
|
43
|
+
- examples/showcase.rb
|
37
44
|
- lib/alda-rb.rb
|
38
45
|
- lib/alda-rb/version.rb
|
39
46
|
homepage: https://github.com/UlyssesZh/alda-rb
|
data/.idea/$CACHE_FILE$
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="ProjectInspectionProfilesVisibleTreeState">
|
4
|
-
<entry key="Project Default">
|
5
|
-
<profile-state>
|
6
|
-
<expanded-state>
|
7
|
-
<State>
|
8
|
-
<id />
|
9
|
-
</State>
|
10
|
-
</expanded-state>
|
11
|
-
<selected-state>
|
12
|
-
<State>
|
13
|
-
<id>Android</id>
|
14
|
-
</State>
|
15
|
-
</selected-state>
|
16
|
-
</profile-state>
|
17
|
-
</entry>
|
18
|
-
</component>
|
19
|
-
</project>
|
data/.idea/alda-rb.iml
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
3
|
-
<component name="ModuleRunConfigurationManager">
|
4
|
-
<shared />
|
5
|
-
</component>
|
6
|
-
<component name="NewModuleRootManager">
|
7
|
-
<content url="file://$MODULE_DIR$">
|
8
|
-
<sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
|
9
|
-
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
10
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
11
|
-
</content>
|
12
|
-
<orderEntry type="jdk" jdkName="RVM: ruby-2.7.1" jdkType="RUBY_SDK" />
|
13
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
14
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.1.4, RVM: ruby-2.7.1) [gem]" level="application" />
|
15
|
-
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.0, RVM: ruby-2.7.1) [gem]" level="application" />
|
16
|
-
<orderEntry type="library" scope="PROVIDED" name="rake (v12.3.3, RVM: ruby-2.7.1) [gem]" level="application" />
|
17
|
-
</component>
|
18
|
-
</module>
|
data/.idea/dictionaries
DELETED
data/.idea/misc.xml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="CMakeSettings">
|
4
|
-
<configurations>
|
5
|
-
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
6
|
-
</configurations>
|
7
|
-
</component>
|
8
|
-
<component name="JavaScriptSettings">
|
9
|
-
<option name="languageLevel" value="ES6" />
|
10
|
-
</component>
|
11
|
-
<component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-2.6.3" project-jdk-type="RUBY_SDK" />
|
12
|
-
</project>
|
data/.idea/modules.xml
DELETED
data/.idea/vcs.xml
DELETED
data/.idea/workspace.xml
DELETED
@@ -1,273 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="ChangeListManager">
|
4
|
-
<list default="true" id="b10f633a-1a6d-44a6-9a0d-d1ee339cc081" name="Default Changelist" comment="Set up">
|
5
|
-
<change afterPath="$PROJECT_DIR$/.idea/$CACHE_FILE$" afterDir="false" />
|
6
|
-
<change afterPath="$PROJECT_DIR$/.idea/alda-rb.iml" afterDir="false" />
|
7
|
-
<change afterPath="$PROJECT_DIR$/.idea/dictionaries" afterDir="false" />
|
8
|
-
<change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
9
|
-
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
|
10
|
-
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
|
11
|
-
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
12
|
-
<change afterPath="$PROJECT_DIR$/test/alda-rb/test.rb" afterDir="false" />
|
13
|
-
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
14
|
-
<change beforePath="$PROJECT_DIR$/alda-rb.gemspec" beforeDir="false" afterPath="$PROJECT_DIR$/alda-rb.gemspec" afterDir="false" />
|
15
|
-
<change beforePath="$PROJECT_DIR$/lib/alda-rb.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/alda-rb.rb" afterDir="false" />
|
16
|
-
<change beforePath="$PROJECT_DIR$/test/alda/rb_test.rb" beforeDir="false" />
|
17
|
-
</list>
|
18
|
-
<option name="SHOW_DIALOG" value="false" />
|
19
|
-
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
20
|
-
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
21
|
-
<option name="LAST_RESOLUTION" value="IGNORE" />
|
22
|
-
</component>
|
23
|
-
<component name="FileTemplateManagerImpl">
|
24
|
-
<option name="RECENT_TEMPLATES">
|
25
|
-
<list>
|
26
|
-
<option value="Ruby File" />
|
27
|
-
</list>
|
28
|
-
</option>
|
29
|
-
</component>
|
30
|
-
<component name="Git.Settings">
|
31
|
-
<option name="PREVIOUS_COMMIT_AUTHORS">
|
32
|
-
<list>
|
33
|
-
<option value="Ulysses <2938747508@qq.com>" />
|
34
|
-
</list>
|
35
|
-
</option>
|
36
|
-
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
37
|
-
</component>
|
38
|
-
<component name="ProjectId" id="1aQswSfo0KGc03sfmSHSW38YFeA" />
|
39
|
-
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
40
|
-
<ConfirmationsSetting value="2" id="Add" />
|
41
|
-
</component>
|
42
|
-
<component name="ProjectViewState">
|
43
|
-
<option name="hideEmptyMiddlePackages" value="true" />
|
44
|
-
<option name="showLibraryContents" value="true" />
|
45
|
-
</component>
|
46
|
-
<component name="PropertiesComponent">
|
47
|
-
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
48
|
-
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
49
|
-
<property name="WebServerToolWindowFactoryState" value="false" />
|
50
|
-
<property name="android.project.structure.last.selected" value="SDK Location" />
|
51
|
-
<property name="android.project.structure.proportion" value="0.15" />
|
52
|
-
<property name="android.sdk.path" value="D:/AndroidSDK" />
|
53
|
-
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
54
|
-
<property name="node.js.detected.package.eslint" value="true" />
|
55
|
-
<property name="node.js.detected.package.tslint" value="true" />
|
56
|
-
<property name="node.js.path.for.package.eslint" value="project" />
|
57
|
-
<property name="node.js.path.for.package.tslint" value="project" />
|
58
|
-
<property name="node.js.selected.package.eslint" value="(autodetect)" />
|
59
|
-
<property name="node.js.selected.package.tslint" value="(autodetect)" />
|
60
|
-
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
61
|
-
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
62
|
-
<property name="settings.editor.selected.configurable" value="org.jetbrains.plugins.ruby.settings.RubyActiveModuleSdkConfigurable" />
|
63
|
-
</component>
|
64
|
-
<component name="RunManager">
|
65
|
-
<configuration name="<template>" type="Applet" default="true" selected="false">
|
66
|
-
<option name="MAIN_CLASS_NAME" />
|
67
|
-
<option name="HTML_FILE_NAME" />
|
68
|
-
<option name="HTML_USED" value="false" />
|
69
|
-
<option name="WIDTH" value="400" />
|
70
|
-
<option name="HEIGHT" value="300" />
|
71
|
-
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
|
72
|
-
<option name="VM_PARAMETERS" />
|
73
|
-
</configuration>
|
74
|
-
<configuration default="true" type="Application" factoryName="Application">
|
75
|
-
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
76
|
-
<option name="MAIN_CLASS_NAME" />
|
77
|
-
<option name="VM_PARAMETERS" />
|
78
|
-
<option name="PROGRAM_PARAMETERS" />
|
79
|
-
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
80
|
-
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
81
|
-
<option name="ALTERNATIVE_JRE_PATH" />
|
82
|
-
<option name="ENABLE_SWING_INSPECTOR" value="false" />
|
83
|
-
<option name="ENV_VARIABLES" />
|
84
|
-
<option name="PASS_PARENT_ENVS" value="true" />
|
85
|
-
<module name="" />
|
86
|
-
<envs />
|
87
|
-
<method />
|
88
|
-
</configuration>
|
89
|
-
<configuration default="true" type="JUnit" factoryName="JUnit">
|
90
|
-
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
91
|
-
<module name="" />
|
92
|
-
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
93
|
-
<option name="ALTERNATIVE_JRE_PATH" />
|
94
|
-
<option name="PACKAGE_NAME" />
|
95
|
-
<option name="MAIN_CLASS_NAME" />
|
96
|
-
<option name="METHOD_NAME" />
|
97
|
-
<option name="TEST_OBJECT" value="class" />
|
98
|
-
<option name="VM_PARAMETERS" value="-ea" />
|
99
|
-
<option name="PARAMETERS" />
|
100
|
-
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
|
101
|
-
<option name="ENV_VARIABLES" />
|
102
|
-
<option name="PASS_PARENT_ENVS" value="true" />
|
103
|
-
<option name="TEST_SEARCH_SCOPE">
|
104
|
-
<value defaultName="singleModule" />
|
105
|
-
</option>
|
106
|
-
<envs />
|
107
|
-
<patterns />
|
108
|
-
<method />
|
109
|
-
</configuration>
|
110
|
-
<configuration default="true" type="Remote" factoryName="Remote">
|
111
|
-
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
112
|
-
<option name="SERVER_MODE" value="false" />
|
113
|
-
<option name="SHMEM_ADDRESS" value="javadebug" />
|
114
|
-
<option name="HOST" value="localhost" />
|
115
|
-
<option name="PORT" value="5005" />
|
116
|
-
<method />
|
117
|
-
</configuration>
|
118
|
-
<configuration default="true" type="TestNG" factoryName="TestNG">
|
119
|
-
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
120
|
-
<module name="" />
|
121
|
-
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
122
|
-
<option name="ALTERNATIVE_JRE_PATH" />
|
123
|
-
<option name="SUITE_NAME" />
|
124
|
-
<option name="PACKAGE_NAME" />
|
125
|
-
<option name="MAIN_CLASS_NAME" />
|
126
|
-
<option name="METHOD_NAME" />
|
127
|
-
<option name="GROUP_NAME" />
|
128
|
-
<option name="TEST_OBJECT" value="CLASS" />
|
129
|
-
<option name="VM_PARAMETERS" value="-ea" />
|
130
|
-
<option name="PARAMETERS" />
|
131
|
-
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
132
|
-
<option name="OUTPUT_DIRECTORY" />
|
133
|
-
<option name="ANNOTATION_TYPE" />
|
134
|
-
<option name="ENV_VARIABLES" />
|
135
|
-
<option name="PASS_PARENT_ENVS" value="true" />
|
136
|
-
<option name="TEST_SEARCH_SCOPE">
|
137
|
-
<value defaultName="singleModule" />
|
138
|
-
</option>
|
139
|
-
<option name="USE_DEFAULT_REPORTERS" value="false" />
|
140
|
-
<option name="PROPERTIES_FILE" />
|
141
|
-
<envs />
|
142
|
-
<properties />
|
143
|
-
<listeners />
|
144
|
-
<method />
|
145
|
-
</configuration>
|
146
|
-
<configuration type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest" temporary="true" nameIsGenerated="true">
|
147
|
-
<module name="alda-rb" />
|
148
|
-
<predefined_log_file enabled="true" id="RUBY_TESTUNIT" />
|
149
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-Ilib:test" />
|
150
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
151
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
152
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
153
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
154
|
-
<envs>
|
155
|
-
<env name="JRUBY_OPTS" value="-X+O" />
|
156
|
-
</envs>
|
157
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
158
|
-
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
159
|
-
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov">
|
160
|
-
<COVERAGE_PATTERN ENABLED="true">
|
161
|
-
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
162
|
-
</COVERAGE_PATTERN>
|
163
|
-
</EXTENSION>
|
164
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
165
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/test/alda-rb/test.rb" />
|
166
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
|
167
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="test_that_it_has_a_version_number" />
|
168
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_METHOD" />
|
169
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
170
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
171
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
172
|
-
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
|
173
|
-
<method v="2" />
|
174
|
-
</configuration>
|
175
|
-
<configuration name="<template>" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false">
|
176
|
-
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
|
177
|
-
</configuration>
|
178
|
-
</component>
|
179
|
-
<component name="SpringUtil" SPRING_PRE_LOADER_OPTION="true" RAKE_SPRING_PRE_LOADER_OPTION="true" RAILS_SPRING_PRE_LOADER_OPTION="true" />
|
180
|
-
<component name="SvnConfiguration">
|
181
|
-
<configuration />
|
182
|
-
</component>
|
183
|
-
<component name="TaskManager">
|
184
|
-
<task active="true" id="Default" summary="Default task">
|
185
|
-
<changelist id="b10f633a-1a6d-44a6-9a0d-d1ee339cc081" name="Default Changelist" comment="" />
|
186
|
-
<created>1586679389404</created>
|
187
|
-
<option name="number" value="Default" />
|
188
|
-
<option name="presentableId" value="Default" />
|
189
|
-
<updated>1586679389404</updated>
|
190
|
-
<workItem from="1586679391711" duration="1174000" />
|
191
|
-
<workItem from="1586681723355" duration="285000" />
|
192
|
-
<workItem from="1586686867506" duration="6808000" />
|
193
|
-
<workItem from="1586736973986" duration="3329000" />
|
194
|
-
<workItem from="1586748816394" duration="4539000" />
|
195
|
-
<workItem from="1586784926260" duration="13604000" />
|
196
|
-
<workItem from="1586908942592" duration="11580000" />
|
197
|
-
<workItem from="1586921750897" duration="17800000" />
|
198
|
-
<workItem from="1586942208327" duration="1213000" />
|
199
|
-
<workItem from="1586943595118" duration="1180000" />
|
200
|
-
</task>
|
201
|
-
<task id="LOCAL-00001" summary="Set up">
|
202
|
-
<created>1586680218633</created>
|
203
|
-
<option name="number" value="00001" />
|
204
|
-
<option name="presentableId" value="LOCAL-00001" />
|
205
|
-
<option name="project" value="LOCAL" />
|
206
|
-
<updated>1586680218633</updated>
|
207
|
-
</task>
|
208
|
-
<option name="localTasksCounter" value="2" />
|
209
|
-
<servers />
|
210
|
-
</component>
|
211
|
-
<component name="TypeScriptGeneratedFilesManager">
|
212
|
-
<option name="version" value="2" />
|
213
|
-
</component>
|
214
|
-
<component name="VcsManagerConfiguration">
|
215
|
-
<MESSAGE value="Set up" />
|
216
|
-
<option name="LAST_COMMIT_MESSAGE" value="Set up" />
|
217
|
-
</component>
|
218
|
-
<component name="WindowStateProjectService">
|
219
|
-
<state x="201" y="203" width="800" height="684" key="#Notifications" timestamp="1586680238261">
|
220
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
221
|
-
</state>
|
222
|
-
<state x="201" y="203" width="800" height="684" key="#Notifications/0.27.1920.1053@0.27.1920.1053" timestamp="1586680238261" />
|
223
|
-
<state x="39" y="154" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1586923510304">
|
224
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
225
|
-
</state>
|
226
|
-
<state x="39" y="154" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.27.1920.1053@0.27.1920.1053" timestamp="1586923510304" />
|
227
|
-
<state x="339" y="290" width="524" height="509" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1586679661400">
|
228
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
229
|
-
</state>
|
230
|
-
<state x="339" y="290" width="524" height="509" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.27.1920.1053@0.27.1920.1053" timestamp="1586679661400" />
|
231
|
-
<state x="487" y="118" width="860" height="857" key="CommitChangelistDialog2" timestamp="1586680218136">
|
232
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
233
|
-
</state>
|
234
|
-
<state x="487" y="118" width="860" height="857" key="CommitChangelistDialog2/0.27.1920.1053@0.27.1920.1053" timestamp="1586680218136" />
|
235
|
-
<state x="378" y="285" width="447" height="520" key="FileChooserDialogImpl" timestamp="1586922599760">
|
236
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
237
|
-
</state>
|
238
|
-
<state x="378" y="285" width="447" height="520" key="FileChooserDialogImpl/0.27.1920.1053@0.27.1920.1053" timestamp="1586922599760" />
|
239
|
-
<state width="1037" height="244" key="GridCell.Tab.0.bottom" timestamp="1586941875265">
|
240
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
241
|
-
</state>
|
242
|
-
<state width="1037" height="244" key="GridCell.Tab.0.bottom/0.27.1920.1053@0.27.1920.1053" timestamp="1586941875265" />
|
243
|
-
<state width="1037" height="244" key="GridCell.Tab.0.center" timestamp="1586941875264">
|
244
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
245
|
-
</state>
|
246
|
-
<state width="1037" height="244" key="GridCell.Tab.0.center/0.27.1920.1053@0.27.1920.1053" timestamp="1586941875264" />
|
247
|
-
<state width="1037" height="244" key="GridCell.Tab.0.left" timestamp="1586941875264">
|
248
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
249
|
-
</state>
|
250
|
-
<state width="1037" height="244" key="GridCell.Tab.0.left/0.27.1920.1053@0.27.1920.1053" timestamp="1586941875264" />
|
251
|
-
<state width="1037" height="244" key="GridCell.Tab.0.right" timestamp="1586941875265">
|
252
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
253
|
-
</state>
|
254
|
-
<state width="1037" height="244" key="GridCell.Tab.0.right/0.27.1920.1053@0.27.1920.1053" timestamp="1586941875265" />
|
255
|
-
<state x="95" y="176" width="1022" height="737" key="SettingsEditor" timestamp="1586702742398">
|
256
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
257
|
-
</state>
|
258
|
-
<state x="95" y="176" width="1022" height="737" key="SettingsEditor/0.27.1920.1053@0.27.1920.1053" timestamp="1586702742398" />
|
259
|
-
<state x="201" y="277" width="800" height="535" key="Vcs.Push.Dialog.v2" timestamp="1586680356429">
|
260
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
261
|
-
</state>
|
262
|
-
<state x="201" y="277" width="800" height="535" key="Vcs.Push.Dialog.v2/0.27.1920.1053@0.27.1920.1053" timestamp="1586680356429" />
|
263
|
-
<state x="268" y="364" key="com.intellij.ide.util.TipDialog" timestamp="1586782387987">
|
264
|
-
<screen x="0" y="27" width="1920" height="1053" />
|
265
|
-
</state>
|
266
|
-
<state x="268" y="364" key="com.intellij.ide.util.TipDialog/0.27.1920.1053@0.27.1920.1053" timestamp="1586782387987" />
|
267
|
-
</component>
|
268
|
-
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
269
|
-
<SUITE FILE_PATH="coverage/alda_rb@test_that_it_has_a_version____.rcov" NAME="test_that_it_has_a_version_... Coverage Results" MODIFIED="1586680178487" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="alda-rb" />
|
270
|
-
<SUITE FILE_PATH="coverage/alda_rb@test_it_does_something_useful.rcov" NAME="test_it_does_something_useful Coverage Results" MODIFIED="1586680184787" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="alda-rb" />
|
271
|
-
<SUITE FILE_PATH="coverage/alda_rb@test_basic_functions.rcov" NAME="test_basic_functions Coverage Results" MODIFIED="1586922636763" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="alda-rb" />
|
272
|
-
</component>
|
273
|
-
</project>
|