Comments (10)
Great, it sounds smoothly, hahaha
from muzic.
hahaha, it works
due to no lead in my midi file. I change vercol into chords (clavichord, it is what I can find in musescore software).
then I use:
- Stage 1: chord -> lead (Select condition tracks I click ‘cp’; Select content tracks I click ‘clp’) (to generate lead)
- Stage 2: chord, lead -> bass, drum, guitar, piano, string
then a fresh midi file generated. it sounds interesting.
from muzic.
I'm glad to hear that you were able to successfully run our code. However, I'd like to point out a few things.
Firstly, the instrument name for "lead" should be "square wave synthesizer," which can be found under the directory of electronic music.
Secondly, when generating, you don't need to specify the content again if it's already included in the conditions. Just 'cp->l' is ok.
Lastly, in our code, the "chord" is played by a piano with the program set to 1. So converting the vercol to a clavichord won't assist in your generation. In fact, your clavichord will be filtered out. The code runs successfully because you already have the piano, and our code automatically infers the chord based on the piano.
I suggest you change your sax to a legal 'lead' using the following code:
import miditoolkit
midi_file = YOUR-MIDI-FILE-PATH
midi_obj = miditoolkit.midi.parser.MidiFile(midi_file)
# find the track you want to modify progam number
for inst in midi_obj.instruments:
print(inst)
for inst in midi_obj.instruments:
if inst.program == YOUR-SAX-PROGRAM-NUMBER:
inst.program = 80 # CHANGE IT TO SQUARE-WAVE SYTHESIZER
midi_obj.dump(save_path) # SAVE YOUR MODIFIED MIDI FILE
Additionally, as we mentioned in Section 3.6 in the README, it's important to consider that a saxophone melody can significantly differ from the lead melody played by the square wave synthesizer in our training data. Directly assigning the saxophone to play as the lead melody may result in a substantial domain gap and potentially compromise the quality of the generated output.
from muzic.
- I have a midi only have Vocal (https://musescore.com/user/34889258/scores/6130079)
- I replace instrument by Square Synthesiser, without modify “name on main score” and “abbvreviated name”. they are default value. (Mallet Synthesiser, Square Synthesiser) (Mal. Syn.)
- python track_generation.py --load_path /path-of-checkpoint --file_path example_data/inference ----------> "l" and "dgp"
- the python generate as the same song as original singer's song. I mean the lead part is same. 'dgp' part almost as the same.
- is it due to this song is in your trainning data, or I made some misstake.
from muzic.
First, it is true that it is unnecessary to specify a track as a content track if it has served as a condition track.
I am a little confusing: since this midi only has vocal, how to evaluate the similarity of the generated 'dgp' part? You mean it sounds almost same as the original accompaniment of this song? The lead should be same because we do not modify the condition tracks. As for similar 'dgp' part, if this song lacks any accompaniment, we are sure to filter it out during our preprocessing process.
from muzic.
if I put lead in condition, the generation sounds almost same as the original accompaniment of this song.
Hahaha,
if leave condition tracks empty, then a new one comes. It's very interesting, however, it's likely written by an un-normal composer.
Here is my opinion:
Music that is loved by people is because it resonates with humans. This resonance is like the resonance phenomenon in the physical world. When two identical frequencies affect each other, they are moved by the sound source and will also be moved by it. Therefore, I believe that when people are happy, their heart beats quickly, so fast songs are more likely to move humans. When humans are sad, their heart rate and various hormone levels are low, so no song that evokes emotions or sadness is fast-paced. So what I mean is that you can combine human pulse as a parameter for AI inference, which makes it easier to produce better works.
For the first time, humans first had dance before they had songs. At first, humans would celebrate hunting by dancing on bonfires, then jumping and shouting blindly. Later, beautiful singing developed. Some rhythmic songs can almost be associated with dance movements when listening to the song, or in other words, during a concert, the audience will unconsciously dance with them. So what I mean is that we can broaden our training ideas and not just consider using songs to train songs. The true source of songs is dance movements. We can use dance movements as training objects, that is, using images with time frames to generate music. This method is more likely to generate a good concert.
from muzic.
I think use dancing pictures in frame is much more easier to train AI model than others .
from muzic.
Thank you for your engaging and interesting advice! Perhaps we can draw inspiration from it.
By the way, you can try this and see whether the quality becomes better: input the midi file and set condition track as 'c' rather than leaving condition tracks empty, the code will infer and condition on the chord progression from the lead melody in your input rather than directly conditioning on the lead melody. Empirically, we find chord guidance makes the generation have more regular pattern and better melodic quality.
from muzic.
the input midi file only have lead (replaced by vocal). I mean there is only one track in my midi, now I configure it as lead.
Do you mean I use 'c' as condition tracks?
from muzic.
Yes, even the midi has only lead track, you can set the condition as 'c' which will be inferred automatically. Subsequently, GETMusic can generate tracks you want following the chord progression inferred by the lead melody rather than directly conditioning on the lead melody.
Details can be found here:
muzic/getmusic/track_generation.py
Line 325 in fa414fa
from muzic.
Related Issues (20)
- ModuleNotFoundError: No module named 'midi2dict' HOT 9
- [MusicAgent] The dependent libraries are confilcts.
- ckpt not found in checkpoints/0102_xiaoma_pe HOT 2
- 【MusicBERT】ValueError: loaded state dict contains a parameter group that doesn't match the size of optimizer's group HOT 2
- 【MusicAgent】Database has not enough pieces to support ROC. HOT 5
- 【MUSICBERT】 ModuleNotFoundError
- [Telemelody] Pipeline of Collecting Lyric-Rhythm Data
- 【Musecoco CausalDotProduct.dot none type】 HOT 1
- [Musecoco] how to change input text?
- 【roc】What do the parameters represent?
- [songmass] SongMASS Melody infer error HOT 2
- Getmusic GPU memory requirements and CPU usage
- [MuseCoco] Checpoint for Text2attribute:model HOT 1
- [MuseCoco] Request for Checkpoint of the "large" model
- [clamp] size mismatch for text_enc.embeddings
- [clamp] The cmd command is only applicable to Windows
- [clamp] What prompt was used when evaluating CLaMP in the zero-shot setting on the VGMIDI dataset for emotion?
- [MUSECOCO] Cannot load file checkpoint
- [Telemelody] Are there some ways to generate corresponding chords for a given lyric? Since in this way, I can only input the chord and get an output lyric
- [Museformer] Can I get detailed package version requirements for museformer?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from muzic.