patterns no projeto do MMPSearch
This commit is contained in:
1 parent
52d1d90fc1
commit
34a44ec763
23 files changed
+94097
-6626
No files matched your search
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -9,7 +9,6 @@ tags:
|
|||||||
bassline:
|
bassline:
|
||||||
- main base
|
- main base
|
||||||
plugin:
|
plugin:
|
||||||
- ''
|
|
||||||
- nes
|
- nes
|
||||||
sample: []
|
sample: []
|
||||||
tracks:
|
tracks:
|
||||||
@@ -20,8 +19,29 @@ tracks:
|
|||||||
instrument_name: bass1
|
instrument_name: bass1
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '1.6'
|
pan: '1.6'
|
||||||
|
patterns:
|
||||||
|
- name: bass1
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: nes
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '96'
|
vol: '96'
|
||||||
- basenote: '42'
|
- basenote: '42'
|
||||||
@@ -29,8 +49,29 @@ tracks:
|
|||||||
instrument_name: noise1
|
instrument_name: noise1
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: noise1
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: nes
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- basenote: '42'
|
- basenote: '42'
|
||||||
@@ -38,11 +79,32 @@ tracks:
|
|||||||
instrument_name: snare
|
instrument_name: snare
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: snare
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: nes
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '122.4'
|
vol: '122.4'
|
||||||
tags: ''
|
tags: nes
|
||||||
type: bassline
|
type: bassline
|
||||||
- arpeggiator:
|
- arpeggiator:
|
||||||
arp: '0'
|
arp: '0'
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
@@ -169,8 +169,86 @@ tracks:
|
|||||||
instrument_name: Kicker
|
instrument_name: Kicker
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: Kicker
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: Kicker
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: Kicker
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: Kicker
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: kicker
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- basenote: '57'
|
- basenote: '57'
|
||||||
@@ -178,8 +256,86 @@ tracks:
|
|||||||
instrument_name: OpulenZ
|
instrument_name: OpulenZ
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: OpulenZ
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: OpulenZ
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: OpulenZ
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: OpulenZ
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: OPL2
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -197,8 +353,86 @@ tracks:
|
|||||||
instrument_name: snare01.ogg
|
instrument_name: snare01.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: snare01.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: snare01.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- name: snare01.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: snare01.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -216,8 +450,86 @@ tracks:
|
|||||||
instrument_name: clap01.ogg
|
instrument_name: clap01.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: clap01.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: clap01.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- name: clap01.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: clap01.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -235,8 +547,86 @@ tracks:
|
|||||||
instrument_name: tom01.ogg
|
instrument_name: tom01.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: tom01.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: tom01.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: tom01.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: tom01.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -254,8 +644,86 @@ tracks:
|
|||||||
instrument_name: tom02.ogg
|
instrument_name: tom02.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: tom02.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: tom02.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: tom02.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: tom02.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -273,8 +741,86 @@ tracks:
|
|||||||
instrument_name: zap02.ogg
|
instrument_name: zap02.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: zap02.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: zap02.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: zap02.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: zap02.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -292,8 +838,86 @@ tracks:
|
|||||||
instrument_name: hihat_opened01.ogg
|
instrument_name: hihat_opened01.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: hihat_opened01.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: hihat_opened01.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: hihat_opened01.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: hihat_opened01.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -311,8 +935,86 @@ tracks:
|
|||||||
instrument_name: metronome01.ogg
|
instrument_name: metronome01.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: metronome01.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: metronome01.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: metronome01.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: metronome01.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -330,8 +1032,86 @@ tracks:
|
|||||||
instrument_name: metronome02.ogg
|
instrument_name: metronome02.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: metronome02.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: metronome02.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- name: metronome02.ogg
|
||||||
|
pos: '384'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: metronome02.ogg
|
||||||
|
pos: '576'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
tags: audiofileprocessor
|
tags: audiofileprocessor
|
||||||
|
|||||||
+2048
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+50064
-6412
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+75
-2
@@ -9,7 +9,6 @@ tags:
|
|||||||
bassline:
|
bassline:
|
||||||
- Beat/Bassline 0
|
- Beat/Bassline 0
|
||||||
plugin:
|
plugin:
|
||||||
- ''
|
|
||||||
- bitinvader
|
- bitinvader
|
||||||
sample: []
|
sample: []
|
||||||
tracks:
|
tracks:
|
||||||
@@ -20,8 +19,45 @@ tracks:
|
|||||||
instrument_name: Alien clKick 05b1
|
instrument_name: Alien clKick 05b1
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: Alien clKick 05b1
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '-2800'
|
pitch: '-2800'
|
||||||
pitchrange: '28'
|
pitchrange: '28'
|
||||||
|
plugin_name: bitinvader
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '60'
|
vol: '60'
|
||||||
- basenote: '69'
|
- basenote: '69'
|
||||||
@@ -29,11 +65,48 @@ tracks:
|
|||||||
instrument_name: Alien Snare Dry 02
|
instrument_name: Alien Snare Dry 02
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: ''
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- true
|
||||||
|
- false
|
||||||
pitch: '-1200'
|
pitch: '-1200'
|
||||||
pitchrange: '12'
|
pitchrange: '12'
|
||||||
|
plugin_name: bitinvader
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
tags: ''
|
tags: bitinvader
|
||||||
type: bassline
|
type: bassline
|
||||||
- arpeggiator:
|
- arpeggiator:
|
||||||
arp: '0'
|
arp: '0'
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -166,8 +166,48 @@ tracks:
|
|||||||
instrument_name: Kicker
|
instrument_name: Kicker
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: Kicker
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: Kicker
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: kicker
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '104'
|
vol: '104'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -185,8 +225,48 @@ tracks:
|
|||||||
instrument_name: errie_ride.ds
|
instrument_name: errie_ride.ds
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: errie_ride.ds
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: errie_ride.ds
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -204,8 +284,48 @@ tracks:
|
|||||||
instrument_name: coo.ds
|
instrument_name: coo.ds
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: coo.ds
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: coo.ds
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '31.200001'
|
vol: '31.200001'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -223,8 +343,48 @@ tracks:
|
|||||||
instrument_name: house_loop01.ogg
|
instrument_name: house_loop01.ogg
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: house_loop01.ogg
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: house_loop01.ogg
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- true
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -242,8 +402,48 @@ tracks:
|
|||||||
instrument_name: cheap_fx.ds
|
instrument_name: cheap_fx.ds
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: cheap_fx.ds
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: cheap_fx.ds
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -261,8 +461,48 @@ tracks:
|
|||||||
instrument_name: cold_shot.ds
|
instrument_name: cold_shot.ds
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: cold_shot.ds
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: cold_shot.ds
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -280,8 +520,48 @@ tracks:
|
|||||||
instrument_name: depth_fx.ds
|
instrument_name: depth_fx.ds
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: depth_fx.ds
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: depth_fx.ds
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
- audiofileprocessor:
|
- audiofileprocessor:
|
||||||
@@ -299,8 +579,48 @@ tracks:
|
|||||||
instrument_name: hello_q.ds
|
instrument_name: hello_q.ds
|
||||||
instrument_type: '0'
|
instrument_type: '0'
|
||||||
pan: '0'
|
pan: '0'
|
||||||
|
patterns:
|
||||||
|
- name: hello_q.ds
|
||||||
|
pos: '0'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- name: hello_q.ds
|
||||||
|
pos: '192'
|
||||||
|
steps:
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
|
- false
|
||||||
pitch: '0'
|
pitch: '0'
|
||||||
pitchrange: '1'
|
pitchrange: '1'
|
||||||
|
plugin_name: audiofileprocessor
|
||||||
usemasterpitch: '1'
|
usemasterpitch: '1'
|
||||||
vol: '100'
|
vol: '100'
|
||||||
tags: audiofileprocessor
|
tags: audiofileprocessor
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+150
-95
@@ -9,25 +9,38 @@ title: "{{ page.file }}"
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<h1 class="title is-3 mb-4"><code>{{ page.file }}</h1></code>
|
<h1 class="title is-3 mb-4"><code>{{ page.file }}</code></h1>
|
||||||
|
|
||||||
{% if page.file or page.bpm %}
|
{% if page.file or page.bpm %}
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<div class="columns is-mobile is-multiline is-vcentered">
|
<div class="columns is-mobile is-multiline is-vcentered">
|
||||||
{% if page.file %}
|
{% if page.file %}
|
||||||
<div class="column is-narrow">
|
<div class="column is-narrow">
|
||||||
<span><strong><code>📁 Arquivo:</strong> {{ page.file }}</span></code>
|
<span><strong><code>📁 Arquivo:</code></strong> {{ page.file }}</span>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if page.bpm %}
|
{% if page.bpm %}
|
||||||
<div class="column is-narrow">
|
<div class="column is-narrow">
|
||||||
<span><strong><code>🎵 BPM:</strong> {{ page.bpm }}</span></code>
|
<span><strong><code>🎵 BPM:</code></strong> {{ page.bpm }}</span>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign audio_file_path = '/mmp/wav/' | append: page.file | append: '.wav' %}
|
||||||
|
{% if page.file %}
|
||||||
|
<section class="audio-player-section mb-6">
|
||||||
|
<audio controls>
|
||||||
|
<source src="{{ audio_file_path | relative_url }}" type="audio/wav">
|
||||||
|
{% assign audio_ogg_path = '/mmp/ogg/' | append: page.file | append: '.ogg' %}
|
||||||
|
<source src="{{ audio_ogg_path | relative_url }}" type="audio/ogg">
|
||||||
|
Seu navegador não suporta o elemento <code>audio</code>.
|
||||||
|
</audio>
|
||||||
|
</section>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
|
|
||||||
<div class="column is-two-thirds">
|
<div class="column is-two-thirds">
|
||||||
@@ -35,36 +48,25 @@ title: "{{ page.file }}"
|
|||||||
{% if page.tags %}
|
{% if page.tags %}
|
||||||
{% assign tags_vazias = true %}
|
{% assign tags_vazias = true %}
|
||||||
{% for categoria in page.tags %}
|
{% for categoria in page.tags %}
|
||||||
{% if categoria[1].size > 0 %}
|
{% if categoria[1] and categoria[1].size > 0 %}
|
||||||
{% assign tags_vazias = false %}
|
{% assign tags_vazias = false %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% unless tags_vazias %}
|
{% unless tags_vazias %}
|
||||||
<section class="tags-section mb-6">
|
<section class="tags-section mb-6">
|
||||||
{% assign audio_file = '/mmp/wav/' | append: page.file | append: '.wav' %}
|
|
||||||
|
|
||||||
{% if audio_file %}
|
|
||||||
<section class="audio-player-section mb-6">
|
|
||||||
<audio controls>
|
|
||||||
<source src="{{ audio_file | relative_url }}" type="audio/wav">
|
|
||||||
Seu navegador não suporta o elemento <code>audio</code>.
|
|
||||||
</audio>
|
|
||||||
</section>
|
|
||||||
{% endif %}
|
|
||||||
<details>
|
<details>
|
||||||
<summary class="title is-5" style="cursor: pointer; padding-left: 0;">
|
<summary class="title is-5" style="cursor: pointer; padding-left: 0;">
|
||||||
<code>🏷️ Tags</code>
|
<code>🏷️ Tags</code>
|
||||||
</summary>
|
</summary>
|
||||||
{% for categoria in page.tags %}
|
{% for categoria in page.tags %}
|
||||||
{% if categoria[1].size > 0 %}
|
{% if categoria[1] and categoria[1].size > 0 %}
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<strong><code>{{ categoria[0] }}:</strong></code>
|
<strong><code>{{ categoria[0] }}:</code></strong>
|
||||||
<div class="tags mt-2">
|
<div class="tags mt-2">
|
||||||
{% for valor in categoria[1] %}
|
{% for valor in categoria[1] %}
|
||||||
{% if valor != "" %}
|
{% if valor != "" %}
|
||||||
{% assign tag_slug = valor | replace: ' ', '+' %}
|
{% assign tag_slug = valor | replace: ' ', '+' %}
|
||||||
|
|
||||||
{% if categoria[0] == 'bassline' %}
|
{% if categoria[0] == 'bassline' %}
|
||||||
<a href="{{ '/bassline/?bassline=' | append: tag_slug | relative_url }}" class="tag is-info is-light">{{ valor }}</a>
|
<a href="{{ '/bassline/?bassline=' | append: tag_slug | relative_url }}" class="tag is-info is-light">{{ valor }}</a>
|
||||||
{% elsif categoria[0] == 'sample' %}
|
{% elsif categoria[0] == 'sample' %}
|
||||||
@@ -82,99 +84,151 @@ title: "{{ page.file }}"
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</details>
|
||||||
</section>
|
</section>
|
||||||
</details>
|
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if page.tracks and page.tracks.size > 0 %}
|
{% if page.tracks and page.tracks.size > 0 %}
|
||||||
<section class="instruments-section">
|
<section class="instruments-section">
|
||||||
|
<details open>
|
||||||
|
<summary class="title is-5" style="cursor: pointer; padding-left: 0;">
|
||||||
|
<code>🎚️ Instrumentos </code>
|
||||||
|
</summary>
|
||||||
|
|
||||||
{% comment %}
|
<div class="content mt-3">
|
||||||
USANDO <details> PARA CRIAR UM ACORDION NATIVO:
|
<ul style="list-style: none; padding-left: 0;">
|
||||||
O atributo "open" (se presente) mantém a lista expandida.
|
{% for track in page.tracks %}
|
||||||
O <summary> é o título clicável que o usuário vê.
|
{% assign tem_instr = false %}
|
||||||
{% endcomment %}
|
{% if track.instruments and track.instruments.size > 0 %}
|
||||||
<details>
|
{% assign tem_instr = true %}
|
||||||
<summary class="title is-5" style="cursor: pointer; padding-left: 0;">
|
{% endif %}
|
||||||
<code>🎚️ Instrumentos </code>
|
|
||||||
</summary>
|
|
||||||
|
|
||||||
<div class="content mt-3">
|
{% if track.bassline_name or tem_instr %}
|
||||||
<ul style="list-style: none; padding-left: 0;">
|
<li class="mb-5">
|
||||||
{% for track in page.tracks %}
|
{% if track.bassline_name %}
|
||||||
{% assign tem_instr = false %}
|
<p class="has-text-weight-bold mb-2">🎼 {{ track.bassline_name }}</p>
|
||||||
{% if track.instruments and track.instruments.size > 0 %}
|
|
||||||
{% assign tem_instr = true %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if track.bassline_name or tem_instr %}
|
{% if tem_instr %}
|
||||||
<li class="mb-5">
|
<ul class="pl-4">
|
||||||
{% if track.bassline_name %}
|
{% for instrument in track.instruments %}
|
||||||
<p class="has-text-weight-bold mb-2">🎼 {{ track.bassline_name }}</p>
|
{% if instrument.instrument_name %}
|
||||||
{% endif %}
|
<li style="margin-bottom: 0.4rem;">
|
||||||
|
|
||||||
{% if tem_instr %}
|
<div style="display: flex; align-items: center; gap: 8px;">
|
||||||
<ul class="pl-4">
|
{% assign display_name = instrument.instrument_name %}
|
||||||
{% for instrument in track.instruments %}
|
{% if display_name contains "audiofileprocessor" and instrument.patterns %}
|
||||||
{% if instrument.instrument_name %}
|
{% assign first_pattern_name = instrument.patterns | map: 'name' | first %}
|
||||||
<li style="margin-bottom: 0.4rem;">
|
{% if first_pattern_name and first_pattern_name != empty %}
|
||||||
{% assign instrument_slug = instrument.instrument_name | replace: ' ', '+' %}
|
{% assign display_name = first_pattern_name | remove: ".ogg" | remove: ".wav" | remove: ".flac" | remove: ".mp3" %}
|
||||||
<a href="{{ '/instruments/?instrument=' | append: instrument_slug | relative_url }}" class="tag is-info is-light">
|
{% elsif instrument.audiofileprocessor.src %}
|
||||||
<code>{{ instrument.instrument_name }}</code>
|
{% assign src_parts = instrument.audiofileprocessor.src | split: '/' %}
|
||||||
</a>
|
{% assign file_name = src_parts | last %}
|
||||||
|
{% assign display_name = file_name | remove: ".ogg" | remove: ".wav" | remove: ".flac" | remove: ".mp3" %}
|
||||||
{% comment %}
|
{% endif %}
|
||||||
VERIFICAÇÃO DE SAMPLE:
|
|
||||||
Se `audiofileprocessor` existir E `src` existir E `src` não for vazio, exibe o player.
|
|
||||||
{% endcomment %}
|
|
||||||
{% assign sample_src = instrument.audiofileprocessor.src | default: "" | strip %}
|
|
||||||
|
|
||||||
{% if instrument.audiofileprocessor and sample_src != "" %}
|
|
||||||
{% assign audio_filename_with_path = 'src/samples/' | append: sample_src %}
|
|
||||||
<div class="audio-player-section mt-3">
|
|
||||||
<audio controls>
|
|
||||||
<source
|
|
||||||
src="{{ audio_filename_with_path | relative_url }}"
|
|
||||||
type="audio/ogg"
|
|
||||||
>
|
|
||||||
|
|
||||||
{% assign wav_path = audio_filename_with_path | replace: '.ogg', '.wav' %}
|
|
||||||
<source
|
|
||||||
src="{{ wav_path | relative_url }}"
|
|
||||||
type="audio/wav"
|
|
||||||
>
|
|
||||||
|
|
||||||
Seu navegador não suporta o elemento <code>audio</code>.
|
|
||||||
</audio>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
{% comment %} CONDIÇÃO DE MENSAGEM: O sample não foi enviado! {% endcomment %}
|
|
||||||
<p class="has-text-danger is-size-7 mt-3">
|
|
||||||
O sample **não foi enviado** 😢
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</li>
|
|
||||||
|
{% assign instrument_slug = display_name | replace: ' ', '+' %}
|
||||||
|
<a href="{{ '/instruments/?instrument=' | append: instrument_slug | relative_url }}" class="tag is-info is-light">
|
||||||
|
<code>{{ display_name }}</code>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% comment %}
|
||||||
|
LOOP para múltiplos patterns com rótulo P1, P2, P3.
|
||||||
|
{% endcomment %}
|
||||||
|
{% for pattern in instrument.patterns %}
|
||||||
|
{% assign pattern_steps = pattern.steps %}
|
||||||
|
|
||||||
|
{% if pattern_steps and pattern_steps.size > 0 %}
|
||||||
|
<div class="mt-2" style="display: flex; align-items: center; gap: 4px;">
|
||||||
|
|
||||||
|
<span class="is-size-7 has-text-grey-light">
|
||||||
|
P{{ forloop.index }}:
|
||||||
|
</span>
|
||||||
|
|
||||||
|
{% comment %}
|
||||||
|
>>> INÍCIO DA LÓGICA DE STEPS MELHORADA <<<
|
||||||
|
Container da grade de steps
|
||||||
|
{% endcomment %}
|
||||||
|
<div style="display: flex; flex-direction: row; border: 1px solid #ccc; padding: 2px; border-radius: 2px; background-color: #f0f0f0;">
|
||||||
|
{% for step_active in pattern_steps %}
|
||||||
|
|
||||||
|
{% comment %} Define a cor do step {% endcomment %}
|
||||||
|
{% assign step_color = '#d9d9d9' %} {% comment %} Cor INATIVA (cinza claro) {% endcomment %}
|
||||||
|
{% if step_active == true or step_active == 'true' or step_active == 1 %}
|
||||||
|
{% assign step_color = '#4caf50' %} {% comment %} Cor ATIVA (verde) {% endcomment %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% comment %} Define o espaçamento (divisão do compasso) {% endcomment %}
|
||||||
|
{% assign step_style = '' %}
|
||||||
|
{% assign step_index_zero_based = forloop.index0 %}
|
||||||
|
|
||||||
|
{% comment %} --- Calcula o módulo *antes* do 'if' --- {% endcomment %}
|
||||||
|
{% assign remainder = step_index_zero_based | modulo: 4 %}
|
||||||
|
|
||||||
|
{% if step_index_zero_based > 0 and remainder == 0 %}
|
||||||
|
{% assign step_style = 'margin-left: 3px;' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style="width: 5px; height: 10px; background-color: {{ step_color }}; border-radius: 1px; {{ step_style }}"
|
||||||
|
></div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% comment %} >>> FIM DA LÓGICA DE STEPS MELHORADA <<< {% endcomment %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
{% comment %} Player de áudio e condição de sample ausente {% endcomment %}
|
||||||
|
{% assign sample_src = instrument.audiofileprocessor.src | default: "" | strip %}
|
||||||
|
|
||||||
|
{% if instrument.audiofileprocessor and sample_src != "" %}
|
||||||
|
{% assign audio_filename_with_path = 'src/samples/' | append: sample_src %}
|
||||||
|
<div class="audio-player-section mt-3">
|
||||||
|
<audio controls>
|
||||||
|
<source
|
||||||
|
src="{{ audio_filename_with_path | relative_url }}"
|
||||||
|
type="audio/ogg"
|
||||||
|
>
|
||||||
|
{% assign wav_path = audio_filename_with_path | replace: '.ogg', '.wav' %}
|
||||||
|
<source
|
||||||
|
src="{{ wav_path | relative_url }}"
|
||||||
|
type="audio/wav"
|
||||||
|
>
|
||||||
|
Seu navegador não suporta o elemento <code>audio</code>.
|
||||||
|
</audio>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<p class="has-text-danger is-size-7 mt-3">
|
||||||
|
O sample **não foi enviado** 😢
|
||||||
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
</li>
|
||||||
</ul>
|
{% endif %}
|
||||||
{% endif %}
|
{% endfor %}
|
||||||
</li>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
</li>
|
||||||
</ul>
|
{% endif %}
|
||||||
</div>
|
{% endfor %}
|
||||||
</details>
|
</ul>
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div> <div class="column is-one-third" height="800px" widht="800px">
|
</div>
|
||||||
<div class="box p-4 has-background-info-light" height="800px" widht="800px">
|
|
||||||
|
<div class="column is-one-third">
|
||||||
|
<div class="box p-4 has-background-info-light">
|
||||||
<h3 class="title is-6 has-text-info mb-3">🛠️ Abra na Criação Colaborativa</h3>
|
<h3 class="title is-6 has-text-info mb-3">🛠️ Abra na Criação Colaborativa</h3>
|
||||||
|
|
||||||
{% comment %}
|
{% comment %}
|
||||||
CONSTRUÇÃO DA URL CORRIGIDA PARA AMBIENTES DE TESTE:
|
CONSTRUÇÃO DA URL CORRIGIDA PARA AMBIENTES DE TESTE:
|
||||||
- O filtro `relative_url` foi removido para evitar a duplicação do caminho.
|
|
||||||
- O prefixo de teste `/~jotachina/mmpSearch/` foi adicionado manualmente.
|
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
{% assign creation_url = '/~jotachina/mmpSearch/creation.html?project=' | append: page.file %}
|
{% assign creation_url = '/~jotachina/mmpSearch/creation.html?project=' | append: page.file %}
|
||||||
<span class="icon"><i class="fa-solid fa-up-right-from-square"></i></span>
|
<span class="icon"><i class="fa-solid fa-up-right-from-square"></i></span>
|
||||||
@@ -190,7 +244,7 @@ title: "{{ page.file }}"
|
|||||||
Arquivo: <code>{{ page.file }}</code>
|
Arquivo: <code>{{ page.file }}</code>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="mt-4 is-hidden-mobile" height="800px" widht="800px">
|
<div class="mt-4 is-hidden-mobile">
|
||||||
{% assign embed_url = creation_url | append: '&embed=true' %}
|
{% assign embed_url = creation_url | append: '&embed=true' %}
|
||||||
|
|
||||||
<iframe
|
<iframe
|
||||||
@@ -201,7 +255,8 @@ title: "{{ page.file }}"
|
|||||||
</iframe>
|
</iframe>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> </div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,135 +1,247 @@
|
|||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
# FUNÇÃO AUXILIAR: CALCULAR STEPS A PARTIR DE POSIÇÕES DE NOTAS
|
||||||
|
# (Esta função é necessária para a injeção de steps)
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
|
||||||
|
def calculate_steps_from_notes(pattern_element, ticks_per_step=12):
|
||||||
|
"""
|
||||||
|
Calcula o array de steps [True, False, ...] a partir das notas XML.
|
||||||
|
|
||||||
|
:param pattern_element: O objeto ElementTree para a tag <pattern>.
|
||||||
|
:param ticks_per_step: O número de ticks por step (12 para 1/16 no LMMS).
|
||||||
|
:return: Um array de booleanos representando os steps marcados.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# Pega o número total de steps (ex: 16, 64)
|
||||||
|
total_steps = int(pattern_element.attrib.get('steps', 16))
|
||||||
|
except ValueError:
|
||||||
|
total_steps = 16
|
||||||
|
|
||||||
|
steps = [False] * total_steps
|
||||||
|
|
||||||
|
notes = pattern_element.findall('note')
|
||||||
|
|
||||||
|
for note in notes:
|
||||||
|
try:
|
||||||
|
# Posição da nota em ticks
|
||||||
|
note_pos_ticks = int(note.attrib.get('pos', 0))
|
||||||
|
|
||||||
|
# Converte a posição em ticks para o índice do step (arredondando)
|
||||||
|
step_index = round(note_pos_ticks / ticks_per_step)
|
||||||
|
|
||||||
|
if 0 <= step_index < total_steps:
|
||||||
|
steps[step_index] = True
|
||||||
|
except ValueError:
|
||||||
|
# Ignora notas com posição inválida
|
||||||
|
continue
|
||||||
|
|
||||||
|
return steps
|
||||||
|
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
# FUNÇÃO PRINCIPAL: PARSE_BASSLINES (MESCLADA)
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
|
||||||
def parse_basslines(track):
|
def parse_basslines(track):
|
||||||
|
"""
|
||||||
|
Processa uma track <track type="1"> (Beat/Bassline), extrai todos os seus
|
||||||
|
instrumentos (sub-tracks), coleta detalhes e calcula os steps
|
||||||
|
para cada pattern.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Nome da track principal (ex: "Beat/Bassline 0")
|
||||||
track_name = track.attrib.get('name', 'N/A')
|
track_name = track.attrib.get('name', 'N/A')
|
||||||
bbtrack = track.find('./bbtrack')
|
bbtrack = track.find('./bbtrack')
|
||||||
instruments = []
|
instruments = []
|
||||||
tags = ''
|
|
||||||
|
|
||||||
if bbtrack is not None:
|
# 'tags' agora é usado para coletar os tipos de plugins para o retorno
|
||||||
for container in bbtrack.findall('./trackcontainer'):
|
plugin_tags = set()
|
||||||
for instrument_track in container.findall('./track'):
|
|
||||||
instrument_info = {}
|
|
||||||
instrument_info['instrument_name'] = instrument_track.attrib.get('name', 'N/A')
|
|
||||||
instrument_info['instrument_type'] = instrument_track.attrib.get('type', 'N/A')
|
|
||||||
#print(instrument_info['tags'])
|
|
||||||
# <instrumenttrack>
|
|
||||||
instrumenttrack = instrument_track.find('./instrumenttrack')
|
|
||||||
if instrumenttrack is not None:
|
|
||||||
instrument_info.update({
|
|
||||||
'pitch': instrumenttrack.attrib.get('pitch', ''),
|
|
||||||
'pan': instrumenttrack.attrib.get('pan', ''),
|
|
||||||
'vol': instrumenttrack.attrib.get('vol', ''),
|
|
||||||
'pitchrange': instrumenttrack.attrib.get('pitchrange', ''),
|
|
||||||
'basenote': instrumenttrack.attrib.get('basenote', ''),
|
|
||||||
'fxch': instrumenttrack.attrib.get('fxch', ''),
|
|
||||||
'usemasterpitch': instrumenttrack.attrib.get('usemasterpitch', '')
|
|
||||||
})
|
|
||||||
|
|
||||||
# <audiofileprocessor>
|
if bbtrack is None:
|
||||||
audiofileprocessor = instrument_track.find('.//audiofileprocessor')
|
# Se não houver bbtrack, pode ser uma bassline vazia (como a 1 e 2)
|
||||||
if audiofileprocessor is not None:
|
return {
|
||||||
if 'audiofileprocessor' not in tags:
|
'bassline_name': track_name,
|
||||||
tags = 'audiofileprocessor'
|
'type': 'bassline',
|
||||||
instrument_info['audiofileprocessor'] = {
|
'tags': '', # Retorna tag vazia
|
||||||
'amp': audiofileprocessor.attrib.get('amp', ''),
|
'instruments': instruments # Retorna lista vazia
|
||||||
'src': audiofileprocessor.attrib.get('src', ''),
|
}
|
||||||
'lframe': audiofileprocessor.attrib.get('lframe', ''),
|
|
||||||
'stutter': audiofileprocessor.attrib.get('stutter', ''),
|
for container in bbtrack.findall('./trackcontainer'):
|
||||||
'interp': audiofileprocessor.attrib.get('interp', ''),
|
# Itera sobre cada instrumento (sub-track tipo 0) dentro da bassline
|
||||||
'sframe': audiofileprocessor.attrib.get('sframe', ''),
|
for instrument_track in container.findall('./track'):
|
||||||
'looped': audiofileprocessor.attrib.get('looped', ''),
|
instrument_info = {}
|
||||||
'eframe': audiofileprocessor.attrib.get('eframe', ''),
|
|
||||||
'reversed': audiofileprocessor.attrib.get('reversed', ''),
|
# Pega o nome do instrumento (ex: "kicker", "snare_hiphop02.ogg")
|
||||||
|
instrument_info['instrument_name'] = instrument_track.attrib.get('name', 'N/A')
|
||||||
|
instrument_info['instrument_type'] = instrument_track.attrib.get('type', 'N/A')
|
||||||
|
|
||||||
|
# --- Início da Coleta de Detalhes (da sua função base) ---
|
||||||
|
|
||||||
|
# <instrumenttrack>
|
||||||
|
instrumenttrack = instrument_track.find('./instrumenttrack')
|
||||||
|
if instrumenttrack is not None:
|
||||||
|
instrument_info.update({
|
||||||
|
'pitch': instrumenttrack.attrib.get('pitch', ''),
|
||||||
|
'pan': instrumenttrack.attrib.get('pan', ''),
|
||||||
|
'vol': instrumenttrack.attrib.get('vol', ''),
|
||||||
|
'pitchrange': instrumenttrack.attrib.get('pitchrange', ''),
|
||||||
|
'basenote': instrumenttrack.attrib.get('basenote', ''),
|
||||||
|
'fxch': instrumenttrack.attrib.get('fxch', ''),
|
||||||
|
'usemasterpitch': instrumenttrack.attrib.get('usemasterpitch', '')
|
||||||
|
})
|
||||||
|
|
||||||
|
# Adiciona o nome real do plugin (kicker, audiofileprocessor, etc.)
|
||||||
|
instrument_tag = instrument_track.find('.//instrument')
|
||||||
|
if instrument_tag is not None:
|
||||||
|
plugin_name = instrument_tag.attrib.get('name')
|
||||||
|
if plugin_name:
|
||||||
|
plugin_tags.add(plugin_name) # Adiciona à tag da bassline
|
||||||
|
instrument_info['plugin_name'] = plugin_name # Salva o nome do plugin
|
||||||
|
|
||||||
|
# <audiofileprocessor>
|
||||||
|
audiofileprocessor = instrument_track.find('.//audiofileprocessor')
|
||||||
|
if audiofileprocessor is not None:
|
||||||
|
instrument_info['audiofileprocessor'] = {
|
||||||
|
'amp': audiofileprocessor.attrib.get('amp', ''),
|
||||||
|
'src': audiofileprocessor.attrib.get('src', ''),
|
||||||
|
'lframe': audiofileprocessor.attrib.get('lframe', ''),
|
||||||
|
'stutter': audiofileprocessor.attrib.get('stutter', ''),
|
||||||
|
'interp': audiofileprocessor.attrib.get('interp', ''),
|
||||||
|
'sframe': audiofileprocessor.attrib.get('sframe', ''),
|
||||||
|
'looped': audiofileprocessor.attrib.get('looped', ''),
|
||||||
|
'eframe': audiofileprocessor.attrib.get('eframe', ''),
|
||||||
|
'reversed': audiofileprocessor.attrib.get('reversed', ''),
|
||||||
|
}
|
||||||
|
|
||||||
|
# <eldata>
|
||||||
|
eldata = instrument_track.find('./eldata')
|
||||||
|
if eldata is not None:
|
||||||
|
eldata_info = {
|
||||||
|
'fwet': eldata.attrib.get('fwet', ''),
|
||||||
|
'ftype': eldata.attrib.get('ftype', ''),
|
||||||
|
'fcut': eldata.attrib.get('fcut', ''),
|
||||||
|
'fres': eldata.attrib.get('fres', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
elvol = eldata.find('./elvol')
|
||||||
|
if elvol is not None:
|
||||||
|
eldata_info['elvol'] = {
|
||||||
|
'sustain': elvol.attrib.get('sustain', ''),
|
||||||
|
'lamt': elvol.attrib.get('lamt', ''),
|
||||||
|
'lshp': elvol.attrib.get('lshp', ''),
|
||||||
|
'amt': elvol.attrib.get('amt', ''),
|
||||||
|
'pdel': elvol.attrib.get('pdel', ''),
|
||||||
|
'lpdel': elvol.attrib.get('lpdel', ''),
|
||||||
|
'lspd_numerator': elvol.attrib.get('lspd_numerator', ''),
|
||||||
|
'lspd_syncmode': elvol.attrib.get('lspd_syncmode', ''),
|
||||||
|
'latt': elvol.attrib.get('latt', ''),
|
||||||
|
'ctlenvamt': elvol.attrib.get('ctlenvamt', ''),
|
||||||
|
'x100': elvol.attrib.get('x100', ''),
|
||||||
|
'dec': elvol.attrib.get('dec', ''),
|
||||||
|
'hold': elvol.attrib.get('hold', ''),
|
||||||
|
'rel': elvol.attrib.get('rel', ''),
|
||||||
|
'lspd_denominator': elvol.attrib.get('lspd_denominator', ''),
|
||||||
|
'userwavefile': elvol.attrib.get('userwavefile', ''),
|
||||||
|
'att': elvol.attrib.get('att', ''),
|
||||||
|
'lspd': elvol.attrib.get('lspd', '')
|
||||||
}
|
}
|
||||||
|
|
||||||
# <eldata>
|
elcut = eldata.find('./elcut')
|
||||||
eldata = instrument_track.find('./eldata')
|
if elcut is not None:
|
||||||
if eldata is not None:
|
eldata_info['elcut'] = {
|
||||||
eldata_info = {
|
'cutoff': elcut.attrib.get('cutoff', ''),
|
||||||
'fwet': eldata.attrib.get('fwet', ''),
|
'q': elcut.attrib.get('q', '')
|
||||||
'ftype': eldata.attrib.get('ftype', ''),
|
|
||||||
'fcut': eldata.attrib.get('fcut', ''),
|
|
||||||
'fres': eldata.attrib.get('fres', '')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
elvol = eldata.find('./elvol')
|
elres = eldata.find('./elres')
|
||||||
if elvol is not None:
|
if elres is not None:
|
||||||
eldata_info['elvol'] = {
|
eldata_info['elres'] = {
|
||||||
'sustain': elvol.attrib.get('sustain', ''),
|
'res': elres.attrib.get('res', '')
|
||||||
'lamt': elvol.attrib.get('lamt', ''),
|
|
||||||
'lshp': elvol.attrib.get('lshp', ''),
|
|
||||||
'amt': elvol.attrib.get('amt', ''),
|
|
||||||
'pdel': elvol.attrib.get('pdel', ''),
|
|
||||||
'lpdel': elvol.attrib.get('lpdel', ''),
|
|
||||||
'lspd_numerator': elvol.attrib.get('lspd_numerator', ''),
|
|
||||||
'lspd_syncmode': elvol.attrib.get('lspd_syncmode', ''),
|
|
||||||
'latt': elvol.attrib.get('latt', ''),
|
|
||||||
'ctlenvamt': elvol.attrib.get('ctlenvamt', ''),
|
|
||||||
'x100': elvol.attrib.get('x100', ''),
|
|
||||||
'dec': elvol.attrib.get('dec', ''),
|
|
||||||
'hold': elvol.attrib.get('hold', ''),
|
|
||||||
'rel': elvol.attrib.get('rel', ''),
|
|
||||||
'lspd_denominator': elvol.attrib.get('lspd_denominator', ''),
|
|
||||||
'userwavefile': elvol.attrib.get('userwavefile', ''),
|
|
||||||
'att': elvol.attrib.get('att', ''),
|
|
||||||
'lspd': elvol.attrib.get('lspd', '')
|
|
||||||
}
|
|
||||||
|
|
||||||
elcut = eldata.find('./elcut')
|
|
||||||
if elcut is not None:
|
|
||||||
eldata_info['elcut'] = {
|
|
||||||
'cutoff': elcut.attrib.get('cutoff', ''),
|
|
||||||
'q': elcut.attrib.get('q', '')
|
|
||||||
}
|
|
||||||
|
|
||||||
elres = eldata.find('./elres')
|
|
||||||
if elres is not None:
|
|
||||||
eldata_info['elres'] = {
|
|
||||||
'res': elres.attrib.get('res', '')
|
|
||||||
}
|
|
||||||
|
|
||||||
instrument_info['eldata'] = eldata_info
|
|
||||||
|
|
||||||
# <chordcreator>
|
|
||||||
chordcreator = instrument_track.find('./chordcreator')
|
|
||||||
if chordcreator is not None:
|
|
||||||
instrument_info['chordcreator'] = {
|
|
||||||
'chord_enabled': chordcreator.attrib.get('chord-enabled', ''),
|
|
||||||
'chordrange': chordcreator.attrib.get('chordrange', ''),
|
|
||||||
'chord': chordcreator.attrib.get('chord', '')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# <arpeggiator>
|
instrument_info['eldata'] = eldata_info
|
||||||
arpeggiator = instrument_track.find('./arpeggiator')
|
|
||||||
if arpeggiator is not None:
|
|
||||||
instrument_info['arpeggiator'] = {
|
|
||||||
'arptime': arpeggiator.attrib.get('arptime', ''),
|
|
||||||
'arpmode': arpeggiator.attrib.get('arpmode', ''),
|
|
||||||
'arp': arpeggiator.attrib.get('arp', ''),
|
|
||||||
'arprange': arpeggiator.attrib.get('arprange', '')
|
|
||||||
}
|
|
||||||
|
|
||||||
# <midiport>
|
# <chordcreator>
|
||||||
midiport = instrument_track.find('./midiport')
|
chordcreator = instrument_track.find('./chordcreator')
|
||||||
if midiport is not None:
|
if chordcreator is not None:
|
||||||
instrument_info['midiport'] = {
|
instrument_info['chordcreator'] = {
|
||||||
'outputprogram': midiport.attrib.get('outputprogram', ''),
|
'chord_enabled': chordcreator.attrib.get('chord-enabled', ''),
|
||||||
'inputchannel': midiport.attrib.get('inputchannel', ''),
|
'chordrange': chordcreator.attrib.get('chordrange', ''),
|
||||||
'outputcontroller': midiport.attrib.get('outputcontroller', ''),
|
'chord': chordcreator.attrib.get('chord', '')
|
||||||
'inputcontroller': midiport.attrib.get('inputcontroller', ''),
|
}
|
||||||
'outputchannel': midiport.attrib.get('outputchannel', ''),
|
|
||||||
'writable': midiport.attrib.get('writable', ''),
|
|
||||||
'fixedinputvelocity': midiport.attrib.get('fixedinputvelocity', ''),
|
|
||||||
'basevelocity': midiport.attrib.get('basevelocity', ''),
|
|
||||||
'readable': midiport.attrib.get('readable', ''),
|
|
||||||
'fixedoutputvelocity': midiport.attrib.get('fixedoutputvelocity', ''),
|
|
||||||
'fixedoutputnote': midiport.attrib.get('fixedoutputnote', '')
|
|
||||||
}
|
|
||||||
|
|
||||||
instruments.append(instrument_info)
|
# <arpeggiator>
|
||||||
|
arpeggiator = instrument_track.find('./arpeggiator')
|
||||||
|
if arpeggiator is not None:
|
||||||
|
instrument_info['arpeggiator'] = {
|
||||||
|
'arptime': arpeggiator.attrib.get('arptime', ''),
|
||||||
|
'arpmode': arpeggiator.attrib.get('arpmode', ''),
|
||||||
|
'arp': arpeggiator.attrib.get('arp', ''),
|
||||||
|
'arprange': arpeggiator.attrib.get('arprange', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
# <midiport>
|
||||||
|
midiport = instrument_track.find('./midiport')
|
||||||
|
if midiport is not None:
|
||||||
|
instrument_info['midiport'] = {
|
||||||
|
'outputprogram': midiport.attrib.get('outputprogram', ''),
|
||||||
|
'inputchannel': midiport.attrib.get('inputchannel', ''),
|
||||||
|
'outputcontroller': midiport.attrib.get('outputcontroller', ''),
|
||||||
|
'inputcontroller': midiport.attrib.get('inputcontroller', ''),
|
||||||
|
'outputchannel': midiport.attrib.get('outputchannel', ''),
|
||||||
|
'writable': midiport.attrib.get('writable', ''),
|
||||||
|
'fixedinputvelocity': midiport.attrib.get('fixedinputvelocity', ''),
|
||||||
|
'basevelocity': midiport.attrib.get('basevelocity', ''),
|
||||||
|
'readable': midiport.attrib.get('readable', ''),
|
||||||
|
'fixedoutputvelocity': midiport.attrib.get('fixedoutputvelocity', ''),
|
||||||
|
'fixedoutputnote': midiport.attrib.get('fixedoutputnote', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Fim da Coleta de Detalhes ---
|
||||||
|
|
||||||
|
|
||||||
|
# --- INJEÇÃO DA LÓGICA DE STEPS ---
|
||||||
|
# Encontra todos os patterns associados a este instrumento
|
||||||
|
pattern_elements = instrument_track.findall('pattern')
|
||||||
|
patterns_with_steps = []
|
||||||
|
|
||||||
|
for pattern_xml in pattern_elements:
|
||||||
|
# Chama a função auxiliar para calcular o array de steps
|
||||||
|
steps_array = calculate_steps_from_notes(pattern_xml)
|
||||||
|
|
||||||
|
pattern_data = {
|
||||||
|
'name': pattern_xml.attrib.get('name'),
|
||||||
|
'pos': pattern_xml.attrib.get('pos'),
|
||||||
|
'steps': steps_array, # <-- AQUI ESTÃO OS STEPS
|
||||||
|
}
|
||||||
|
patterns_with_steps.append(pattern_data)
|
||||||
|
|
||||||
|
# Adiciona a lista de patterns (com steps) ao instrumento
|
||||||
|
instrument_info['patterns'] = patterns_with_steps
|
||||||
|
# --- FIM DA INJEÇÃO DE STEPS ---
|
||||||
|
|
||||||
|
instruments.append(instrument_info)
|
||||||
|
|
||||||
|
# Lógica de Tags (Melhorada)
|
||||||
|
# Define a tag principal da bassline com base nos plugins encontrados
|
||||||
|
final_tag = ''
|
||||||
|
if 'audiofileprocessor' in plugin_tags:
|
||||||
|
final_tag = 'audiofileprocessor'
|
||||||
|
elif 'kicker' in plugin_tags:
|
||||||
|
final_tag = 'kicker'
|
||||||
|
elif 'tripleoscillator' in plugin_tags:
|
||||||
|
final_tag = 'tripleoscillator'
|
||||||
|
elif plugin_tags:
|
||||||
|
final_tag = list(plugin_tags)[0] # Pega o primeiro que encontrar
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'bassline_name': track_name,
|
'bassline_name': track_name,
|
||||||
'type': 'bassline',
|
'type': 'bassline',
|
||||||
'tags': tags, #verificar aqui
|
'tags': final_tag,
|
||||||
'instruments': instruments
|
'instruments': instruments
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Se este arquivo for executado diretamente, ele não fará nada
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print("Este arquivo contém a função parse_basslines() e deve ser importado por outro script.")
|
||||||
Reference in new issue
Block a user