tentando obter playlist real do projeto mmp
Deploy / Deploy (push) Successful in 2m34s Details

This commit is contained in:
JotaChina 2025-12-20 13:54:50 -03:00
parent 8d7862fa04
commit 72cea97123
20 changed files with 767605 additions and 376214 deletions

View File

@ -12,10 +12,9 @@ tags:
- Beat/Bassline 1 - Beat/Bassline 1
- Beat/Bassline 0 - Beat/Bassline 0
plugin: plugin:
- sfxr
- ''
- ''
- nes - nes
- ''
- ''
- bitinvader - bitinvader
- papu - papu
sample: [] sample: []
@ -294,19 +293,37 @@ tracks:
plugin_name: sfxr plugin_name: sfxr
usemasterpitch: '' usemasterpitch: ''
vol: '69' vol: '69'
playlist_clips: [] playlist_clips:
tags: sfxr - len: 7680
name: Beat/Bassline 2
pos: 1536
- len: 1536
name: Beat/Bassline 2
pos: 10752
tags: nes
track_name: Beat/Bassline 2 track_name: Beat/Bassline 2
type: bassline type: bassline
- bassline_name: Beat/Bassline 1 - bassline_name: Beat/Bassline 1
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 1
pos: 1344
- len: 192
name: Beat/Bassline 1
pos: 10560
tags: '' tags: ''
track_name: Beat/Bassline 1 track_name: Beat/Bassline 1
type: bassline type: bassline
- bassline_name: Beat/Bassline 0 - bassline_name: Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Beat/Bassline 0
pos: 0
- len: 1536
name: Beat/Bassline 0
pos: 9216
tags: '' tags: ''
track_name: Beat/Bassline 0 track_name: Beat/Bassline 0
type: bassline type: bassline

198820
_data/618.yml

File diff suppressed because it is too large Load Diff

944272
_data/all.yml

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@
- 210424.wav - 210424.wav
- 43yu.wav - 43yu.wav
- 4r3st.wav - 4r3st.wav
- 618.wav
- 7-is-the-answer-060224.wav - 7-is-the-answer-060224.wav
- advait.wav - advait.wav
- aelig.wav - aelig.wav

View File

@ -1,6 +1,6 @@
bpm: '60' bpm: '60'
file: classical-sample-of-a-melodic-music-lmms file: classical-sample-of-a-melodic-music-lmms
original_title: '[Classical] Sample of a melodic music (LMMS)' original_title: classical-sample-of-a-melodic-music-lmms
src: /var/www/html/trens/src_mmpSearch/mmp/classical-sample-of-a-melodic-music-lmms.mmp src: /var/www/html/trens/src_mmpSearch/mmp/classical-sample-of-a-melodic-music-lmms.mmp
tags: tags:
TAG: TAG:
@ -1345,9 +1345,37 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '53.7' vol: '53.7'
playlist_clips:
- len: 768
name: Buildup+Cymbals
pos: 5568
- len: 768
name: Buildup+Cymbals
pos: 7296
- len: 768
name: Buildup+Cymbals
pos: 1536
tags: audiofileprocessor tags: audiofileprocessor
track_name: Buildup+Cymbals
type: bassline type: bassline
- bassline_name: Orchestra Drums - bassline_name: Orchestra Drums
instruments: [] instruments: []
playlist_clips:
- len: 768
name: Orchestra Drums
pos: 1728
- len: 1728
name: Orchestra Drums
pos: 5760
- len: 768
name: Orchestra Drums
pos: 3648
- len: 192
name: Orchestra Drums
pos: 2688
- len: 192
name: Orchestra Drums
pos: 4608
tags: '' tags: ''
track_name: Orchestra Drums
type: bassline type: bassline

View File

@ -1,6 +1,6 @@
bpm: '120' bpm: '120'
file: deep-house-vespertine-feat-georg-no-days-off file: deep-house-vespertine-feat-georg-no-days-off
original_title: '[Deep House] Vespertine feat. GeorG - No Days Off' original_title: deep-house-vespertine-feat-georg-no-days-off
src: /var/www/html/trens/src_mmpSearch/mmp/deep-house-vespertine-feat-georg-no-days-off.mmp src: /var/www/html/trens/src_mmpSearch/mmp/deep-house-vespertine-feat-georg-no-days-off.mmp
tags: tags:
TAG: TAG:
@ -1255,19 +1255,60 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '23' vol: '23'
playlist_clips:
- len: 1536
name: Main Beat
pos: 7680
- len: 1536
name: Main Beat
pos: 19968
tags: audiofileprocessor tags: audiofileprocessor
track_name: Main Beat
type: bassline type: bassline
- bassline_name: Main Beat 2 - bassline_name: Main Beat 2
instruments: [] instruments: []
playlist_clips:
- len: 1344
name: Main Beat 2
pos: 9216
- len: 1536
name: Main Beat 2
pos: 10752
- len: 1344
name: Main Beat 2
pos: 12288
- len: 1344
name: Main Beat 2
pos: 21504
- len: 2880
name: Main Beat 2
pos: 23040
tags: '' tags: ''
track_name: Main Beat 2
type: bassline type: bassline
- bassline_name: Intro Beat - bassline_name: Intro Beat
instruments: [] instruments: []
playlist_clips:
- len: 1536
name: Intro Beat
pos: 3072
- len: 1536
name: Intro Beat
pos: 15360
tags: '' tags: ''
track_name: Intro Beat
type: bassline type: bassline
- bassline_name: Intro Beat 2 - bassline_name: Intro Beat 2
instruments: [] instruments: []
playlist_clips:
- len: 1344
name: Intro Beat 2
pos: 4608
- len: 1344
name: Intro Beat 2
pos: 16896
tags: '' tags: ''
track_name: Intro Beat 2
type: bassline type: bassline
- automations: - automations:
- automation_name: Automation Stuff - automation_name: Automation Stuff
@ -2991,13 +3032,37 @@ tracks:
type: plugin type: plugin
- bassline_name: Snare fast - bassline_name: Snare fast
instruments: [] instruments: []
playlist_clips:
- len: 768
name: Snare fast
pos: 6144
- len: 768
name: Snare fast
pos: 18432
tags: '' tags: ''
track_name: Snare fast
type: bassline type: bassline
- bassline_name: Snare faster - bassline_name: Snare faster
instruments: [] instruments: []
playlist_clips:
- len: 384
name: Snare faster
pos: 6912
- len: 384
name: Snare faster
pos: 19200
tags: '' tags: ''
track_name: Snare faster
type: bassline type: bassline
- bassline_name: Snare the fastest - bassline_name: Snare the fastest
instruments: [] instruments: []
playlist_clips:
- len: 192
name: Snare the fastest
pos: 7296
- len: 192
name: Snare the fastest
pos: 19584
tags: '' tags: ''
track_name: Snare the fastest
type: bassline type: bassline

View File

