f@0
|
1 library(dplyr)
|
f@0
|
2 library(tidyr)
|
f@0
|
3
|
f@0
|
4 feats_mode <- 'filtered_fb'
|
f@0
|
5
|
f@0
|
6 feats_path <- paste0('~/Repositories/research/datasets/features/gtzan/',
|
f@0
|
7 feats_mode, '/essentia/')
|
f@0
|
8
|
f@0
|
9 essentia_feats <- read.csv(
|
f@0
|
10 file = paste0(feats_path, 'feats_essentia.csv')
|
f@0
|
11 )
|
f@0
|
12 essentia_feats <- essentia_feats %>%
|
f@0
|
13 separate(json_file_name, c('a', 'b', 'file'), sep = '/') %>%
|
f@0
|
14 select(-a, -b) %>%
|
f@0
|
15 separate(file, c('gt'), extra = 'drop') %>%
|
f@0
|
16 mutate(ex_id = 1:nrow(essentia_feats)) %>%
|
f@0
|
17 select(ex_id, gt, everything())
|
f@0
|
18
|
f@0
|
19
|
f@0
|
20 lowlevel <- essentia_feats %>%
|
f@0
|
21 select(ex_id, gt,
|
f@0
|
22 starts_with('lowlevel'))
|
f@0
|
23 rhythm <- essentia_feats %>%
|
f@0
|
24 select(ex_id, gt,
|
f@0
|
25 starts_with('rhythm'))
|
f@0
|
26 tonal <- essentia_feats %>%
|
f@0
|
27 select(ex_id, gt,
|
f@0
|
28 starts_with('tonal')) %>%
|
f@0
|
29 mutate(
|
f@0
|
30 tonal.chords_scale = as.numeric(tonal.chords_scale),
|
f@0
|
31 tonal.chords_key = as.numeric(tonal.chords_key),
|
f@0
|
32 tonal.key_key = as.numeric(tonal.key_key),
|
f@0
|
33 tonal.key_scale = as.numeric(tonal.key_scale))
|
f@0
|
34
|
f@0
|
35 timbre_dynamics <- lowlevel %>%
|
f@0
|
36 select(ex_id, gt,
|
f@0
|
37 contains('loudness'),
|
f@0
|
38 contains('silence'),
|
f@0
|
39 contains('spectral'),
|
f@0
|
40 contains('complexity'),
|
f@0
|
41 contains('hfc'),
|
f@0
|
42 contains('zerocrossingrate'),
|
f@0
|
43 contains('dissonance'),
|
f@0
|
44 contains('salience'))
|
f@0
|
45 mfcc <- lowlevel %>%
|
f@0
|
46 select(ex_id, gt,
|
f@0
|
47 contains('mfcc'))
|
f@0
|
48 gfcc <- lowlevel %>%
|
f@0
|
49 select(ex_id, gt,
|
f@0
|
50 contains('gfcc'))
|
f@0
|
51 barkbands <- lowlevel %>%
|
f@0
|
52 select(ex_id, gt,
|
f@0
|
53 contains('barkbands'))
|
f@0
|
54 melbands <- lowlevel %>%
|
f@0
|
55 select(ex_id, gt,
|
f@0
|
56 contains('melbands'))
|
f@0
|
57 erbbands <- lowlevel %>%
|
f@0
|
58 select(ex_id, gt,
|
f@0
|
59 contains('erbbands'))
|
f@0
|
60
|
f@0
|
61 write.csv(x = rhythm,
|
f@0
|
62 file = paste0(feats_path, 'essentia_rhythm.csv'),
|
f@0
|
63 row.names = F)
|
f@0
|
64 write.csv(x = tonal,
|
f@0
|
65 file = paste0(feats_path, 'essentia_tonal.csv'),
|
f@0
|
66 row.names = F)
|
f@0
|
67 write.csv(x = timbre_dynamics,
|
f@0
|
68 file = paste0(feats_path, 'essentia_timbre_dynamics.csv'),
|
f@0
|
69 row.names = F)
|
f@0
|
70 write.csv(x = mfcc,
|
f@0
|
71 file = paste0(feats_path, 'essentia_mfcc.csv'),
|
f@0
|
72 row.names = F)
|
f@0
|
73 write.csv(x = gfcc,
|
f@0
|
74 file = paste0(feats_path, 'essentia_gfcc.csv'),
|
f@0
|
75 row.names = F)
|
f@0
|
76 write.csv(x = barkbands,
|
f@0
|
77 file = paste0(feats_path, 'essentia_barkbands.csv'),
|
f@0
|
78 row.names = F)
|
f@0
|
79 write.csv(x = melbands,
|
f@0
|
80 file = paste0(feats_path, 'essentia_melbands.csv'),
|
f@0
|
81 row.names = F)
|
f@0
|
82 write.csv(x = erbbands,
|
f@0
|
83 file = paste0(feats_path, 'essentia_erbbands.csv'),
|
f@0
|
84 row.names = F)
|