Esempio n. 1
0
 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()
Esempio n. 2
0
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
Esempio n. 3
0
 def calc_chord(self, x, labels):
     cd = chord()
     return cd.test_calc(x, labels)
Esempio n. 4
0
 def __init__(self):
     super().__init__()
     self.instrument = MusicalInstrument()
     self.chord = chord()
     self.initUI()
     self.bindEvent()
Esempio n. 5
0
# -*- 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':