ramekin 0.1.3 → 0.1.5
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/README.md +3 -0
- data/lib/ramekin/cli.rb +13 -0
- data/lib/ramekin/meta.rb +7 -2
- data/lib/ramekin/note_aggregator.rb +6 -12
- data/lib/ramekin/renderer.rb +10 -26
- data/lib/ramekin/smw.rb +31 -0
- data/lib/ramekin.rb +1 -0
- metadata +4 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e86782ed3b91b2d539e25a9c2a43887ad60e0f978659fc0d993a9c697980e551
|
4
|
+
data.tar.gz: 8065e561cd4a385b97914e8874b8302c427bfd38c7fd4976d2d3698db3292af2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d379d84449a16292615ec3313d4e030da6b90f8c13817d7322aa9ecfb3aa2614b1c713363fa51045f6d060e3d07c3b8b619c024676a08e06de0f05193e14de45
|
7
|
+
data.tar.gz: 24e1619066857f8378cdf5bebd36f9d0b4580d0f6d71d4469849990dd347f3fbb9094ec811fb0fe16c77b679e8a32da0b64f90f33d80058da08908501b87cab7
|
data/README.md
CHANGED
data/lib/ramekin/cli.rb
CHANGED
@@ -60,6 +60,9 @@ module Ramekin
|
|
60
60
|
$stderr.puts " search for BRR filenames."
|
61
61
|
$stderr.puts " --list [text]"
|
62
62
|
$stderr.puts " list all samples in packs matching [text]."
|
63
|
+
$stderr.puts " --list-smw"
|
64
|
+
$stderr.puts " list the builtin instruments from SMW that can be used"
|
65
|
+
$stderr.puts " without a pack."
|
63
66
|
$stderr.puts ""
|
64
67
|
$stderr.puts "ramekin setup [flags]"
|
65
68
|
$stderr.puts " flags:"
|
@@ -260,6 +263,8 @@ module Ramekin
|
|
260
263
|
@search = nil
|
261
264
|
while (h = argv.shift)
|
262
265
|
case h
|
266
|
+
when '--list-smw'
|
267
|
+
@list_smw = true
|
263
268
|
when '--update'
|
264
269
|
@update = true
|
265
270
|
when '--search'
|
@@ -271,6 +276,14 @@ module Ramekin
|
|
271
276
|
end
|
272
277
|
end
|
273
278
|
|
279
|
+
if @list_smw
|
280
|
+
width = SMW::BUILTINS.keys.map(&:size).max
|
281
|
+
$stderr.puts ";;; List of builtin instruments from SMW: ;;;"
|
282
|
+
SMW::BUILTINS.each do |name, id|
|
283
|
+
puts "@#{name.ljust(width)} ; @#{id}"
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
274
287
|
if @update
|
275
288
|
$stderr.puts "=== updating packages... ==="
|
276
289
|
SamplePack.download_all!
|
data/lib/ramekin/meta.rb
CHANGED
@@ -78,9 +78,13 @@ module Ramekin
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
def done?
|
82
|
+
@elements.empty? && @peek.nil?
|
83
|
+
end
|
84
|
+
|
81
85
|
def parse
|
82
86
|
loop do
|
83
|
-
break if
|
87
|
+
break if done?
|
84
88
|
next!
|
85
89
|
|
86
90
|
case @current.type
|
@@ -88,7 +92,8 @@ module Ramekin
|
|
88
92
|
when :amk then @amk = @current
|
89
93
|
when :option then @options[@current.value] = true
|
90
94
|
when :w then @volume = @current
|
91
|
-
when :t, :bpm then
|
95
|
+
when :t, :bpm then
|
96
|
+
@tempo = @current; @t_with_divisor = nil
|
92
97
|
else
|
93
98
|
error! 'invalid token in header'
|
94
99
|
end
|
@@ -57,19 +57,15 @@ module Ramekin
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
def
|
61
|
-
if
|
60
|
+
def length_amk(div)
|
61
|
+
if ticks % div != 0
|
62
62
|
divisible = div == 2 ? 'even' : "divisible by #{div}"
|
63
63
|
error!("too fast! tick count must be #{divisible} at this tempo", el: self)
|
64
64
|
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def length_amk(div)
|
68
|
-
check_length!(ticks, div)
|
69
65
|
|
70
66
|
t = ticks / div
|
71
67
|
# we use l16
|
72
|
-
|
68
|
+
return '' if t == 12
|
73
69
|
KNOWN_LENGTHS.fetch(t) { "=#{t}" }
|
74
70
|
end
|
75
71
|
|
@@ -103,15 +99,13 @@ module Ramekin
|
|
103
99
|
end
|
104
100
|
|
105
101
|
def ticks
|
106
|
-
if @extensions.empty? && default_length.nil?
|
107
|
-
return 192 / 16
|
108
|
-
end
|
109
|
-
|
110
102
|
exts = @extensions
|
111
|
-
|
103
|
+
default = default_length&.value || '16'
|
104
|
+
exts = [default] if exts.empty?
|
112
105
|
|
113
106
|
base = exts.map do |ext|
|
114
107
|
ext = ext.value if Token === ext
|
108
|
+
ext ||= default
|
115
109
|
|
116
110
|
case ext
|
117
111
|
when /\A=(\d+)\z/ then $1.to_i
|
data/lib/ramekin/renderer.rb
CHANGED
@@ -23,31 +23,9 @@ module Ramekin
|
|
23
23
|
@instrument_index[i.to_s] = i
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
@instrument_index['smwmarimba'] = 3
|
30
|
-
@instrument_index['smwcello'] = 4
|
31
|
-
@instrument_index['smwsteelguitar'] = 5
|
32
|
-
@instrument_index['smwtrumpet'] = 6
|
33
|
-
@instrument_index['smwsteeldrum'] = 7
|
34
|
-
@instrument_index['smwacousticbass'] = 8
|
35
|
-
@instrument_index['smwpiano'] = 9
|
36
|
-
@instrument_index['smwsnare'] = 10
|
37
|
-
@instrument_index['smwstring2'] = 11
|
38
|
-
@instrument_index['smwbongo'] = 12
|
39
|
-
@instrument_index['smwep'] = 13
|
40
|
-
@instrument_index['smwslapbass'] = 14
|
41
|
-
@instrument_index['smworchhit'] = 15
|
42
|
-
@instrument_index['smwharp'] = 16
|
43
|
-
@instrument_index['smwdistguitar'] = 17
|
44
|
-
@instrument_index['smwkick'] = 21
|
45
|
-
@instrument_index['smwhat'] = 22
|
46
|
-
@instrument_index['smwshaker'] = 23
|
47
|
-
@instrument_index['smwwoodblock'] = 24
|
48
|
-
@instrument_index['smwhiwoodblock'] = 25
|
49
|
-
@instrument_index['smwdrums'] = 28
|
50
|
-
@instrument_index['smwpower'] = 29
|
26
|
+
SMW::BUILTINS.each do |name, id|
|
27
|
+
@instrument_index[name] = id
|
28
|
+
end
|
51
29
|
|
52
30
|
# optional default octaves for instrument switching
|
53
31
|
@default_octaves = Hash.new(4)
|
@@ -297,7 +275,13 @@ module Ramekin
|
|
297
275
|
|
298
276
|
ticks = sprintf("%02x", note.ticks)
|
299
277
|
yield "$dd$#{ticks}$#{ticks}#{note.octave_amk}#{note.note.value}"
|
300
|
-
|
278
|
+
|
279
|
+
case peek
|
280
|
+
when NoteEvent
|
281
|
+
peek.extensions.concat(note.extensions)
|
282
|
+
else
|
283
|
+
yield "^=#{note.ticks}"
|
284
|
+
end
|
301
285
|
|
302
286
|
@octave = note.octave
|
303
287
|
when 'legato'
|
data/lib/ramekin/smw.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module Ramekin
|
2
|
+
module SMW
|
3
|
+
BUILTINS = {
|
4
|
+
'smwflute' => 0,
|
5
|
+
'smwstring' => 1,
|
6
|
+
'smwglock' => 2,
|
7
|
+
'smwmarimba' => 3,
|
8
|
+
'smwcello' => 4,
|
9
|
+
'smwsteelguitar' => 5,
|
10
|
+
'smwtrumpet' => 6,
|
11
|
+
'smwsteeldrum' => 7,
|
12
|
+
'smwacousticbass' => 8,
|
13
|
+
'smwpiano' => 9,
|
14
|
+
'smwsnare' => 10,
|
15
|
+
'smwstring2' => 11,
|
16
|
+
'smwbongo' => 12,
|
17
|
+
'smwep' => 13,
|
18
|
+
'smwslapbass' => 14,
|
19
|
+
'smworchhit' => 15,
|
20
|
+
'smwharp' => 16,
|
21
|
+
'smwdistguitar' => 17,
|
22
|
+
'smwkick' => 21,
|
23
|
+
'smwhat' => 22,
|
24
|
+
'smwshaker' => 23,
|
25
|
+
'smwwoodblock' => 24,
|
26
|
+
'smwhiwoodblock' => 25,
|
27
|
+
'smwdrums' => 28,
|
28
|
+
'smwpower' => 29,
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
data/lib/ramekin.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ramekin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jneen
|
8
|
-
autorequire:
|
9
8
|
bindir: gembin
|
10
9
|
cert_chain: []
|
11
|
-
date: 2025-03-
|
10
|
+
date: 2025-03-05 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: strscan
|
@@ -66,7 +65,6 @@ dependencies:
|
|
66
65
|
- - "~>"
|
67
66
|
- !ruby/object:Gem::Version
|
68
67
|
version: '0.6'
|
69
|
-
description:
|
70
68
|
email: jneen@jneen.net
|
71
69
|
executables:
|
72
70
|
- ramekin
|
@@ -92,6 +90,7 @@ files:
|
|
92
90
|
- lib/ramekin/processor.rb
|
93
91
|
- lib/ramekin/renderer.rb
|
94
92
|
- lib/ramekin/sample_pack.rb
|
93
|
+
- lib/ramekin/smw.rb
|
95
94
|
- lib/ramekin/spc_player.rb
|
96
95
|
- lib/ramekin/tokenizer.rb
|
97
96
|
- lib/ramekin/util.rb
|
@@ -101,7 +100,6 @@ licenses:
|
|
101
100
|
- GPL-3.0-only
|
102
101
|
metadata:
|
103
102
|
source_code_uri: https://codeberg.org/jneen/ramekin
|
104
|
-
post_install_message:
|
105
103
|
rdoc_options: []
|
106
104
|
require_paths:
|
107
105
|
- lib
|
@@ -116,8 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
114
|
- !ruby/object:Gem::Version
|
117
115
|
version: '0'
|
118
116
|
requirements: []
|
119
|
-
rubygems_version: 3.5
|
120
|
-
signing_key:
|
117
|
+
rubygems_version: 3.6.5
|
121
118
|
specification_version: 4
|
122
119
|
summary: A tool for making SMW music with AddmusicK
|
123
120
|
test_files: []
|