@ -1103,37 +1103,97 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '1' usemasterpitch: '1'
vol: '100' vol: '100'
playlist_clips: [] playlist_clips:
- len: 3120
name: Beat/Bassline 0
pos: 3072
- len: 3120
name: Beat/Bassline 0
pos: 21504
tags: audiofileprocessor tags: audiofileprocessor
track_name: Beat/Bassline 0 track_name: Beat/Bassline 0
type: bassline type: bassline
- bassline_name: Clone of Beat/Bassline 0 - bassline_name: Clone of Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 768
name: Clone of Beat/Bassline 0
pos: 7680
- len: 768
name: Clone of Beat/Bassline 0
pos: 26112
tags: '' tags: ''
track_name: Clone of Beat/Bassline 0 track_name: Clone of Beat/Bassline 0
type: bassline type: bassline
- bassline_name: Clone of Clone of Beat/Bassline 0 - bassline_name: Clone of Clone of Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 384
name: Clone of Clone of Beat/Bassline 0
pos: 8448
- len: 384
name: Clone of Clone of Beat/Bassline 0
pos: 26880
tags: '' tags: ''
track_name: Clone of Clone of Beat/Bassline 0 track_name: Clone of Clone of Beat/Bassline 0
type: bassline type: bassline
- bassline_name: Clone of Clone of Clone of Beat/Bassline 0 - bassline_name: Clone of Clone of Clone of Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Clone of Clone of Clone of Beat/Bassline 0
pos: 8832
- len: 192
name: Clone of Clone of Clone of Beat/Bassline 0
pos: 27264
tags: '' tags: ''
track_name: Clone of Clone of Clone of Beat/Bassline 0 track_name: Clone of Clone of Clone of Beat/Bassline 0
type: bassline type: bassline
- bassline_name: Clone of Clone of Beat/Bassline 0 - bassline_name: Clone of Clone of Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Clone of Clone of Beat/Bassline 0
pos: 9216
- len: 24
name: Clone of Clone of Beat/Bassline 0
pos: 15360
- len: 1536
name: Clone of Clone of Beat/Bassline 0
pos: 12288
- len: 1536
name: Clone of Clone of Beat/Bassline 0
pos: 27648
- len: 1536
name: Clone of Clone of Beat/Bassline 0
pos: 30720
- len: 24
name: Clone of Clone of Beat/Bassline 0
pos: 36864
- len: 1536
name: Clone of Clone of Beat/Bassline 0
pos: 33792
tags: '' tags: ''
track_name: Clone of Clone of Beat/Bassline 0 track_name: Clone of Clone of Beat/Bassline 0
type: bassline type: bassline
- bassline_name: Clone of Clone of Clone of Beat/Bassline 0 - bassline_name: Clone of Clone of Clone of Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1455
name: Clone of Clone of Clone of Beat/Bassline 0
pos: 10752
- len: 1455
name: Clone of Clone of Clone of Beat/Bassline 0
pos: 13824
- len: 1464
name: Clone of Clone of Clone of Beat/Bassline 0
pos: 29184
- len: 1464
name: Clone of Clone of Clone of Beat/Bassline 0
pos: 32256
- len: 1464
name: Clone of Clone of Clone of Beat/Bassline 0
pos: 35328
tags: '' tags: ''
track_name: Clone of Clone of Clone of Beat/Bassline 0 track_name: Clone of Clone of Clone of Beat/Bassline 0
type: bassline type: bassline

View File

@ -2079,7 +2079,34 @@ tracks:
type: bassline type: bassline
- bassline_name: Beat/Bassline 2 - bassline_name: Beat/Bassline 2
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 2
pos: 768
- len: 192
name: Beat/Bassline 2
pos: 2304
- len: 192
name: Beat/Bassline 2
pos: 3840
- len: 192
name: Beat/Bassline 2
pos: 13056
- len: 192
name: Beat/Bassline 2
pos: 5376
- len: 192
name: Beat/Bassline 2
pos: 14592
- len: 192
name: Beat/Bassline 2
pos: 16224
- len: 384
name: Beat/Bassline 2
pos: 6912
- len: 384
name: Beat/Bassline 2
pos: 19200
tags: '' tags: ''
track_name: Beat/Bassline 2 track_name: Beat/Bassline 2
type: bassline type: bassline
@ -2976,7 +3003,10 @@ tracks:
type: plugin type: plugin
- bassline_name: Beat/Bassline 3 - bassline_name: Beat/Bassline 3
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 2880
name: Beat/Bassline 3
pos: 9984
tags: '' tags: ''
track_name: Beat/Bassline 3 track_name: Beat/Bassline 3
type: bassline type: bassline

View File

@ -340,13 +340,34 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '100' vol: '100'
playlist_clips: [] playlist_clips:
- len: 1344
name: Ride
pos: 9216
- len: 2880
name: Ride
pos: 10752
- len: 2880
name: Ride
pos: 3072
- len: 2880
name: Ride
pos: 17664
- len: 4416
name: Ride
pos: 25344
tags: audiofileprocessor tags: audiofileprocessor
track_name: Ride track_name: Ride
type: bassline type: bassline
- bassline_name: Verse Kick + Snare - bassline_name: Verse Kick + Snare
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 4416
name: Verse Kick + Snare
pos: 1536
- len: 4416
name: Verse Kick + Snare
pos: 16128
tags: '' tags: ''
track_name: Verse Kick + Snare track_name: Verse Kick + Snare
type: bassline type: bassline

View File

@ -598,25 +598,58 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '132.3' vol: '132.3'
playlist_clips: [] playlist_clips:
- len: 2880
name: Kick
pos: 6336
- len: 3072
name: Kick
pos: 1536
- len: 2880
name: Kick
pos: 11520
- len: 1536
name: Kick
pos: 16320
- len: 2688
name: Kick
pos: 18048
tags: audiofileprocessor tags: audiofileprocessor
track_name: Kick track_name: Kick
type: bassline type: bassline
- bassline_name: Clap - bassline_name: Clap
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 2304
name: Clap
pos: 2304
- len: 2304
name: Clap
pos: 12288
tags: '' tags: ''
track_name: Clap track_name: Clap
type: bassline type: bassline
- bassline_name: Clap + Hat - bassline_name: Clap + Hat
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 768
name: Clap + Hat
pos: 7104
- len: 768
name: Clap + Hat
pos: 17088
tags: '' tags: ''
track_name: Clap + Hat track_name: Clap + Hat
type: bassline type: bassline
- bassline_name: Clap + Hat + Perc - bassline_name: Clap + Hat + Perc
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1344
name: Clap + Hat + Perc
pos: 7872
- len: 2688
name: Clap + Hat + Perc
pos: 18048
tags: '' tags: ''
track_name: Clap + Hat + Perc track_name: Clap + Hat + Perc
type: bassline type: bassline

View File

