Hey folks, if you want to quickly generate a Tonverk multisample from your favorite DX7 patches, you might find my new multisample generator useful. I ported the open source Mutable Instruments Plaits DX7 code to Rust and JavaScript, and bolted that onto a Tonverk multisample generator.
Rust command line tool for the SYSEX hoarders and hackers! Batch-generate tons of multisamples from your favorite banks in milliseconds) here. Rust dx7 library for people interested in building their own tools here.
Iāve added a new feature to the tv7 web generator where it now contains many of the classic DX7 sound banks and some more recent awesome ones (like the Legowelt DX7 bank) for you to audition and generate Tonverk multisamples from on the fly.
tv7 currently works much better than the 1.0.1 TV autosampler because the parameter for gate length is for how long the key is input for, and then I use an automatic silent window detector that waits for 100ms of 0 samples, and then automatically stops it there, so every sample will be able to fully ring out. The TV currently assumes the same length for every note as detected in the test note page, but this is not correct for instruments that may ring out for a longer time with different pitches being played, and currently thereās a common issue where certain notes will bleed into the next one in the sample, polluting the multisample. I expect the Elektron autosampler to take a similar approach to mine over time, where it does not assume every note will last the same duration, but itās not there yet.
tv7 also takes 1/5 of a second to generate a 2-3 minute long autosample file with all of your desired notes, so you can really throw the command line tool at an extensive library of DX7 sysex files and have a nice fat bank of TV-compatible multisamples in a few seconds. It will take far longer to physically transfer the files over USB to the Tonverk in disk mode than it takes for the Rust CLI to generate the multi-minute-long WAV file, since it can generate it in accelerated, simulated time rather than moving forward according to the progression of time in the slow real world
Works great so so far. The prelisten in the web app is really loud and sometimes distorted, but the resulting samples are flawless .
There seems to be a bug with DX7 preset names that contain spaces. In this case additional spaces are added to the sample names.
It would be useful to have the option to edit the resulting multisampleās name before the conversion starts, because renaming all those file entries using an editor is a little bit cumbersome
Thanks for trying it out! Dealing with filenames has been a little tricky, as many DX7 patches contain multiple contiguous spaces in their actual patch names. Iāll bet the āextraā spaces you see are also present in the actual patch name if you open up the same patch in dexed etc⦠but I agree they can seem strange in other contexts. I also strip out characters that arenāt available when naming your own samples on the Tonverk, as I noticed some errors where multisamples werenāt loaded properly if the names contained ā*ā characters etcā¦
I just added a feature to the CLI tool, --multisample-name that lets you override the output name, and added a field to the web ui where you can remove spaces or rename it anything you want, but it will give you an error if the name you provide contains characters that might cause issues on Tonverk (basically any character that isnāt there when you go to name a sample/project/etcā¦)
Also I made it so it now removes multiple contiguous spaces by default, so you wonāt need to manually remove them, but you can rename in other ways still
I find it a little bit difficult to adjust the sampling range using MIDI note numbers (same with the TVās autosampler). I think rather in terms of note names such as C3 etc. Maybe at some point you will have the time and inclination to display the note names in addition to their MIDI numbers?
When I use the āPlay Previewā button on the website, ROM1Aās E.PIANO 1 and others experience severe clipping. I suspect this is likely because normalization isnāt performed after generateSamples().
Would it be possible for you to fix this? Alternatively, if itās acceptable to submit a pull request on GitHub, Iād like to send one.
Thanks for trying it out! I just realized I was not applying normalization to the previewed audio in the same way as the generated multisample. I was also normalizing it a bit too high, normalizing the generated samples to 0.8 (about ā1.94 dBFS) when itās probably safer to normalize to 0.5 (ā6.02 dBFS) for multisamples where they could be played back with a lot of layering. Iāve just changed normalization to be 0.5 for both the preview and the generated multisample. If you notice other issues with clipping Iād definitely like to fix those!
Thanks so much for the super quick fix! Iāve confirmed the preview plays without any audio distortion. Once again, thank you for this truly amazing tool!
This is where Tonverk really comes in. The DX7 can make some amazing sounds, complex evolving timbres etc⦠all kinds of legendary building blocks that will be emotionally resonant with listeners who have heard DX7 as a big chunk of the background music of their lives. But it is still relatively spartan compared to many āmodernā synths. In the modern context I think of it almost like just a complex oscillator and some great envelopes that control amplitudes. The DX7 doesnāt have filters or reverb - but some patches in the Legowelt example bank demonstrate using envelopes for faking delay effects.
Once you pipe almost any DX7 multisample into the Tonverkās RUMSKLANG reverb youāll immediately make it sound a few decades more modern xD But then using the Tonverkās comb filter, EQ, dirtshaper etc⦠you can bring out a really different beast. Basically I feel like Tonverkās effects and routing and layering capabilities combined with the DX7 as a kind of complex oscillator make an extremely formidable additive-ish overall synthesizer and general workstation.
I really like some of the sounds in the banks that I included in the examples, but here are some others:
By the way, I have only implemented sysex parsing for full ābanksā of sysex patches, but soon Iāll add support for single patch sysex too. When you search for dx7 sounds, sometimes the patches are distributed as individual patch sysex files rather than the bank format. You can still use the individual patches by loading them into a sysex bank file with a tool like dexed or one of the dx7 librarians on the web, but soon Iāll make it so you can load the single ones on tv7 directly.