Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (788)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (860)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  FM Synthesis on the fly  (Read 4819 times)
0 Members and 1 Guest are viewing this topic.
Offline philfrei
« Posted 2012-01-25 06:00:59 »

I've been experimenting with using Java to implement FM Synthesis, and now have something to show. (This is more a demo than a question.)

This link demos a 10-voice polyphonic, 6-operator FM patch, called "SpiderBell" that I used in the recordings for the windchime in my yet-to-be completed puzzle game "Hexara". The original patch was something I cooked up for the Yamaha DX7 synthesizer long ago.

So, this jar, which includes a working version of a supporting "AudioMixer" I described in another thread (but somewhat updated and improved) and the various graphics, is under 70KB. In contrast, the chime .wav files in the windchime of Hexara ran about 10MB.

I'm hoping to get all the Hexara sounds generated via Java before too long, and to rewrite the game's audio at that point so all will be generated on the fly.

It seems to me it should be possible to make a MIDI-playable synthesizer from this, which could be hooked up to a Java Sequencer for "live" game music. Can't say for sure that it would work on a game, but if it does, some of those 6-operator FM patches are really sweet.

Maybe I should make the position on the screen also be used for panning, to show that the AudioMixer I wrote supports stereo.

Other game ideas I am thinking about include some sort of "Concentration" or memory game with sounds. But I should probably try and finish up Hexara first.

music and music apps:
Offline ra4king

JGO Kernel

Medals: 508
Projects: 3
Exp: 5 years

I'm the King!

« Reply #1 - Posted 2012-01-25 06:27:04 »

Really beautiful sound when playing around with it <3

I did hear a lot of crackling when hitting multiple loud notes but I saw you mentioned it in the bottom of the page Smiley

Offline philfrei
« Reply #2 - Posted 2012-01-25 20:54:58 »


Thanks for trying it out and for the nice compliment and observation. You helped me get over my laziness, and I recalibrated the screen so that the wretched "truncation noise" no longer occurs at high volumes.

I really should get on with encoding more DX7 sounds, or making an interface to help with this, as there are so many beautiful patches, and they seem to run pretty cheaply in terms of cpu load.

music and music apps:
Pages: [1]
  ignore  |  Print  

hadezbladez (2127 views)
2018-11-16 13:46:03

hadezbladez (807 views)
2018-11-16 13:41:33

hadezbladez (2099 views)
2018-11-16 13:35:35

hadezbladez (415 views)
2018-11-16 13:32:03

EgonOlsen (3451 views)
2018-06-10 19:43:48

EgonOlsen (3680 views)
2018-06-10 19:43:44

EgonOlsen (2272 views)
2018-06-10 19:43:20

DesertCoockie (3002 views)
2018-05-13 18:23:11

nelsongames (3072 views)
2018-04-24 18:15:36

nelsongames (3852 views)
2018-04-24 18:14:32
Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45

Deployment and Packaging
by philfrei
2018-08-20 02:33:38

Deployment and Packaging
by philfrei
2018-08-20 02:29:55

Deployment and Packaging
by philfrei
2018-08-19 23:56:20 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!