@ -1,6 +1,6 @@
bpm: '200' bpm: '200'
file: hardstyle-vespertine-symphony-of-bass file: hardstyle-vespertine-symphony-of-bass
original_title: '[Hardstyle] Vespertine - Symphony of Bass' original_title: hardstyle-vespertine-symphony-of-bass
src: /var/www/html/trens/src_mmpSearch/mmp/hardstyle-vespertine-symphony-of-bass.mmp src: /var/www/html/trens/src_mmpSearch/mmp/hardstyle-vespertine-symphony-of-bass.mmp
tags: tags:
TAG: TAG:
@ -1695,35 +1695,105 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '66.1' vol: '66.1'
playlist_clips:
- len: 2304
name: Main Bassline
pos: 10368
- len: 3456
name: Main Bassline
pos: 27648
tags: audiofileprocessor tags: audiofileprocessor
track_name: Main Bassline
type: bassline type: bassline
- bassline_name: Main + Clap - bassline_name: Main + Clap
instruments: [] instruments: []
playlist_clips:
- len: 2304
name: Main + Clap
pos: 12672
- len: 3456
name: Main + Clap
pos: 31104
tags: '' tags: ''
track_name: Main + Clap
type: bassline type: bassline
- bassline_name: Pre-Chorus - bassline_name: Pre-Chorus
instruments: [] instruments: []
playlist_clips:
- len: 3072
name: Pre-Chorus
pos: 3072
- len: 6912
name: Pre-Chorus
pos: 17280
tags: '' tags: ''
track_name: Pre-Chorus
type: bassline type: bassline
- bassline_name: Hat - bassline_name: Hat
instruments: [] instruments: []
playlist_clips:
- len: 1536
name: Hat
pos: 4608
- len: 768
name: Hat
pos: 14208
- len: 3456
name: Hat
pos: 20736
- len: 2304
name: Hat
pos: 32256
tags: '' tags: ''
track_name: Hat
type: bassline type: bassline
- bassline_name: Clap - bassline_name: Clap
instruments: [] instruments: []
playlist_clips:
- len: 1536
name: Clap
pos: 7680
- len: 2304
name: Clap
pos: 24192
tags: '' tags: ''
track_name: Clap
type: bassline type: bassline
- bassline_name: Clap fast - bassline_name: Clap fast
instruments: [] instruments: []
playlist_clips:
- len: 384
name: Clap fast
pos: 9216
- len: 384
name: Clap fast
pos: 26496
tags: '' tags: ''
track_name: Clap fast
type: bassline type: bassline
- bassline_name: Clap faster - bassline_name: Clap faster
instruments: [] instruments: []
playlist_clips:
- len: 192
name: Clap faster
pos: 9600
- len: 192
name: Clap faster
pos: 26880
tags: '' tags: ''
track_name: Clap faster
type: bassline type: bassline
- bassline_name: Clap the fastest - bassline_name: Clap the fastest
instruments: [] instruments: []
playlist_clips:
- len: 192
name: Clap the fastest
pos: 9792
- len: 192
name: Clap the fastest
pos: 27072
tags: '' tags: ''
track_name: Clap the fastest
type: bassline type: bassline
- arpeggiator: - arpeggiator:
arp: '0' arp: '0'

View File

@ -7561,25 +7561,67 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '25' vol: '25'
playlist_clips: [] playlist_clips:
- len: 6144
name: Beat/Bassline 1
pos: 6336
- len: 6144
name: Beat/Bassline 1
pos: 21696
tags: audiofileprocessor tags: audiofileprocessor
track_name: Beat/Bassline 1 track_name: Beat/Bassline 1
type: bassline type: bassline
- bassline_name: Beat/Bassline 2 - bassline_name: Beat/Bassline 2
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 6144
name: Beat/Bassline 2
pos: 6336
- len: 6144
name: Beat/Bassline 2
pos: 21696
tags: '' tags: ''
track_name: Beat/Bassline 2 track_name: Beat/Bassline 2
type: bassline type: bassline
- bassline_name: Beat/Bassline 3 - bassline_name: Beat/Bassline 3
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 6144
name: Beat/Bassline 3
pos: 6336
- len: 6144
name: Beat/Bassline 3
pos: 21696
tags: '' tags: ''
track_name: Beat/Bassline 3 track_name: Beat/Bassline 3
type: bassline type: bassline
- bassline_name: Beat/Bassline 0 - bassline_name: Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Beat/Bassline 0
pos: 6336
- len: 1344
name: Beat/Bassline 0
pos: 7872
- len: 1536
name: Beat/Bassline 0
pos: 9408
- len: 1536
name: Beat/Bassline 0
pos: 10944
- len: 1536
name: Beat/Bassline 0
pos: 21696
- len: 1344
name: Beat/Bassline 0
pos: 23232
- len: 1536
name: Beat/Bassline 0
pos: 24768
- len: 1536
name: Beat/Bassline 0
pos: 26304
tags: '' tags: ''
track_name: Beat/Bassline 0 track_name: Beat/Bassline 0
type: bassline type: bassline
@ -10121,13 +10163,25 @@ tracks:
type: plugin type: plugin
- bassline_name: Beat/Bassline 11 - bassline_name: Beat/Bassline 11
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Beat/Bassline 11
pos: 15552
- len: 1536
name: Beat/Bassline 11
pos: 17088
tags: '' tags: ''
track_name: Beat/Bassline 11 track_name: Beat/Bassline 11
type: bassline type: bassline
- bassline_name: Beat/Bassline 14 - bassline_name: Beat/Bassline 14
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Beat/Bassline 14
pos: 15552
- len: 1536
name: Beat/Bassline 14
pos: 17088
tags: '' tags: ''
track_name: Beat/Bassline 14 track_name: Beat/Bassline 14
type: bassline type: bassline
@ -10914,31 +10968,115 @@ tracks:
type: plugin type: plugin
- bassline_name: Beat/Bassline 8 - bassline_name: Beat/Bassline 8
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 8
pos: 6144
- len: 192
name: Beat/Bassline 8
pos: 9216
- len: 192
name: Beat/Bassline 8
pos: 21504
- len: 192
name: Beat/Bassline 8
pos: 24576
- len: 192
name: Beat/Bassline 8
pos: 15360
tags: '' tags: ''
track_name: Beat/Bassline 8 track_name: Beat/Bassline 8
type: bassline type: bassline
- bassline_name: Beat/Bassline 4 - bassline_name: Beat/Bassline 4
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 4
pos: 6144
- len: 192
name: Beat/Bassline 4
pos: 9216
- len: 192
name: Beat/Bassline 4
pos: 16320
- len: 192
name: Beat/Bassline 4
pos: 17856
- len: 192
name: Beat/Bassline 4
pos: 21504
- len: 192
name: Beat/Bassline 4
pos: 24576
- len: 192
name: Beat/Bassline 4
pos: 15360
tags: '' tags: ''
track_name: Beat/Bassline 4 track_name: Beat/Bassline 4
type: bassline type: bassline
- bassline_name: Beat/Bassline 12 - bassline_name: Beat/Bassline 12
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 12
pos: 15552
- len: 192
name: Beat/Bassline 12
pos: 16320
- len: 192
name: Beat/Bassline 12
pos: 17088
- len: 192
name: Beat/Bassline 12
pos: 17856
tags: '' tags: ''
track_name: Beat/Bassline 12 track_name: Beat/Bassline 12
type: bassline type: bassline
- bassline_name: Beat/Bassline 13 - bassline_name: Beat/Bassline 13
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 13
pos: 15552
- len: 192
name: Beat/Bassline 13
pos: 17088
tags: '' tags: ''
track_name: Beat/Bassline 13 track_name: Beat/Bassline 13
type: bassline type: bassline
- bassline_name: Beat/Bassline 5 - bassline_name: Beat/Bassline 5
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 5
pos: 6336
- len: 192
name: Beat/Bassline 5
pos: 7872
- len: 192
name: Beat/Bassline 5
pos: 9408
- len: 192
name: Beat/Bassline 5
pos: 10944
- len: 192
name: Beat/Bassline 5
pos: 15552
- len: 192
name: Beat/Bassline 5
pos: 17088
- len: 192
name: Beat/Bassline 5
pos: 24768
- len: 192
name: Beat/Bassline 5
pos: 26304
- len: 192
name: Beat/Bassline 5
pos: 21696
- len: 192
name: Beat/Bassline 5
pos: 23232
tags: '' tags: ''
track_name: Beat/Bassline 5 track_name: Beat/Bassline 5
type: bassline type: bassline
@ -15108,7 +15246,28 @@ tracks:
type: automation type: automation
- bassline_name: Beat/Bassline 6 - bassline_name: Beat/Bassline 6
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 6
pos: 3264
- len: 192
name: Beat/Bassline 6
pos: 4800
- len: 192
name: Beat/Bassline 6
pos: 12480
- len: 192
name: Beat/Bassline 6
pos: 14016
- len: 192
name: Beat/Bassline 6
pos: 20160
- len: 192
name: Beat/Bassline 6
pos: 18624
- len: 192
name: Beat/Bassline 6
pos: 27840
tags: '' tags: ''
track_name: Beat/Bassline 6 track_name: Beat/Bassline 6
type: bassline type: bassline
@ -16827,13 +16986,31 @@ tracks:
type: automation type: automation
- bassline_name: Beat/Bassline 7 - bassline_name: Beat/Bassline 7
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Beat/Bassline 7
pos: 12480
- len: 3072
name: Beat/Bassline 7
pos: 18624
- len: 1344
name: Beat/Bassline 7
pos: 4800
- len: 1344
name: Beat/Bassline 7
pos: 14016
tags: '' tags: ''
track_name: Beat/Bassline 7 track_name: Beat/Bassline 7
type: bassline type: bassline
- bassline_name: Beat/Bassline 14 - bassline_name: Beat/Bassline 14
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 14
pos: 6144
- len: 192
name: Beat/Bassline 14
pos: 15360
tags: '' tags: ''
track_name: Beat/Bassline 14 track_name: Beat/Bassline 14
type: bassline type: bassline

