Giter Club home page Giter Club logo

performancenet's People

Contributors

bwang514 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

performancenet's Issues

Failed with my own .midi file

Hi, your work was amazing! I am reproducing it but I got some problems when using my own cello solo midi file to run the synthesize_audio.sh.

At first, the ERROR was :
TypeError: conv1d(): argument 'input' (position 1) must be Tensor, not numpy.ndarray
Then I turned score and onoff to Tensor, but not fixed, the error was:
RuntimeError: input has less dimensions than expected
I found that my midi file's shape is torch.Size([22277, 128]), while your TEST_DATA is torch.Size([5, 128, 860])
I tried other midi files but also got same problems. So maybe the process_custom_midi function not transform the midi file with suitable shape?

Again, I appreciate your time reading this issue. Have a great day!

About implementation of MBRBlock

Dear authors,

Thank you for the wonderful paper and code. I just to confirm the implementation of MBRBlock.

PerformanceNet/src/model.py

Lines 150 to 151 in f2273f0

torch.add(bands[i],1,t)
x = torch.add(x,1,torch.cat(bands, dim = 1))

I think these two lines intend to save the output from the conv-instancenorm block into bands and add bands to x.

However, if I correctly understand torch.0.4.0 doc (https://pytorch.org/docs/0.4.0/torch.html?highlight=torch%20add#torch.add), I think the code "torch.add(bands[i],1,t)" will not save t into bands.

Since bands originally stores the value of x, this line "x = torch.add(x,1,torch.cat(bands, dim = 1))" will do nothing but simply add x with itself (well, not the same object but the same value). As the result, what MBRBlock returns becomes x+x.

To testify that, I debugged and stopped at line 151 before executing it, then I compared the values in x and bands

(Pdb) p torch.std(x - torch.cat(bands, dim = 1))
tensor(0., device='cuda:0')
(Pdb) p torch.mean(x - torch.cat(bands, dim = 1))
tensor(0., device='cuda:0')

This indicates that bands stores the same value as x

With the two lines above, these four lines only multiplies x by 16, without using any conv in the MBRBlock. I can confirm this
through debugging .

PerformanceNet/src/model.py

Lines 214 to 217 in f2273f0

x = self.MBRBlock1(x)
x = self.MBRBlock2(x)
x = self.MBRBlock3(x)
x = self.MBRBlock4(x)

So, could you check the implementation of MBRBlock?

FYI
I installed dependency according to requirement.txt except scikt-learn and pretty_midi.
But I think these two packages are not related to the above issue.

Does piano midi also work?

Hi guys, nice work. In the paper you tried the cello, violin and flute data and I plan to train it on piano midi data, have you guys tried that before? If so, what are the differences compared to other instruments? More specifically, 1) How many minutes of training data does piano need? (In paper you use different duration for different instruments). 2) What are the overlaps between chunks used in piano data? 3) Have you guys tried on shorter clips (like 2-second instead of 5-second) and would it easier to train? 4) Is high sampling rate (44.1k) necessary to get reasonable audio output?

Look forward to your replies. Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.