Skip to content

Commit 28bcc45

Browse files
committed
almost good
1 parent ebd4bc7 commit 28bcc45

File tree

8 files changed

+116
-185
lines changed

8 files changed

+116
-185
lines changed

asciidrumming/assemble.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,30 @@ def clean_phrases(phrases):
1515
for phrase in phrases.values():
1616
phrase['pattern'] = phrase['pattern'].replace(' ', '')
1717

18+
from .config import find_config_files
19+
import yaml
20+
21+
def load_phrases(name):
22+
files = find_config_files(name)
23+
phrases = {}
24+
pieces = {}
25+
for name in reversed(files):
26+
with open(name) as fh:
27+
cfg = yaml.load(fh)
28+
phrases.update(cfg['phrases'])
29+
pieces.update(cfg['pieces'])
30+
return phrases, pieces
31+
1832
def assemble_phrases(config):
19-
pieces = config.pop('pieces')
20-
phrases = config['phrases']
33+
phrases, pieces = load_phrases('phrases.yaml')
34+
if 'pieces' in config:
35+
pieces.update(config.pop('pieces'))
36+
phrases.update(config.get('phrases', {}))
2137
pieces = assemble_pieces(phrases, pieces)
2238
phrases.update(pieces)
2339
clean_phrases(phrases)
40+
config['phrases'] = phrases
41+
2442

2543

2644
def assemble_verses(composition):
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
initial:
2+
bpm: 60
3+
#shuffle: false
4+
5+
phrases:
6+
7+
pause:
8+
beat: 1
9+
pattern: .
10+
11+
don:
12+
beat: 4
13+
pattern: D...
14+
15+
donkon:
16+
beat: 4
17+
pattern: D.K.
18+
19+
dokodoko:
20+
beat: 4
21+
pattern: dkdk
22+
23+
dondoko:
24+
beat: 4
25+
pattern: D.dk
26+
27+
dokonko:
28+
beat: 4
29+
pattern: Dk.k
30+
31+
_2_trioles:
32+
beat: 3
33+
pattern: dkd kdk
34+
35+
damdamdam:
36+
beat: 4
37+
pattern: D.K. D..k dkdk D.r.
38+
39+
pieces:
40+
41+
_4_dondoko: dondoko * 4
42+
_4_dokonko: dokonko * 4
43+
fuchi: dondoko * 3 + dokonko
44+
_4_trioles: _2_trioles * 2
45+
46+
verses:
47+
- taiko: fuchi
48+
- taiko: fuchi
49+
- taiko: don
50+

asciidrumming/default/phrases.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
phrases:
2+
3+
pause:
4+
beat: 1
5+
pattern: .
6+
7+
don:
8+
beat: 4
9+
pattern: D...
10+
11+
donkon:
12+
beat: 4
13+
pattern: D.K.
14+
15+
dokodoko:
16+
beat: 4
17+
pattern: dkdk
18+
19+
dondoko:
20+
beat: 4
21+
pattern: D.dk
22+
23+
dokonko:
24+
beat: 4
25+
pattern: Dk.k
26+
27+
_2_trioles:
28+
beat: 3
29+
pattern: dkd kdk
30+
31+
damdamdam:
32+
beat: 4
33+
pattern: D.K. D..k dkdk D.r.
34+
35+
pieces:
36+
37+
_4_dondoko: dondoko * 4
38+
_4_dokonko: dokonko * 4
39+
fuchi: dondoko * 3 + dokonko
40+
_4_trioles: _2_trioles * 2

asciidrumming/drumming.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
@click.option('--output', default=None, help='output file to write')
2222
@click.option('--voices', default='drumset.yaml', help='yaml voice configuration file (updates defaults)')
2323
@click.option('--silent', type=bool, default=False, help='do not play the song immediatley')
24-
@click.argument('composition')
24+
@click.argument('composition', default='composition.yaml')
2525
def main(bpm, composition, voices, silent, output=None):
2626
import yaml
2727
config = yaml.load(open(composition))

examples/simple_beats.song

Lines changed: 0 additions & 62 deletions
This file was deleted.

examples/testfiddle.song

Lines changed: 0 additions & 120 deletions
This file was deleted.

examples/testfiddle.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
initial:
2+
bpm: 80
3+
4+
verses:
5+
- taiko: _4_dondoko
File renamed without changes.

0 commit comments

Comments
 (0)