annotate ext/essentia.R @ 0:205974c9568c tip

Initial commit. Predictions not included for lack of space.
author franrodalg <f.rodriguezalgarra@qmul.ac.uk>
date Sat, 29 Jun 2019 18:45:50 +0100
parents
children
rev   line source
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)