Skip to content
Snippets Groups Projects
Commit 402f268d authored by Cassandra Grzonkowski's avatar Cassandra Grzonkowski
Browse files

test file backtransfer notes, first version, for example, will be adjusted later on

parent 5e2715dc
No related branches found
No related tags found
1 merge request!1Instant spectograms
import os
import pickle
from simfile.notes import NoteData
from simfile.notes.count import *
import simfile
import torch
from simfile.notes import Note, NoteType, NoteData
from simfile.timing import Beat
# test load file
# decode whole chart
# maybe change up and downs, right lefts/mirror
# encode whole chart
# write back
from preprocess import process_chart
test_file = 'C:/Users/cassi/OneDrive/Desktop/Master_Thesis/testing_sm_overwriting/test_pack/pkg1/110/110.sm'
#test_file_2 = 'C:/Users/cassi/OneDrive/Desktop/Master_Thesis/testing_sm_overwriting/test_pack/pkg1/110/110.ssc'
save_dir = 'C:/Users/cassi/OneDrive/Desktop/Master_Thesis/testing_sm_overwriting/test_pack/pkg_generated/110/'
save_file = f'{save_dir}110 (edit).sm'
#save_file_2 = f'{save_dir}110 (edit).ssc'
os.makedirs(save_dir, exist_ok=True)
# indexed_vocabulary_path = 'C:/Users/cassi/OneDrive/Desktop/Master_Thesis/test_cluster/vocabulary.pkl'
#
# opened_file = simfile.open(f"{test_file}")
#
# with open(f"{test_file}", 'r', encoding="ISO-8859-1") as infile:
# sm_file = simfile.load(infile)
#
# with open(f'{indexed_vocabulary_path}', 'rb') as fp:
# indexed_vocabulary = pickle.load(fp)
#
# charts = sm_file.charts
# # get difficulty
# difficulties = []
# # sample notes over time, return list of NoteData and [] if empy (for now)
# converted_charts = []
# charts_per_song = len(charts)
# device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
# max_len_charts = 0
#
# for i, chart in enumerate(charts):
# notes_per_time = process_chart(opened_file, sm_file, chart, indexed_vocabulary, device)
# difficulty = chart.meter
# difficulties.append(int(difficulty))
# if max_len_charts < len(notes_per_time):
# max_len_charts = len(notes_per_time)
# converted_charts.append(notes_per_time)
#
# assert (len(converted_charts) == len(difficulties))
#
# # chart = sm_file.charts[0]
# for chart in charts:
# note_data = NoteData(chart)
# cols = note_data.columns
#
# def mirror(note, cols):
# return Note(
# beat=note.beat,
# column=cols - note.column - 1,
# note_type=note.note_type,
# )
#
# mirrored_notes = (mirror(note, cols) for note in note_data)
# mirrored_note_data = NoteData.from_notes(mirrored_notes, cols)
# chart.notes = str(mirrored_note_data)
#
# save_sm_file = sm_file.copy()
# save_sm_file.charts = charts
# with simfile.mutate(
# test_file,
# backup_filename=f'{test_file}.old',
# ) as sm_file:
# charts = sm_file.charts
#
# for chart in charts:
# note_data = NoteData(chart)
# cols = note_data.columns
#
# def mirror(note, cols):
# return Note(
# beat=note.beat,
# column=cols - note.column - 1,
# note_type=note.note_type,
# )
#
#
# mirrored_notes = (mirror(note, cols) for note in note_data)
# mirrored_note_data = NoteData.from_notes(mirrored_notes, cols)
# chart.notes = str(mirrored_note_data)
# sm_file.charts = charts
# sm_file.subtitle += '(edited)'
sm_file = simfile.open(test_file, strict=False)
charts = sm_file.charts
#print(charts)
sm_file.subtitle = '(edited)'
new_charts = ''
#sm_file.title = sm_file.title + '(edited)'
print("Original first chart notes:")
print(sm_file.charts[0].notes[100:200])
for i, chart in enumerate(charts):
note_data = NoteData(chart)
cols = note_data.columns
def mirror(note, cols):
return Note(
beat=note.beat,
column=cols - note.column - 1,
note_type=note.note_type,
)
mirrored_notes = (mirror(note, cols) for note in note_data)
mirrored_note_data = NoteData.from_notes(mirrored_notes, cols)
sm_file.charts[i].notes = str(mirrored_note_data)
print("Updated first chart notes:")
print(sm_file.charts[0].notes[100:200])
with open(f'{save_file}', 'w', encoding='utf-8') as outfile:
sm_file.serialize(outfile)
new_sm_file = simfile.open(save_file, strict=False)
print("\n Loaded new first chart notes:")
print(new_sm_file.charts[0].notes[100:200])
# cols = 4
# notes = [
# Note(beat=Beat(i, 2), column=i%cols, note_type=NoteType.TAP)
# for i in range(8)
# ]
#
# note_data = NoteData.from_notes(notes, cols)
#
# print(str(note_data))
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment