Second of all, to folks that are trying to figure out how to give this a go: Open up your favorite DAW (try out Reaper[1] if you don't have one yet), download an install the fantastic open source DX7 emulator plugin Dexed VST plugin [2] and have fun.
In my opinion, FM synthesis is one of the finest things in life I've ever experienced. I never understood the whole culture around an emotional attachment to one's guitar before I realized how closely I could bond with my FM synthesis instruments. It was about five years ago when it started to feel a bit more like an extension of my brain and less like a tool. Now, I've always been an FM8 person myself because of the envelopes, but obviously the DX7 shaped synthesizers have the superior library.
I'm always overjoyed to see projects that get more folks into the joy of music with FM synthesis.
Then I downloaded a MIDI file and used Audacity to play some of its channels into the synth. Super easy, even though I'd never used Audacity for MIDI before.
Just one thing stumped me for a minute: When you open the MIDI settings in the Dexed app, under “Active MIDI inputs” it shows a list of available buses, all with what looks like a green light next to it, as if they are indeed active. Those are actually checkboxes and they're initially off.
- It's super CPU efficient on modern hardware, so you can use as many instances as you like.
- You can use it to do reasonably convincing physical modeling of many real instruments (or at least the start of it)
- There is little phase smearing or analog noise.
- Even for percussive instruments, you can tune and shape harmonic boundaries so that your instruments gel in the mix.
- Building instruments through sine wave decomposition/recomposition encourages bandwidth efficient sound design and instrument arrangements. They sound sweet to the ear, and instead of using the full bandwidth of a sawtooth or square wave, you can use the first few partials (or a couple choice ones) to sketch out the idea of one without taking up all of the space the full thing would.
- (At least with FM8), The multipoint envelopes editor is as flexible as a DAWs automation curve editor. It uses a zoomable spline based UI that feels a little bit like using Illustrator's pen tool.
- (Matter of taste) It's really easy to get retro video game sounds, so composing with these instruments always triggers pleasant nostalgia for me, even if I'm not writing VGM. This is not a surprise.
- Yamaha's sibling OPL/OPN (YMxxxx) series is responsible for powering sound synthesis in the Sega Genesis, MSX, Sound Blaster and sound cards and arcade game systems of the 80s and 90s.
If I can make a synesthetic analogy to a physical material, it's a lot like silicone. You can make it lifelike, almost unsettlingly or cartoonishly so. It pairs well, and fittingly, with the 80s and the 90s.
Unrelated: I've played with Dexed a bit, but I just can't get over twiddling knobs on screen ...
ETA: there's also https://www.webaudiomodules.org/wamsynths/webdx7/ , but sound is pretty crackly on my setup :/
- Some sibling comments have noted that you can built Dexed for Linux. If you can give that a shot and get it to build and run MIDI to it, it's one of the easiest ways you can get things going.
- If you're not partial to the OS you're using (unlikely for most people, I know), give it a shot on OSX.
- Otherwise, you might want to give KXStudio [1] a shot. It's an Ubuntu distro built by Paulo Coelho (@falkTX), who did some great work building Carla [2], which I believe is an evolution of dssi-vst [3]. dssi-vst uses the VeSTige emulator (which may be Wine based) and built a VST to DSSI adapter layer over it; I believe @falkTX forked dssi-vst, improved it over time and eventually came up with Carla. You could use Carla to run an instance of windows Dexed.
- Be aware that it's tricky to get a stable driver chain working properly with Linux (and I suppose you could say the same for Windows, too). You'll want to use a community blessed audio interface and other system components in your computer if you want the highest likelihood of stability. Results aren't guaranteed.
Personally, after multiple tries over the past ten years with a variety of hardware, a combination of bad luck and lack of time led me to give up and go back to the old reliable option, which for me is OSX. There's nothing worse than being in the middle of working on a track with your inspiration going, only to have your computer freeze and reboot losing your last half an hour of work if you forgot to save. But I'd love to be able to stay use Linux for music software.
Frankly, @falkTX's work with KXStudio is impressive, and it continues to evolve. Maybe there will come a day in the future when I can finally make the leap again.
I'm sure you have no malicious intent here, but my immediate reaction was that it's a virus or something bad. I immediately deleted the file. The experience felt like one of those scammy popups that initiates a download.
You should really put a label or something to indicate to the user that clicking the link is going to download something.
- There is a click on the link on this page that leads to the webpage. Nothing is downloaded at this time.
- There is a click on the target webpage "Click to generate cartridge". Those who know what DX7 is, who are presumably a target audience, would understand this will generate a file.
For those who do not know what DX7 is or what's happening, well... why are you clicking in the first place - if you have no idea what'll happen, a file is a legitimate possibility;) - but I think mostly it'll differ whether they have "Always ask me where to download" (in which case it'll prompt for location), or "Always download in default folder", in which case yes indeed it'll download a file.
But at that point you've already clicked two times voluntarily on a strange page whose provenance or purpose you don't know, AND you have enabled "Don't ask me for downloads", AND you didn't bother to scroll down two millimeters for explanation but just clicked on first thing that said click me, soooooo... at some point it's no longer author's responsibility and the cries lose their credibility ¯\_(ツ)_/¯
How many times have you clicked on an HN submission that you already knew 100% about? This site is for people to showcase their projects, of course curious visitors are expected to poke around.
This app looked like a single page - it's not at all obvious it's even possible to scroll down. It resizes to the browser window so the FAQ is always hidden unless you scroll. This is quite obviously based off "this face does not exist", so its perfectly reasonable to expect it to play something in the browser.
Browsers: Firefox, Chrome, Edge
Perhaps you're referring to the link on the website which says "Click here to generate Cartridge!"?
Which follows the somewhat expected path for the picture context.
But if I had known it automatically downloaded a patch I wouldn't click. It did this without me clicking anything.
I wonder how far we are away from the following:
1. Being able to use a GAN to be able to give a synth an input sound (i.e. a reece sound from a dnb track) and have it generate a patch that matches it.
2. Being able to do 1 but apply it to a whole Ableton project. The interesting thing about Ableton is that they're actually XML files under the covers.
Even if you couldn't get close, it would be fascinating to see how an AI would design synth patches for subtractive synths.
Disclosure: I wrote the original sound engine in Dexed. I love seeing stuff like this!
[1]: https://www.jstor.org/stable/3680541?seq=1 [2]: http://research.gold.ac.uk/22516/1/myk_lf_vsti_programming.p...
I'm looking at some of the fancy new ML tricks that have come out since that paper was wrote and have been thinking there would be significant improvements over the LSTM we used.
1. For sure, I was thinking something along the lines of a multiview VAE that gets as input either `f(z|audio, midi)` or `f(z|dx7_parameters)` and must produce as output `f(audio|midi,z)` or `f(dx7_parameters|z)`
2. Yea, I have tried to pick apart Ableton files in the past but the format is a bit of a nightmare, it might be easier to use source separation like https://github.com/deezer/spleeter to build your dataset!
As I understand it, their system can take an audio input and “learn” how to control the parameters of a synth to reproduce that sound. I had the pleasure of seeing a demo of it from someone who worked on it and thought it was impressive!
Synths have existed for a while which can use “resynthesis” to take a sound and recreate it using additive synthesis (e.g. Hartmann Neuron, Alchemy), but I wouldn’t probably call this AI/ML.
The Neuron used to work like this - but it's not a cheap way to synthesise sounds, and it never sounded all that awesome.
This works in the DX7's parameter space and tries to find sweet spots within that space - which are hard to discover, even if you know what you're doing.
I'm not convinced it's much more successful than a plain old constrained parameter randomiser. But it is much easier to use.
Are .alp files also XML? How would I go about viewing the contents of one? I had a quick go at it once but couldn't get anything not looking like binary.
The reason I ask is because the native alp files and instruments have preview sounds, and I'm curious if there's any way to add previews to your own created instruments.
It looks quite interesting. I am basically looking for the ELI5 because I have never heard of a DX7 before and I don't know what the file that I was prompted to download was about.
This project seems to take a bunch of manually designed presets that sound good and use them to train a model on what sounds good, so it can make up new presets.
(1) This looks interesting. I had no idea any of this existed.
(2) For the level of awesome, this is the worst-documented ecosystem I've stepped into in a long while. I hope some random user volunteers to make really nice documentation at some point. This could go from awesome to a lot awesomer.
I looked for MIDI synthesizer a while back, and never ran into dexed. I suspect I'll have a lot of fun with this at some point.
Hope that helps and feel free to get in contact info@thisdx7cartdoesnotexist.com or create an issue if I can help to make anything clearer
(1) For open source, out early is better than out later. v0 (or v1 or where ever you start numbering) shouldn't be perfect. If it's perfect, you're sharing too late.
(2) All this is volunteer work and a gift to the community. It's a fallacy to think the person who writes the code is also responsible for doing everything else. Some people code well. Others write well. Others do both well. That's okay.
(3) My comment was on the dexed ecosystem; not just on this piece
(4) All that said, what would be awesome is if
- There were sample audio files we could listen to. Ideally, these would be for the generated patches, but even if there was just a half-dozen example WAV or MP3 files.
- If the README file on github had a link to the web page, or at the very least, if the current text (thisdx7cartdoesnotexit.com) said "exist" at the end instead of "exit"
By far the best manual and sound design "how-to" for the DX7, or for FM synthesis in general.
I actually have a DX7 sitting on my desk at work, although I only use it as a MIDI keyboard because I love the keybed. Dexed or Arturia is so much easier to program, and 100% the same audio, so I have no reason to mess around programming the real thing. When I did play it directly, I programmed it in Dexed anyway.
Is that supposed to happen?
Running: Firefox: 76.0.1 (64 bit)
I thought it was going to be a picture of the cartridge.
Also, it had the "LatelyBass" preset, used on a huge number of records in the 80s and 90s.
It needs just two things:
1) some sanity checking on presets (to drop not working sounds) 2) javascript player on the page (there is web port of DEXED[1])
(Though personally I don't believe that we should accelerate the exhaustive search on the musical space, but the geek in me can't help pondering about this.)
• After clicking on a knob, I should then be able to use the up and down arrow keys to move the value up and down.
• I should be able to type in the numeric value I want a selected parameter to be.
If the interface had these two features, it would be perfect. Without them, for me, it is unusable for programming sounds.
You milage may vary if you are after some traditional sounds though - I am definitely not.
Nope.