View File

@ -5546,25 +5546,64 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '1' usemasterpitch: '1'
vol: '25' vol: '25'
playlist_clips: [] playlist_clips:
- len: 4608
name: Beat/Bassline 1
pos: 4992
- len: 6144
name: Beat/Bassline 1
pos: 14208
tags: audiofileprocessor tags: audiofileprocessor
track_name: Beat/Bassline 1 track_name: Beat/Bassline 1
type: bassline type: bassline
- bassline_name: Beat/Bassline 2 - bassline_name: Beat/Bassline 2
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 4608
name: Beat/Bassline 2
pos: 4992
- len: 6144
name: Beat/Bassline 2
pos: 14208
tags: '' tags: ''
track_name: Beat/Bassline 2 track_name: Beat/Bassline 2
type: bassline type: bassline
- bassline_name: Beat/Bassline 3 - bassline_name: Beat/Bassline 3
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 4608
name: Beat/Bassline 3
pos: 4992
- len: 6144
name: Beat/Bassline 3
pos: 14208
tags: '' tags: ''
track_name: Beat/Bassline 3 track_name: Beat/Bassline 3
type: bassline type: bassline
- bassline_name: Beat/Bassline 0 - bassline_name: Beat/Bassline 0
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Beat/Bassline 0
pos: 4992
- len: 1344
name: Beat/Bassline 0
pos: 6528
- len: 1536
name: Beat/Bassline 0
pos: 8064
- len: 1536
name: Beat/Bassline 0
pos: 14208
- len: 1344
name: Beat/Bassline 0
pos: 15744
- len: 1344
name: Beat/Bassline 0
pos: 17280
- len: 1536
name: Beat/Bassline 0
pos: 18816
tags: '' tags: ''
track_name: Beat/Bassline 0 track_name: Beat/Bassline 0
type: bassline type: bassline
@ -7853,19 +7892,73 @@ tracks:
type: plugin type: plugin
- bassline_name: Beat/Bassline 8 - bassline_name: Beat/Bassline 8
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 8
pos: 4800
- len: 192
name: Beat/Bassline 8
pos: 7872
- len: 192
name: Beat/Bassline 8
pos: 14016
- len: 192
name: Beat/Bassline 8
pos: 17088
- len: 192
name: Beat/Bassline 8
pos: 18624
tags: '' tags: ''
track_name: Beat/Bassline 8 track_name: Beat/Bassline 8
type: bassline type: bassline
- bassline_name: Beat/Bassline 4 - bassline_name: Beat/Bassline 4
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 4
pos: 4800
- len: 192
name: Beat/Bassline 4
pos: 7872
- len: 192
name: Beat/Bassline 4
pos: 14016
- len: 192
name: Beat/Bassline 4
pos: 17088
- len: 192
name: Beat/Bassline 4
pos: 18624
tags: '' tags: ''
track_name: Beat/Bassline 4 track_name: Beat/Bassline 4
type: bassline type: bassline
- bassline_name: Beat/Bassline 5 - bassline_name: Beat/Bassline 5
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 5
pos: 4992
- len: 192
name: Beat/Bassline 5
pos: 6528
- len: 192
name: Beat/Bassline 5
pos: 8064
- len: 192
name: Beat/Bassline 5
pos: 9600
- len: 192
name: Beat/Bassline 5
pos: 14208
- len: 192
name: Beat/Bassline 5
pos: 15744
- len: 192
name: Beat/Bassline 5
pos: 17280
- len: 192
name: Beat/Bassline 5
pos: 18816
tags: '' tags: ''
track_name: Beat/Bassline 5 track_name: Beat/Bassline 5
type: bassline type: bassline

View File

