def __init__(self, guitar, fretboardNum): super().__init__() self.screenWidth = QApplication.desktop().availableGeometry().width() self.guitar = guitar self.fretboardNum = int(fretboardNum) + 1 # include fret zero self.c = chord() self.roots = self.c.musicNotes self.initUI()
def loss_function(recon_x, x, consonanse, labels): cd = chord() BCE = F.binary_cross_entropy(recon_x, x.float().view(-1, 16 * ((12 + 1) * 2)), reduction='sum') # see Appendix B from VAE paper: # Kingma and Welling. Auto-Encoding Variational Bayes. ICLR, 2014 # https://arxiv.org/abs/1312.6114 # 0.5 * sum(1 + log(sigma^2) - mu^2 - sigma^2) # KLD = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp()) recon_x = torch.t(recon_x).reshape(-1, (12 + 1) * 2) # print(torch.t(x).reshape(-1, 13)) """ConsonanseLoss = F.binary_cross_entropy(cd.loss_exam(recon_x, labels), cd.loss_exam(x[0], labels).float().detach())""" ConsonanseLoss = BCE.item() / 10 * (cd.loss_exam( recon_x, labels) - cd.loss_exam(x[0], labels).float().detach())**2 # print(ConsonanseLoss) return BCE + ConsonanseLoss, ConsonanseLoss
def calc_chord(self, x, labels): cd = chord() return cd.test_calc(x, labels)
def __init__(self): super().__init__() self.instrument = MusicalInstrument() self.chord = chord() self.initUI() self.bindEvent()
# -*- coding:utf-8 -*- import six from mingus.containers import Bar, NoteContainer, Note from chord import chord from instrument.MusicalInstrument import MusicalInstrument mi = MusicalInstrument('ARACHNO') c = chord() presets = { 'piano': ['preset1', 'preset2', 'preset3', 'preset4'], 'guitar': ['preset1', 'preset2'], 'bass': ['preset1'], 'drum': ['preset'] } def getLoop(root, octave, pro, interval, style, preset): assert style in presets.keys() octave = int(octave) notes = list(c.getChord(root, pro, interval, octave).values()) if style in ('piano'): return getPianoLoop(notes, preset) elif style in ('guitar'): return getGuitarLoop(notes, preset) def getPianoLoop(notes, preset): b = Bar() if preset == 'preset1':