import datetime
import logging
from contextlib import contextmanager, nullcontext

from models.musicfm_1_1 import MusicFM1_1


@contextmanager
def suppress_logging(highest_level=logging.CRITICAL):
    previous_level = logging.root.manager.disable
    logging.disable(highest_level)
    try:
        yield
    finally:
        logging.disable(previous_level)


def print_with_time(content):
    """Print the content with the current time."""
    print(f"[{datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S')}]: {content}")



# wandb logging
wandb_log = False
wandb_project = "suno-musicfm"
wandb_run_name = "v1.1"
# data
batch_size=2
# model
num_codebooks=16
codebook_dim=16
codebook_size=4096
features=["melspec_2048"]
hop_length=240
n_mels=128
conv_dim=512
encoder_dim=1024
encoder_depth=12
mask_hop=0.4
mask_prob=0.6
is_flash=False
stat_path="/home/minz/glockenspiel/musicfm/data/stats.json"
# optimizer