@ -1456,37 +1456,100 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '128.8' vol: '128.8'
playlist_clips: [] playlist_clips:
- len: 2880
name: Snap
pos: 1728
tags: audiofileprocessor tags: audiofileprocessor
track_name: Snap track_name: Snap
type: bassline type: bassline
- bassline_name: Kick - bassline_name: Kick
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 2112
name: Kick
pos: 11712
tags: '' tags: ''
track_name: Kick track_name: Kick
type: bassline type: bassline
- bassline_name: Main Beat - bassline_name: Main Beat
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 768
name: Main Beat
pos: 6528
- len: 576
name: Main Beat
pos: 7296
- len: 768
name: Main Beat
pos: 8064
- len: 576
name: Main Beat
pos: 8832
- len: 2880
name: Main Beat
pos: 14016
- len: 1344
name: Main Beat
pos: 18816
- len: 1344
name: Main Beat
pos: 23424
- len: 3072
name: Main Beat
pos: 20352
tags: '' tags: ''
track_name: Main Beat track_name: Main Beat
type: bassline type: bassline
- bassline_name: Snare - bassline_name: Snare
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 576
name: Snare
pos: 7296
- len: 768
name: Snare
pos: 8064
- len: 192
name: Snare
pos: 7872
- len: 768
name: Snare
pos: 8832
- len: 3072
name: Snare
pos: 20352
tags: '' tags: ''
track_name: Snare track_name: Snare
type: bassline type: bassline
- bassline_name: Hihat - bassline_name: Hihat
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 768
name: Hihat
pos: 8064
- len: 576
name: Hihat
pos: 8832
- len: 1344
name: Hihat
pos: 15552
- len: 1536
name: Hihat
pos: 21888
tags: '' tags: ''
track_name: Hihat track_name: Hihat
type: bassline type: bassline
- bassline_name: Fill - bassline_name: Fill
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Fill
pos: 6336
- len: 192
name: Fill
pos: 18624
tags: '' tags: ''
track_name: Fill track_name: Fill
type: bassline type: bassline

View File

@ -143,7 +143,10 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '200' vol: '200'
playlist_clips: [] playlist_clips:
- len: 192
name: tom
pos: 4800
tags: audiofileprocessor tags: audiofileprocessor
track_name: tom track_name: tom
type: bassline type: bassline

View File

@ -1781,7 +1781,145 @@ tracks:
type: plugin type: plugin
- bassline_name: Beat/Bassline 1 - bassline_name: Beat/Bassline 1
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 1
pos: 960
- len: 192
name: Beat/Bassline 1
pos: 768
- len: 192
name: Beat/Bassline 1
pos: 1152
- len: 192
name: Beat/Bassline 1
pos: 1344
- len: 192
name: Beat/Bassline 1
pos: 1536
- len: 192
name: Beat/Bassline 1
pos: 1728
- len: 192
name: Beat/Bassline 1
pos: 1920
- len: 192
name: Beat/Bassline 1
pos: 2112
- len: 192
name: Beat/Bassline 1
pos: 2304
- len: 192
name: Beat/Bassline 1
pos: 2496
- len: 192
name: Beat/Bassline 1
pos: 2688
- len: 192
name: Beat/Bassline 1
pos: 2880
- len: 192
name: Beat/Bassline 1
pos: 3072
- len: 192
name: Beat/Bassline 1
pos: 3264
- len: 192
name: Beat/Bassline 1
pos: 3456
- len: 192
name: Beat/Bassline 1
pos: 3648
- len: 192
name: Beat/Bassline 1
pos: 4608
- len: 192
name: Beat/Bassline 1
pos: 4800
- len: 192
name: Beat/Bassline 1
pos: 4992
- len: 192
name: Beat/Bassline 1
pos: 5184
- len: 192
name: Beat/Bassline 1
pos: 5376
- len: 192
name: Beat/Bassline 1
pos: 5568
- len: 192
name: Beat/Bassline 1
pos: 5760
- len: 192
name: Beat/Bassline 1
pos: 5952
- len: 192
name: Beat/Bassline 1
pos: 6144
- len: 192
name: Beat/Bassline 1
pos: 6336
- len: 192
name: Beat/Bassline 1
pos: 6528
- len: 192
name: Beat/Bassline 1
pos: 6720
- len: 192
name: Beat/Bassline 1
pos: 7104
- len: 192
name: Beat/Bassline 1
pos: 6912
- len: 192
name: Beat/Bassline 1
pos: 4416
- len: 192
name: Beat/Bassline 1
pos: 7296
- len: 192
name: Beat/Bassline 1
pos: 7680
- len: 192
name: Beat/Bassline 1
pos: 7488
- len: 192
name: Beat/Bassline 1
pos: 7872
- len: 192
name: Beat/Bassline 1
pos: 8256
- len: 192
name: Beat/Bassline 1
pos: 8064
- len: 192
name: Beat/Bassline 1
pos: 8448
- len: 192
name: Beat/Bassline 1
pos: 8640
- len: 192
name: Beat/Bassline 1
pos: 9408
- len: 192
name: Beat/Bassline 1
pos: 9600
- len: 192
name: Beat/Bassline 1
pos: 9792
- len: 192
name: Beat/Bassline 1
pos: 9984
- len: 192
name: Beat/Bassline 1
pos: 10176
- len: 192
name: Beat/Bassline 1
pos: 10368
- len: 192
name: Beat/Bassline 1
pos: 10560
tags: '' tags: ''
track_name: Beat/Bassline 1 track_name: Beat/Bassline 1
type: bassline type: bassline
@ -2176,7 +2314,58 @@ tracks:
type: plugin type: plugin
- bassline_name: Beat/Bassline 2 - bassline_name: Beat/Bassline 2
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 192
name: Beat/Bassline 2
pos: 4032
- len: 192
name: Beat/Bassline 2
pos: 4224
- len: 192
name: Beat/Bassline 2
pos: 4416
- len: 192
name: Beat/Bassline 2
pos: 3840
- len: 192
name: Beat/Bassline 2
pos: 5376
- len: 192
name: Beat/Bassline 2
pos: 5568
- len: 192
name: Beat/Bassline 2
pos: 7488
- len: 192
name: Beat/Bassline 2
pos: 7680
- len: 192
name: Beat/Bassline 2
pos: 7872
- len: 192
name: Beat/Bassline 2
pos: 8064
- len: 192
name: Beat/Bassline 2
pos: 8256
- len: 192
name: Beat/Bassline 2
pos: 8448
- len: 192
name: Beat/Bassline 2
pos: 8640
- len: 192
name: Beat/Bassline 2
pos: 8832
- len: 192
name: Beat/Bassline 2
pos: 9024
- len: 192
name: Beat/Bassline 2
pos: 9984
- len: 192
name: Beat/Bassline 2
pos: 10176
tags: '' tags: ''
track_name: Beat/Bassline 2 track_name: Beat/Bassline 2
type: bassline type: bassline

View File

