alda-rb 0.1.0 → 0.1.2
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 +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>
|