Views
No views yet
1import torch
2from transformers import Qwen3ForCausalLM
3
4repo = "qwrt/Melodimodell-16M"
5device = "cuda" if torch.cuda.is_available() else "cpu"
6model = Qwen3ForCausalLM.from_pretrained(repo).to(device)
7
8prompt="*"
9new_tokens=4096-len(prompt)
10
11seed = torch.tensor(list(prompt.encode()), dtype=torch.long)[None].to(device)
12out = model.generate(seed, max_new_tokens=new_tokens,
13 do_sample=True, temperature=0.8)
14text_formated_midi=bytes(out[0].tolist()).decode("utf-8", errors="replace")
15print(text_formated_midi)1import mido
2from huggingface_hub import hf_hub_download
3import importlib.util
4
5file_path = hf_hub_download(
6 repo_id="qwrt/Monster_textmidis_filtered",
7 filename="stringtomidi.py",
8 repo_type="dataset"
9)
10
11
12spec = importlib.util.spec_from_file_location("parse_custom",file_path)
13modul = importlib.util.module_from_spec(spec)
14spec.loader.exec_module(modul)
15
16generated_songs=text_formated_midi.split("*")
17generated_songs.pop(0) #remove the first since it is an empty string
18first_song=generated_songs[0]
19
20if(len(generated_songs)==1): #remove the last incomplete note of an unfinished melody
21 all_notes=first_song.split(" ")
22 all_notes.pop()
23 first_song=" ".join(all_notes)
24
25events = modul.parse_custom(first_song)
26modul.build_midi(events, "example.mid")1file_path = hf_hub_download(
2 repo_id="qwrt/Monster_textmidis_filtered",
3 filename="miditostring.py",
4 repo_type="dataset"
5)
6
7
8spec = importlib.util.spec_from_file_location("midi_to_string",file_path)
9modul = importlib.util.module_from_spec(spec)
10spec.loader.exec_module(modul)
11
12
13midi_file = r"example.mid"
14output_file = "output.txt"
15
16# Standard: Filtrera trummor + begränsa ackord till max 5 noter vid exakt samma tidpunkt
17result = modul.midi_to_string(midi_file, output_file,
18 filter_drums=True,
19 filter_non_piano=False,
20 max_chord_notes=10)1f=open("output.txt")
2prompt="*\n"+f.read()[:200]
3new_tokens=4096-len(prompt)
4
5seed = torch.tensor(list(prompt.encode()), dtype=torch.long)[None].to(device)
6out = model.generate(seed, max_new_tokens=new_tokens,
7 do_sample=True, temperature=0.8)
8text_formated_midi=bytes(out[0].tolist()).decode("utf-8", errors="replace")
9print(text_formated_midi)