@ -4032,13 +4032,34 @@ tracks:
plugin_name: audiofileprocessor plugin_name: audiofileprocessor
usemasterpitch: '' usemasterpitch: ''
vol: '64' vol: '64'
playlist_clips: [] playlist_clips:
- len: 1536
name: Drop Beat 1
pos: 8064
- len: 1536
name: Drop Beat 1
pos: 22848
tags: audiofileprocessor tags: audiofileprocessor
track_name: Drop Beat 1 track_name: Drop Beat 1
type: bassline type: bassline
- bassline_name: Drop Beat 2 - bassline_name: Drop Beat 2
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Drop Beat 2
pos: 9600
- len: 1344
name: Drop Beat 2
pos: 11136
- len: 1536
name: Drop Beat 2
pos: 24384
- len: 1536
name: Drop Beat 2
pos: 25920
- len: 2112
name: Drop Beat 2
pos: 27456
tags: '' tags: ''
track_name: Drop Beat 2 track_name: Drop Beat 2
type: bassline type: bassline
@ -5295,13 +5316,28 @@ tracks:
type: plugin type: plugin
- bassline_name: Verse BEat 1 - bassline_name: Verse BEat 1
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Verse BEat 1
pos: 1536
- len: 1536
name: Verse BEat 1
pos: 14784
tags: '' tags: ''
track_name: Verse BEat 1 track_name: Verse BEat 1
type: bassline type: bassline
- bassline_name: Verse Beat 2 - bassline_name: Verse Beat 2
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Verse Beat 2
pos: 3072
- len: 1344
name: Verse Beat 2
pos: 4608
- len: 4416
name: Verse Beat 2
pos: 16320
tags: '' tags: ''
track_name: Verse Beat 2 track_name: Verse Beat 2
type: bassline type: bassline
@ -6400,7 +6436,13 @@ tracks:
type: plugin type: plugin
- bassline_name: Build Up - bassline_name: Build Up
instruments: [] instruments: []
playlist_clips: [] playlist_clips:
- len: 1536
name: Build Up
pos: 6144
- len: 1536
name: Build Up
pos: 20928
tags: '' tags: ''
track_name: Build Up track_name: Build Up
type: bassline type: bassline

View File

@ -1,6 +1,6 @@
bpm: '131' bpm: '131'
file: traptwinshot file: traptwinshot
original_title: '[Trap]TwinShot' original_title: traptwinshot
src: /var/www/html/trens/src_mmpSearch/mmp/traptwinshot.mmp src: /var/www/html/trens/src_mmpSearch/mmp/traptwinshot.mmp
tags: tags:
TAG: TAG:
@ -2718,15 +2718,42 @@ tracks:
plugin_name: bitinvader plugin_name: bitinvader
usemasterpitch: '1' usemasterpitch: '1'
vol: '' vol: ''
playlist_clips:
- len: 3072
name: Rythm1
pos: 1536
- len: 1536
name: Rythm1
pos: 9216
- len: 1536
name: Rythm1
pos: 12288
tags: audiofileprocessor tags: audiofileprocessor
track_name: Rythm1
type: bassline type: bassline
- bassline_name: Rytmh1(1) - bassline_name: Rytmh1(1)
instruments: [] instruments: []
playlist_clips:
- len: 768
name: Rytmh1(1)
pos: 10752
- len: 768
name: Rytmh1(1)
pos: 11520
- len: 3072
name: Rytmh1(1)
pos: 13824
tags: '' tags: ''
track_name: Rytmh1(1)
type: bassline type: bassline
- bassline_name: Rythm2 - bassline_name: Rythm2
instruments: [] instruments: []
playlist_clips:
- len: 3072
name: Rythm2
pos: 4608
tags: '' tags: ''
track_name: Rythm2
type: bassline type: bassline
- arpeggiator: - arpeggiator:
arp: '0' arp: '0'
@ -2846,19 +2873,51 @@ tracks:
type: plugin type: plugin
- bassline_name: Bass1 - bassline_name: Bass1
instruments: [] instruments: []
playlist_clips:
- len: 6144
name: Bass1
pos: 1536
- len: 1536
name: Bass1
pos: 9216
- len: 1536
name: Bass1
pos: 12288
tags: '' tags: ''
track_name: Bass1
type: bassline type: bassline
- bassline_name: Bas1(1) - bassline_name: Bas1(1)
instruments: [] instruments: []
playlist_clips:
- len: 1536
name: Bas1(1)
pos: 10752
- len: 3072
name: Bas1(1)
pos: 13824
tags: '' tags: ''
track_name: Bas1(1)
type: bassline type: bassline
- bassline_name: Bass2 - bassline_name: Bass2
instruments: [] instruments: []
playlist_clips:
- len: 1536
name: Bass2
pos: 7680
tags: '' tags: ''
track_name: Bass2
type: bassline type: bassline
- bassline_name: xtra melody - bassline_name: xtra melody
instruments: [] instruments: []
playlist_clips:
- len: 3072
name: xtra melody
pos: 4608
- len: 7680
name: xtra melody
pos: 9216
tags: '' tags: ''
track_name: xtra melody
type: bassline type: bassline
- automations: - automations:
- automation_name: Automation Track - automation_name: Automation Track

View File

@ -1,6 +1,6 @@
bpm: '156' bpm: '156'
file: ysysysysysy file: ysysysysysy
original_title: ' ysysysysysy' original_title: ysysysysysy
src: /var/www/html/trens/src_mmpSearch/mmp/ysysysysysy.mmp src: /var/www/html/trens/src_mmpSearch/mmp/ysysysysysy.mmp
tags: tags:
TAG: TAG:

View File

