Views: 83670
Submissions: 597
Favs: 12449

Digital Artist | Registered: Dec 10, 2005 08:49
Featured Submission
Stats
Comments Earned: 11181
Comments Made: 13707
Journals: 337
Comments Made: 13707
Journals: 337
Featured Journal
I'm making a fantasy chip / digital synthesizer
3 years ago
Hello,
Long time no see. I don't really check this place much anymore, or even really make a lot of music, but I'm still doing things! Ever since the pandemic started, I really wanted to tackle something which has always had a bit of mystique to me but I could never wrap my head around, and that was FM synthesis. All my musical peers from back in the day got into it a lot earlier and I just could never really figure it all out, but I really loved the sound. So, in late 2019, when feeling more confident in my programming skills after tackling a module replayer in Godot Engine, I started my first attempt at creating an FM synthesizer in a project called gdsFM.
It started off being based off gdscript (Godot's native scripting language) but was incredibly slow and I quickly realized it was not suited for the job. That is when I started to really tackle learning C#. At the time, there weren't very many projects at all that explained on a fundamental level in one place how some of the original implementations of FM really worked in detail that were, you know, both free to use in the libre sense but also commercially. There was still a bit of secret sauce involved with all of it and I had to do a lot of research while avoiding using any of the GPL licensed code out there.
GdsFM's code was convoluted, a bit weird, and not entirely compatible with the timbres of real FM chips, but my goal was actually really humble at first and it was actually part of my attempt at learning a thing called BambooTracker easier. By learning how FM works at the fundamental level, and at the same time building a small replayer I could use for my own project called BambooCopy (allowing users with large amounts of VOPM instruments to quickly catalog and import them into BambooTracker using the clipboard), I thought I could come up to speed with the technology and rekindle my love of making music, chiptunes and the like.
At some point I started fantasizing about an old wish I had for a tracker that combined FM, sample, and PSG type synthesis all in one little bundle. It seemed like that such a thing might've been within reach, and the synthesizer quickly started experiencing some feature creep. I thought about fantasy consoles like PICO-8, Chip8 and thought about having a fantasy chip that people could embed into their own games. This got me lost down a rabbit hole that continued throughout 2020 and into 2021. It was around that time when I discovered that Aaron Giles (of MAME fame) was making an effort to re-implement many of the classic Yamaha FM chip emulators with more commercial-friendly open source licenses. I'm not really that close to the emu community, so I have no idea what spurred this on, but I'm sure it opened a door for many people to really dive into FM proper! Perhaps there has been more commercial interest in classic FM lately....
Anyway, while studying the code, I realized a lot of things I could've done better, as well as why my synthesizer always sounded different than the emulators, even with the most basic timbres. Much of the classic sound used lookup tables that some people went through a lot of effort in the past decade or so to decap, reverse engineer and such, and the nature of the fundamental synthesis meant that those tables made a big difference in the "quality" of the sound. I was inspired to start over from scratch with a new project that conformed much closer to the classic FM synthesis sound, and was able to make my code much more efficient in the process. That project is called PhaseEngine -- The audio core for an as-of-yet not realized set of projects; a tracker, a DAW plugin, a cross-platform game middleware module, and perhaps even a fantasy console.
Since starting this journey, a ton has happened in the commercial FM scene. KORG has released both hardware and software versions of their DX7-like instrument, the opsix. A portable chiptune device called M8 Tracker is in prerelease. Plogue has released their chipsynth ops7 (a DX7 emulator/audio plugin), and Tracktion has released "F'em", yet another 8-op synth which offers to bring the FM sound into the modern era. There's still a bit of "secret sauce" and gatekeeping to this day, especially in the real chiptune part of that scene, but things are changing really rapidly. I kinda want to be part of the club, but I also want to put something out for the world to adopt, free for everyone, and open up the world of FM to everybody who admired the sound but found it too mysterious and confounding to take a deep dive into. To that extent, I hope to differenciate myself from these other projects through new UI paradigms, offering an easy and uplifting sound-creation experience, and a helpful wiki to get beginners into making their own sounds from scratch and giving chiptunes another shot in the arm.
So, hopefully, I get to the point where I can support myself a little bit with my projects, this one included. What's in it for you guys? Well, the best parts are yet to come. Right now, all I have is the basic synth, and it's getting pretty close to being feature-complete, but it's still definitely a work in progress. After that, comes the tracker, the DAW basically, that'll start to complete the set. It's almost certainly going to support both tracker-style and piano-roll style methods of composing, a bit of a hybrid of the two. I've hinted at how this was going to work over on my Twitter account (@nobuyukinyuu) but have been focusing mostly on getting the core synth ready first! I promise it's going to be an interesting experience, if I can make it that far.
If you want to keep up to date with what I'm working on, I still post progress updates over on Twitter right now. As the project matures, I may start up a blog over on itch.io for the actual audio workstation program. There is however already a nice little UI for making sounds that you can play with right now, provided you have the Mono build of Godot Engine, for PhaseEngine itself though! I recommend giving it a try! And if you do, please let me know what you think.
https://github.com/nobuyukinyuu/PhaseEngine
https://twitter.com/nobuyukinyuu
Until next time...
Long time no see. I don't really check this place much anymore, or even really make a lot of music, but I'm still doing things! Ever since the pandemic started, I really wanted to tackle something which has always had a bit of mystique to me but I could never wrap my head around, and that was FM synthesis. All my musical peers from back in the day got into it a lot earlier and I just could never really figure it all out, but I really loved the sound. So, in late 2019, when feeling more confident in my programming skills after tackling a module replayer in Godot Engine, I started my first attempt at creating an FM synthesizer in a project called gdsFM.
It started off being based off gdscript (Godot's native scripting language) but was incredibly slow and I quickly realized it was not suited for the job. That is when I started to really tackle learning C#. At the time, there weren't very many projects at all that explained on a fundamental level in one place how some of the original implementations of FM really worked in detail that were, you know, both free to use in the libre sense but also commercially. There was still a bit of secret sauce involved with all of it and I had to do a lot of research while avoiding using any of the GPL licensed code out there.
GdsFM's code was convoluted, a bit weird, and not entirely compatible with the timbres of real FM chips, but my goal was actually really humble at first and it was actually part of my attempt at learning a thing called BambooTracker easier. By learning how FM works at the fundamental level, and at the same time building a small replayer I could use for my own project called BambooCopy (allowing users with large amounts of VOPM instruments to quickly catalog and import them into BambooTracker using the clipboard), I thought I could come up to speed with the technology and rekindle my love of making music, chiptunes and the like.
At some point I started fantasizing about an old wish I had for a tracker that combined FM, sample, and PSG type synthesis all in one little bundle. It seemed like that such a thing might've been within reach, and the synthesizer quickly started experiencing some feature creep. I thought about fantasy consoles like PICO-8, Chip8 and thought about having a fantasy chip that people could embed into their own games. This got me lost down a rabbit hole that continued throughout 2020 and into 2021. It was around that time when I discovered that Aaron Giles (of MAME fame) was making an effort to re-implement many of the classic Yamaha FM chip emulators with more commercial-friendly open source licenses. I'm not really that close to the emu community, so I have no idea what spurred this on, but I'm sure it opened a door for many people to really dive into FM proper! Perhaps there has been more commercial interest in classic FM lately....
Anyway, while studying the code, I realized a lot of things I could've done better, as well as why my synthesizer always sounded different than the emulators, even with the most basic timbres. Much of the classic sound used lookup tables that some people went through a lot of effort in the past decade or so to decap, reverse engineer and such, and the nature of the fundamental synthesis meant that those tables made a big difference in the "quality" of the sound. I was inspired to start over from scratch with a new project that conformed much closer to the classic FM synthesis sound, and was able to make my code much more efficient in the process. That project is called PhaseEngine -- The audio core for an as-of-yet not realized set of projects; a tracker, a DAW plugin, a cross-platform game middleware module, and perhaps even a fantasy console.
Since starting this journey, a ton has happened in the commercial FM scene. KORG has released both hardware and software versions of their DX7-like instrument, the opsix. A portable chiptune device called M8 Tracker is in prerelease. Plogue has released their chipsynth ops7 (a DX7 emulator/audio plugin), and Tracktion has released "F'em", yet another 8-op synth which offers to bring the FM sound into the modern era. There's still a bit of "secret sauce" and gatekeeping to this day, especially in the real chiptune part of that scene, but things are changing really rapidly. I kinda want to be part of the club, but I also want to put something out for the world to adopt, free for everyone, and open up the world of FM to everybody who admired the sound but found it too mysterious and confounding to take a deep dive into. To that extent, I hope to differenciate myself from these other projects through new UI paradigms, offering an easy and uplifting sound-creation experience, and a helpful wiki to get beginners into making their own sounds from scratch and giving chiptunes another shot in the arm.
So, hopefully, I get to the point where I can support myself a little bit with my projects, this one included. What's in it for you guys? Well, the best parts are yet to come. Right now, all I have is the basic synth, and it's getting pretty close to being feature-complete, but it's still definitely a work in progress. After that, comes the tracker, the DAW basically, that'll start to complete the set. It's almost certainly going to support both tracker-style and piano-roll style methods of composing, a bit of a hybrid of the two. I've hinted at how this was going to work over on my Twitter account (@nobuyukinyuu) but have been focusing mostly on getting the core synth ready first! I promise it's going to be an interesting experience, if I can make it that far.
If you want to keep up to date with what I'm working on, I still post progress updates over on Twitter right now. As the project matures, I may start up a blog over on itch.io for the actual audio workstation program. There is however already a nice little UI for making sounds that you can play with right now, provided you have the Mono build of Godot Engine, for PhaseEngine itself though! I recommend giving it a try! And if you do, please let me know what you think.
https://github.com/nobuyukinyuu/PhaseEngine
https://twitter.com/nobuyukinyuu
Until next time...