Skip to content

MiniMax Music3 Studio 3.8.0

Choose a tag to compare

@timoncool timoncool released this 27 Oct 11:49
· 49 commits to main since this release

Fixed

  • A runtime of 3.7.0 is replaced by today's pin: llama.cpp, cuBLAS and the other runtimes 3.7.0 unpacked keep the file names of today's builds, and were taken for them; each download now leaves a record beside it (its address, hash and files), and a runtime from before records counts as today's only when the file that tells its build apart has the pinned size. An earlier build is fetched again, removing only the files its record lists and only once the new build has arrived. An install is marked as under way until its record is written, so a half-unpacked runtime is not taken for installed, also after the studio was closed in between.
  • An update does not stop halfway on a file in use: a runtime that karaoke, the assistant or a separator still had open could not be removed or replaced on Windows, so an update stopped with "Access is denied" and left neither the old build nor the new one; such a file is now moved aside, the new one takes its place, and the old one is removed at the next start.
  • An M4A of Apple Lossless goes into the library as FLAC: every M4A was kept as it was, and the window's player does not play ALAC; one plays as it is only when its audio is AAC. A WAV whose fmt chunk does not come first (after a JUNK, bext or LIST chunk) is read for what it is.
  • Karaoke keeps the first word after a filler: a word that starts where a segment the model filled with "[Music]" ends was left out with it.
  • Changing the cover look no longer stalls the window: switching between Pattern, Photo for the style and AI generation writes the new cover into every track, and the window read the whole library again after each one, with the replay data of every song: 5.2 MB for a library of 37 songs. The library list now leaves the replay data out (a re-render reads it from the song), 0.3 MB for the same library, and a burst of changes is read at most every two seconds (from YuE2 Studio #150).
  • Models in a folder with a name outside the system's code page are found: on Windows the engine read its models folder through the system's ANSI code page, so a path with, say, "é" on a Russian system or Cyrillic on an English one became "?" and the engine started with no models; it now runs with the UTF-8 code page and opens any path.
  • ADPCM WAV files open: a WAV in ADPCM (a mastering reference, a training song) failed with "no decoder for this audio"; it is read now.
  • The assistant starts on Linux with a glibc older than 2.38: the CUDA builds of llama.cpp need glibc 2.38, so on Ubuntu 22.04 and the like the assistant did not start; there it now runs the card through the Vulkan build, and its settings say why, as in Speech Studio.
  • Programs started from the Linux AppImage no longer load its libraries: the file manager, nvidia-smi, the downloaded engine, llama-server, Whisper, the MIDI tool and the trainer were started with the image's library path and could stop on a newer system («undefined symbol»); they start without it, as in Dub Studio.
  • A program downloaded without its execute bit runs on Linux and macOS: an archive packed on Windows carries none, and the program answered «Permission denied» or was left out of the unpacking; the studio makes it executable.
  • Karaoke, stems and the measurements load on a computer with an old Visual C++ runtime: ONNX Runtime imports msvcp140_1.dll, which the studio did not check for, so a computer whose Visual C++ runtime predates it passed the check and ONNX Runtime then did not load. The Visual C++ runtime the engine and ONNX Runtime import now ships beside the engine, as in the other studios, and ONNX Runtime finds it there, also before the engine has started; the studio no longer downloads and runs Microsoft's redistributable installer, which needed administrator rights and the network.
  • "Create" no longer seems to do nothing: when the song could not start - the writing assistant was not reachable, a field was missing - the reason was written at the foot of the form, below what the window shows, and the click looked lost. The form now scrolls to the reason.
  • Mel-Band RoFormer stems on a Mac, and on the processor under Linux: the Mac had no RoFormer build at all; it now downloads the author's Apple silicon build of BSRoformer.cpp, which runs on Metal and on the processor where Metal cannot. The processor builds for Linux and macOS ship their libraries by their full version alone (libggml.so.0.15.1), so the program did not find the name it asks for (libggml.so.0) and did not start; the download now gives each such library that name beside it.
  • Audio codes in the Create form are used: the service dropped the form's audio codes field, so the song was made from scratch, the language model ran its whole length, and the codes changed nothing; they now reach the engine, which decodes them and skips the language model, as a re-render does, and a limited LM KV cache is counted by the codes' length, not the song's.
  • A caption with only some of its headings keeps them once: a caption with only "Global Metadata" (or two of the three parts) was taken whole into the first field, heading included, and the form then wrote "Global Metadata" twice; each part now goes into its own field, and a heading word inside a sentence stays text.
  • Every window language is named in its own language: Settings - Appearance - Language wrote Russian in the window's language («俄语» in a Chinese window, "Russian" in an English one) and, in English, Chinese, Japanese and Korean too, so a reader looking for their language did not always find it; the list now reads Русский, English, 简体中文, 日本語, 한국어 in every window.
  • Every audio file the studio reads is taken everywhere: the library import took only MP3, WAV, FLAC and Ogg, the mastering reference and training pickers each had a list of their own, and none had the formats the decoder reads since this version. The window, the uploads, the import and the agent's tools now take one list - MP3, MP2, MP1, WAV, FLAC, Ogg, M4A/MP4/AAC, AIFF/AIFC, CAF and Matroska audio - and a file the player cannot play as it is (CAF, MKA, AIFF, MP2, ADPCM WAV) goes into the library as FLAC, losslessly; the import hint names them. Opus is not read yet, and is refused with that list.
  • A CUDA failure names the card it happened on: a song lost to a CUDA error now says the card, its compute capability, the driver and the engine's CUDA build, which tells a card the build has no code for from a driver too old for it; an engine start whose CUDA device is missing quotes what CUDA answered.
  • A lost song names how the engine ended: an engine that crashed during a song was only "stopped"; its exit code is now read before the restart replaces it, noted in the engine log and told in words in the studio's language - an access violation, an instruction this processor does not have, a library that did not load, memory that ran out.
  • The chosen compute device reaches the engine: since the upstream update the engine takes its device as --device and no longer reads GGML_BACKEND, so a card, Vulkan or the processor chosen in Settings - Local engine was ignored; it is passed as --device, and a device the engine does not have is named at the start with the ones it has. A failed song's reason is looked for in the whole engine log, not the window's last 512 lines.
  • The statistics count what people ask for, not the window's own polls: the setup status, the computer's load, the activity, the running songs, the karaoke and assistant states and the engine start and log were counted as features each time the window asked for them by itself; they now carry x-hub-skip, as the shared standard says.
  • The window keeps up with a slow service: the setup status, the engine start, the tools, LoRAs, training, the agent panel and the engine log were asked again on a timer whether or not the last answer had come, so a service answering slowly had the same request queued several times over and the window showed what was on disk minutes late; each is now asked again a pause after its answer, one at a time.
  • A download from a server this network cannot reach fails in a minute and a half, not six, and names the server: a connection that never opened - blocked, refused, timed out, no DNS answer - was tried eight times, 30 seconds each plus waits, before the setup said "could not start ... after 8 attempts"; it now gives up after three such attempts and says "could not connect to ", so it is clear whether Hugging Face, GitHub or NVIDIA is out of reach.
  • "Use models I already have" says what it took and what it left, and why (#32): picking a folder of downloaded models only refreshed the list, and a file it did not take was left without a word. It now says how many files it took and names each model file it left: one with the studio's name but another size (another build - the Light sets' language models on Hugging Face are now imatrix builds of other sizes, the studio takes the pinned ones), a GGUF of none of the studio's sets, or one it could not link or copy.
  • A song finished while a model or LoRA arrives is kept: the engine is restarted to find a new model or LoRA, and it was restarted as soon as it stopped rendering, before the studio took the finished song, which was then lost ("mm-server completed the job, but the studio could not safely import its result"), and the songs still queued on the engine with it. The restart now waits until the studio has taken every song it sent.
  • A graphics card that is not there is said, not left to the processor: a card chosen in Settings - Local engine that the computer no longer has made the engine go to the processor without a word; the start now stops with the reason on screen, the card list shows the missing card so another can be chosen, and an engine running on the processor says so in the sidebar.
  • Mel-Band RoFormer checks the processor first: its build needs AVX2, FMA, F16C and BMI2, and on an older processor it closed without a word; the studio now names what the processor lacks. Audio to MIDI needs no such check: its pack carries a build of ggml for every processor generation. Karaoke's transcribe.cpp is pinned to engine-0.1.3, built without AVX-512 and with the same check.
  • Karaoke's Parakeet runs on the card without the CUDA Toolkit: transcribe.cpp's CUDA build is loaded into the studio, and Windows looked for its cuBLAS beside the studio and on PATH, not beside the library where the studio puts it; on a computer without the CUDA Toolkit it did not load (error 126). It is now loaded so that its own folder is searched first.
  • Stems on the processor download what they lack: with Mel-Band RoFormer on the processor the tools page offered to download the 240 MB model already on disk, and the button fetched HT-Demucs instead; it now names the processor build that is missing and installs it.
  • A runtime of an earlier release is updated: the studio kept any engine, library or transcriber of the same file name as installed, so a newer pin - like transcribe.cpp without AVX-512 - never replaced it; each runtime now records the build it came from and is fetched again when the pin moves.
  • A song lost to the computer's memory says so: an engine that stopped because the computer's own memory (RAM) ran out - or that ran out of memory with its models on the processor, the most frequent case on computers without a graphics card - was reported as the graphics card running out of memory; it is now told as RAM, with advice that helps (close programs that take memory, a smaller set or a shorter song), and it no longer counts as a device failure under Auto.
  • A song lost to an engine restart says why again: the reason was read from the last 600 lines of the engine log, and a long run had already pushed its own start out of them, so the message named the new engine's "Listening on" instead of where the old one stopped; it is now read from the lines before the current start. A job the engine reports unknown is told apart from a timeout only by the engine's own 404, not by "404" anywhere in the error, which a job id in the address could hold.
  • Training writes a step as one line (YuE2 Studio #144): each trained step rewrote the run's whole file with every step so far, and the training page read the whole training log twice a poll; steps now go into a file of their own a line at a time, and the log is read once.
  • A song that does not fit the LM KV cache set in Settings - Local engine is refused with what to set: with the cache limited (--max-seq, 512 for example) every caption and lyrics longer than it stopped the engine with "kv_len ... > max_seq 512", and a shorter one was cut to what was left of the cache. The studio now counts what the song needs before sending it and names the size to set, or to clear the field.
  • A note written while the song is being made stays (ACE-Step Studio #25): the note of a song still in the making was cleared when the song was done; it now goes into the finished songs and is saved with them.
  • Show JSON stays open from song to song in the song's details, to compare their settings (ACE-Step Studio #48).
  • The create form keeps its settings (YuE2 Studio #134): the steps, guidance, sampling and the other generation settings went back to their defaults at every start and every F5; they now stay, as the words, the length and the file format do, until "Reset to reference" puts the defaults back.
  • Change cover works in the Library (ACE-Step Studio #48): the button showed on the Library's songs but opened nothing; it opens the cover editor as on the create page.
  • Mel-Band RoFormer and HT-Demucs download from Settings - Models - Split into stems (#33, YuE2 Studio #134): the card's Download button sent the engine's name, which the studio did not know ("unknown asset roformer"), so neither separator could be installed from there in 3.7.0; it now installs the engine whole on the chosen device, the bin removes that engine's files (it always removed HT-Demucs before), and the runtime downloading after HT-Demucs's model shows its progress instead of "not installed".
  • Several songs at once no longer risk a graphics card failure: the flash attention kernel that skips masked keys read past its mask for the second song of a batch (in YuE2 Studio 3.7.0 the most frequent failure, "CUDA error: an illegal memory access"); the engine now reads the one mask the songs share.
  • Karaoke recognition no longer closes the studio on processors without AVX-512: the transcribe.cpp engine of 3.7.0 was built for the processor it was built on and used AVX-512 instructions, so on most Intel and older AMD processors the first karaoke stopped the studio without a word. The engine is now built for every x86-64 processor with AVX2 (Intel since 2013, AMD since 2017), as fast as before, and on a processor without AVX2 the studio says so instead of closing.
  • Style by ear on macOS and Linux (YuE2 Studio #138): the captioner was only published as a Windows build, so the download said "is a Windows build and is not available on this platform yet". The Mac app and the Linux packages now carry their own captioner, built with the MIDI transcriber.

Changed

  • An update screen says what the release changed in the engines and models, as in ACE-Step Studio: on the first start of a release that changes what the studio downloads, a screen built like the first-run page lists what is updated (old build → new, size), what is new and what is no longer needed (space freed), each with its reason, and one button downloads it all and then removes what former versions left - Faster-Whisper once CrisperWhisper is in place, the ONNX Parakeet. Nothing is removed at start any more, and a component of an earlier version keeps its files until the new one has arrived, so an update cut off leaves a working studio. «Later» puts it off; the same plan stays in Settings - Models, and agents have it as models_update_plan, models_update_apply and models_update_later.
  • Karaoke and the dataset lyrics hear with CrisperWhisper 2.0 turbo, as in ACE-Step Studio, Speech Studio and Dub Studio: Whisper-Faster with its CUDA 11 cuBLAS and cuDNN 8 gives way to CrisperWhisper 2.0 turbo, Whisper large-v3 turbo trained for verbatim word timings, in audio.cpp's server: the CUDA 13 or CUDA 12 build on an NVIDIA card (on Linux with NVIDIA's CUDA libraries from their PyPI packages, as Dub Studio takes them), Vulkan on another card, the processor's build without one, Metal on a Mac. Its model is taken from a neighbouring program that has it or downloaded, checked by its SHA-256; segments the model fills a gap with are left out, as before. The update screen removes the old Whisper once CrisperWhisper is in place, and a Whisper size left in the settings no longer names a model.
  • The genres of Search speak the window's language, as in YuE2 Studio: the genres stay in English, the language the model reads its style in, and a window in Russian, Chinese, Japanese or Korean shows each one's meaning beside its tag on the Search page (dubstep дабстеп, 回响贝斯, ダブステップ, 덥스텝).
  • Every download is checked against its publisher's SHA-256, as in Speech Studio: the runtimes, the assistant's models, the karaoke and stem models are checked against the hash GitHub, Hugging Face, NVIDIA or PyPI states for the pinned file; a file that differs is removed and the download fails naming both hashes. cuBLAS 12.9 for the stem separator and the measurements now comes from NVIDIA's PyPI wheel, whose hash is published. Whisper-Faster and cuDNN 8 stay checked by size: their publishers state no hash.
  • The studio's log on disk, as in Speech Studio: every line the service writes goes to logs/minimax-studio.log in the data folder at once, with the time, kept to 8 MB with the previous start's beside it; a crash of any thread and, on Windows, an exception nobody handles (an engine library running an instruction this processor lacks, a bad access) are written there with the module and offset; each song's start and end with its outcome; keys masked. The bug-report pack carries it.
  • System diagnostics and a bug-report pack, as in Speech Studio: Settings - Local engine - System diagnostics shows what the studio sees - the version, the system, the graphics card with its driver, compute capability and the CUDA build, memory, which music models and optional parts are on disk, which libraries the engine misses, and the latest lines of the studio's log - with buttons to copy it, to pack a bug report (the diagnostics, the journal and the logs, every key masked) into the data folder's reports, to report a problem and to open the logs folder. Agents get the same through diagnostics_get and diagnostics_report.
  • Notices from Studio Hub as every studio shows them: popups from the hub now show in the studio, to everyone, and wait until no song, re-render, cover or timing is being made to appear, then stay until closed; the sections a notice names are the hub's (create, library, news, tools, settings); strips stand by priority; a link in a popup counts as its click; the hub's news stand among the release notes by date with their picture, all their buttons and the ad label. The window's own reads of the training, LoRAs, stems, MIDI and agent states are no longer counted as features used either.
  • llama.cpp b11900 for the assistant, as in ACE-Step Studio; the Windows CUDA runtimes of llama.cpp are the same files and stay at b11236. ONNX Runtime for the separator and the measurements stays 1.30.0, the build 3.7.0 installed. ONNX Runtime starts with its telemetry off: Microsoft's builds send usage telemetry unless the environment turns it off, and the studio's did not.
  • The assistant's Gemma models are pinned to a revision: they were fetched from the repositories' main branch, where a corrected upload of the same name changes the file under the studio; each is now taken at its commit, and one kept before is installed only at the pinned size. The same for karaoke's Whisper models and for Style by ear's MOSS-Music, Beat This! and S-KEY: no model is fetched from a branch any more.
  • The spectrum has an Analyzer look, as ACE-Step Studio has: a continuous curve over every FFT point with Hz and dB scales, 20 Hz to 22 kHz; the Hi-Fi look reaches 22 kHz too.
  • Models, LoRAs, the assistant's Gemma and the hub search can come through HF-Mirror (#32): Settings - Providers - Proxy has a model download source, Hugging Face or HF-Mirror (hf-mirror.com), with the pinned revision kept, as in YuE2 Studio; the download error that pointed there had no such setting in this studio. When Hugging Face does not answer, the first-run page asks HF-Mirror too and offers a button to take the models from it; nothing switches by itself, and when the mirror does not answer either the page says so with both reasons and where the proxy is set. The question is asked again after a download fails.
  • Every missing model file can be downloaded by hand (#32): on the first-run page and in Settings - Models, "Download by hand" lists each file of the chosen set that is not on disk with its exact name and size in bytes, its address at the pinned revision on Hugging Face (and on HF-Mirror when that is the source), a copy button, and the folder it goes into.
  • The Library shows a song's details beside the list, as the create page does (ACE-Step Studio #48): a click on a row chooses the song without playing it, the cover plays it, and on a narrow window the details open over the page as before. In Russian the Library is called «Медиатека».
  • Why a song failed is said in the studio's language: a song refused before it is sent, lost with an engine that restarted, given up by the engine or not taken into the library is told in English, Russian, Chinese, Japanese or Korean, as the window is set; the service keeps the English text for its log, the statistics and agents, with a code and fields beside it.
  • Engine builds for every card and driver: the CUDA 13 build carries device code only (no PTX, which an older driver cannot compile), NCCL is off, every configure starts fresh, and the Mac build no longer takes the build machine's processor features.
  • Engine updated from minimaxmusic.cpp upstream: the latest ggml and the --device choice of the compute device; our fixes stay on top.