@ -27,7 +27,7 @@ export function renderAudioEditor() {
if (!audioEditor || !existingTrackContainer) return; if (!audioEditor || !existingTrackContainer) return;
// --- CORREÇÃO DO ERRO DOMException --- // --- Identifica o pai real do container ---
const tracksParent = existingTrackContainer.parentElement; const tracksParent = existingTrackContainer.parentElement;
// --- CRIAÇÃO E RENDERIZAÇÃO DA RÉGUA --- // --- CRIAÇÃO E RENDERIZAÇÃO DA RÉGUA ---
@ -235,12 +235,24 @@ export function renderAudioEditor() {
tracksParent.replaceChild(newTrackContainer, existingTrackContainer); tracksParent.replaceChild(newTrackContainer, existingTrackContainer);
// === RENDERIZAÇÃO DAS PISTAS (LANES) === // === RENDERIZAÇÃO DAS PISTAS (LANES) ===
appState.audio.tracks.forEach((trackData) => {
// CORREÇÃO: Junta as pistas de áudio com as Basslines (que estão no Pattern State)
const tracksToRender = [...(appState.audio.tracks || [])];
if (appState.pattern && appState.pattern.tracks) {
appState.pattern.tracks.forEach(pTrack => {
// Adiciona se for bassline e ainda não existir na lista
if (pTrack.type === 'bassline' && !tracksToRender.find(t => t.id === pTrack.id)) {
tracksToRender.push(pTrack);
}
});
}
tracksToRender.forEach((trackData) => {
const audioTrackLane = document.createElement("div"); const audioTrackLane = document.createElement("div");
audioTrackLane.className = "audio-track-lane"; audioTrackLane.className = "audio-track-lane";
audioTrackLane.dataset.trackId = trackData.id; audioTrackLane.dataset.trackId = trackData.id;
// Ícone dinâmico baseado no tipo // Ícone dinâmico
let iconHTML = '<i class="fa-solid fa-music"></i>'; let iconHTML = '<i class="fa-solid fa-music"></i>';
if(trackData.type === 'bassline') iconHTML = '<i class="fa-solid fa-th-large" title="Bassline"></i>'; if(trackData.type === 'bassline') iconHTML = '<i class="fa-solid fa-th-large" title="Bassline"></i>';
@ -267,12 +279,12 @@ export function renderAudioEditor() {
const timelineContainer = audioTrackLane.querySelector(".timeline-container"); const timelineContainer = audioTrackLane.querySelector(".timeline-container");
const grid = timelineContainer.querySelector(".spectrogram-view-grid"); const grid = timelineContainer.querySelector(".spectrogram-view-grid");
// Configura variáveis CSS para a grade // Configura variáveis CSS
grid.style.setProperty("--step-width", `${stepWidthPx}px`); grid.style.setProperty("--step-width", `${stepWidthPx}px`);
grid.style.setProperty("--beat-width", `${beatWidthPx}px`); grid.style.setProperty("--beat-width", `${beatWidthPx}px`);
grid.style.setProperty("--bar-width", `${barWidthPx}px`); grid.style.setProperty("--bar-width", `${barWidthPx}px`);
// --- LÓGICA DE DRAG & DROP (Para Samples de Áudio) --- // Drag & Drop
timelineContainer.addEventListener("dragover", (e) => { timelineContainer.addEventListener("dragover", (e) => {
e.preventDefault(); e.preventDefault();
audioTrackLane.classList.add("drag-over"); audioTrackLane.classList.add("drag-over");
@ -308,18 +320,14 @@ export function renderAudioEditor() {
} }
}); });
// ================================================================= // --- RENDERIZAÇÃO DOS CLIPES DE BASSLINE (Blocos Azuis) ---
// 👇 ADIÇÃO: RENDERIZAÇÃO DOS CLIPES DE BASSLINE (Blocos Azuis)
// =================================================================
if (trackData.type === "bassline" && trackData.playlist_clips) { if (trackData.type === "bassline" && trackData.playlist_clips) {
trackData.playlist_clips.forEach(clip => { trackData.playlist_clips.forEach(clip => {
const clipDiv = document.createElement("div"); const clipDiv = document.createElement("div");
clipDiv.className = "timeline-clip bassline-clip"; // Use CSS para cor clipDiv.className = "timeline-clip bassline-clip";
// CONVERSÃO DE TICKS (MMP) PARA PIXELS (UI) // CONVERSÃO MMP (192 ticks/compasso?) vs StepWidth
// No LMMS: 1 passo (step) = 12 ticks. // Se stepWidthPx representa 1/16, e cada step tem 12 ticks
// stepWidthPx é a largura de 1 passo na interface atual (com zoom).
// Logo: Pixels = (Ticks / 12) * stepWidthPx
const steps = clip.pos / 12; const steps = clip.pos / 12;
const lengthInSteps = clip.len / 12; const lengthInSteps = clip.len / 12;
@ -330,14 +338,13 @@ export function renderAudioEditor() {
clipDiv.style.left = `${leftPos}px`; clipDiv.style.left = `${leftPos}px`;
clipDiv.style.width = `${widthDim}px`; clipDiv.style.width = `${widthDim}px`;
clipDiv.style.height = "100%"; clipDiv.style.height = "100%";
clipDiv.style.backgroundColor = "rgba(0, 170, 170, 0.6)"; // Teal LMMS clipDiv.style.backgroundColor = "rgba(0, 170, 170, 0.6)";
clipDiv.style.border = "1px solid #00aaaa"; clipDiv.style.border = "1px solid #00aaaa";
clipDiv.style.boxSizing = "border-box"; clipDiv.style.boxSizing = "border-box";
clipDiv.style.cursor = "pointer"; clipDiv.style.cursor = "pointer";
clipDiv.style.zIndex = "5"; // Garante que fique clicável clipDiv.style.zIndex = "5";
clipDiv.title = `${clip.name} (Pos: ${clip.pos})`; clipDiv.title = `${clip.name} (Pos: ${clip.pos})`;
// Label pequeno
const label = document.createElement("span"); const label = document.createElement("span");
label.innerText = clip.name; label.innerText = clip.name;
label.style.fontSize = "0.7rem"; label.style.fontSize = "0.7rem";
@ -348,7 +355,6 @@ export function renderAudioEditor() {
label.style.overflow = "hidden"; label.style.overflow = "hidden";
clipDiv.appendChild(label); clipDiv.appendChild(label);
// INTERAÇÃO: Clique duplo para abrir o editor de patterns
clipDiv.addEventListener("dblclick", (e) => { clipDiv.addEventListener("dblclick", (e) => {
e.stopPropagation(); e.stopPropagation();
if (window.openPatternEditor) { if (window.openPatternEditor) {
@ -358,19 +364,19 @@ export function renderAudioEditor() {
} }
}); });
// Adiciona ao Grid da timeline
grid.appendChild(clipDiv); grid.appendChild(clipDiv);
}); });
} }
}); });
// 👆 FIM DA ADIÇÃO
// === RENDERIZAÇÃO DE CLIPES DE ÁUDIO (Samples Editáveis) === // === RENDERIZAÇÃO DE CLIPES DE ÁUDIO (Samples) ===
appState.audio.clips.forEach((clip) => { appState.audio.clips.forEach((clip) => {
// Busca a pista correta (pode ser nova ou antiga)
const parentGrid = newTrackContainer.querySelector( const parentGrid = newTrackContainer.querySelector(
`.audio-track-lane[data-track-id="${clip.trackId}"] .spectrogram-view-grid` `.audio-track-lane[data-track-id="${clip.trackId}"] .spectrogram-view-grid`
); );
if (!parentGrid) return; if (!parentGrid) return; // Se o clipe aponta pra uma pista que não existe, ignora
const clipElement = document.createElement("div"); const clipElement = document.createElement("div");
clipElement.className = "timeline-clip"; clipElement.className = "timeline-clip";
clipElement.dataset.clipId = clip.id; clipElement.dataset.clipId = clip.id;
@ -390,7 +396,6 @@ export function renderAudioEditor() {
clipElement.innerHTML = ` <div class="clip-resize-handle left"></div> <span class="clip-name">${clip.name} ${pitchStr}</span> <canvas class="waveform-canvas-clip"></canvas> <div class="clip-resize-handle right"></div> `; clipElement.innerHTML = ` <div class="clip-resize-handle left"></div> <span class="clip-name">${clip.name} ${pitchStr}</span> <canvas class="waveform-canvas-clip"></canvas> <div class="clip-resize-handle right"></div> `;
// Visualização de Steps (Pattern Clip)
if ( if (
clip.patternData && clip.patternData &&
Array.isArray(clip.patternData) && Array.isArray(clip.patternData) &&
@ -409,7 +414,6 @@ export function renderAudioEditor() {
parentGrid.appendChild(clipElement); parentGrid.appendChild(clipElement);
// Renderização do Canvas (Waveform)
if (clip.buffer) { if (clip.buffer) {
const canvas = clipElement.querySelector(".waveform-canvas-clip"); const canvas = clipElement.querySelector(".waveform-canvas-clip");
const canvasWidth = (clip.durationInSeconds || 0) * pixelsPerSecond; const canvasWidth = (clip.durationInSeconds || 0) * pixelsPerSecond;
@ -432,7 +436,6 @@ export function renderAudioEditor() {
} }
} }
// Wheel listener (pitch)
clipElement.addEventListener("wheel", (e) => { clipElement.addEventListener("wheel", (e) => {
e.preventDefault(); e.preventDefault();
const clipToUpdate = appState.audio.clips.find( const clipToUpdate = appState.audio.clips.find(
@ -472,7 +475,6 @@ export function renderAudioEditor() {
document.getElementById("ruler-context-menu").style.display = "none"; document.getElementById("ruler-context-menu").style.display = "none";
const clipElement = e.target.closest(".timeline-clip"); const clipElement = e.target.closest(".timeline-clip");
// Desseleciona se clicar fora
if (!clipElement && e.button !== 2) { if (!clipElement && e.button !== 2) {
if (appState.global.selectedClipId) { if (appState.global.selectedClipId) {
appState.global.selectedClipId = null; appState.global.selectedClipId = null;
@ -486,7 +488,7 @@ export function renderAudioEditor() {
const handle = e.target.closest(".clip-resize-handle"); const handle = e.target.closest(".clip-resize-handle");
// Slice Tool // Slice Tool
if (appState.global.sliceToolActive && clipElement && !clipElement.classList.contains("bassline-clip")) { // Protege bassline if (appState.global.sliceToolActive && clipElement && !clipElement.classList.contains("bassline-clip")) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
const clipId = clipElement.dataset.clipId; const clipId = clipElement.dataset.clipId;
@ -510,7 +512,7 @@ export function renderAudioEditor() {
return; return;
} }
// Resize Handle (Apenas para Audio Clips por enquanto) // Resize Handle
if (handle) { if (handle) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
@ -553,8 +555,6 @@ export function renderAudioEditor() {
clipElement.style.width = `${newWidthFinalPx}px`; clipElement.style.width = `${newWidthFinalPx}px`;
} }
} else if (appState.global.resizeMode === "stretch") { } else if (appState.global.resizeMode === "stretch") {
// (Lógica de Stretch omitida por brevidade, mas mantida igual ao original)
// ... (mantido igual ao original)
if (handleType === "right") { if (handleType === "right") {
let newWidthPx = initialWidthPx + deltaX; let newWidthPx = initialWidthPx + deltaX;
let newDuration = newWidthPx / currentPixelsPerSecond; let newDuration = newWidthPx / currentPixelsPerSecond;
@ -578,7 +578,6 @@ export function renderAudioEditor() {
const onMouseUp = (upEvent) => { const onMouseUp = (upEvent) => {
document.removeEventListener("mousemove", onMouseMove); document.removeEventListener("mousemove", onMouseMove);
document.removeEventListener("mouseup", onMouseUp); document.removeEventListener("mouseup", onMouseUp);
// Aplicação das mudanças (mantida lógica original)
const finalLeftPx = clipElement.offsetLeft; const finalLeftPx = clipElement.offsetLeft;
const finalWidthPx = clipElement.offsetWidth; const finalWidthPx = clipElement.offsetWidth;
const newStartTime = finalLeftPx / currentPixelsPerSecond; const newStartTime = finalLeftPx / currentPixelsPerSecond;
@ -594,7 +593,6 @@ export function renderAudioEditor() {
sendActionSafe({ type: "UPDATE_AUDIO_CLIP", clipId, props: { startTimeInSeconds: newStartTime, durationInSeconds: newDuration, offset: newOffset, pitch: 0 } }); sendActionSafe({ type: "UPDATE_AUDIO_CLIP", clipId, props: { startTimeInSeconds: newStartTime, durationInSeconds: newDuration, offset: newOffset, pitch: 0 } });
} }
} else { } else {
// Stretch Logic update
const newPlaybackRate = initialOriginalDuration / newDuration; const newPlaybackRate = initialOriginalDuration / newDuration;
const newPitch = 12 * Math.log2(newPlaybackRate); const newPitch = 12 * Math.log2(newPlaybackRate);
if(handleType === "right") { if(handleType === "right") {
@ -613,7 +611,7 @@ export function renderAudioEditor() {
return; return;
} }
// Drag Clip (Audio apenas, por enquanto) // Drag Clip (Audio apenas)
if (clipElement && !clipElement.classList.contains("bassline-clip")) { if (clipElement && !clipElement.classList.contains("bassline-clip")) {
const clipId = clipElement.dataset.clipId; const clipId = clipElement.dataset.clipId;
if (appState.global.selectedClipId !== clipId) { if (appState.global.selectedClipId !== clipId) {
@ -695,7 +693,6 @@ export function renderAudioEditor() {
if (!menu) return; if (!menu) return;
const clipElement = e.target.closest(".timeline-clip"); const clipElement = e.target.closest(".timeline-clip");
// Itens do menu
const copyItem = document.getElementById("copy-clip"); const copyItem = document.getElementById("copy-clip");
const cutItem = document.getElementById("cut-clip"); const cutItem = document.getElementById("cut-clip");
const pasteItem = document.getElementById("paste-clip"); const pasteItem = document.getElementById("paste-clip");
@ -705,7 +702,6 @@ export function renderAudioEditor() {
pasteItem.style.display = canPaste ? "block" : "none"; pasteItem.style.display = canPaste ? "block" : "none";
if (clipElement) { if (clipElement) {
// Bloqueia ações em Bassline clips por enquanto (pois são read-only na playlist)
if(clipElement.classList.contains("bassline-clip")) { if(clipElement.classList.contains("bassline-clip")) {
menu.style.display = "none"; menu.style.display = "none";
return; return;
@ -750,7 +746,6 @@ export function renderAudioEditor() {
}); });
} }
// Helper para envio seguro
function sendActionSafe(action) { function sendActionSafe(action) {
try { try {
sendAction(action); sendAction(action);
@ -759,7 +754,6 @@ function sendActionSafe(action) {
} }
} }
// Funções de UI
export function updateAudioEditorUI() { export function updateAudioEditorUI() {
const playBtn = document.getElementById("audio-editor-play-btn"); const playBtn = document.getElementById("audio-editor-play-btn");
if (!playBtn) return; if (!playBtn) return;
@ -782,10 +776,6 @@ export function resetPlayheadVisual() {
}); });
} }
/**
* Cria o elemento HTML (e seus filhos) para a visualização
* dos steps de um pattern clip.
*/
function createPatternViewElement(patternData) { function createPatternViewElement(patternData) {
const view = document.createElement("div"); const view = document.createElement("div");
view.className = "pattern-clip-view"; view.className = "pattern-clip-view";