Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
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  
  [WIP] Complex soundscapes from a single line of code  (Read 871 times)
0 Members and 1 Guest are viewing this topic.
Offline davedes
« Posted 2012-11-21 22:54:05 »

I'm splitting this off my other thread since it will be developed as a separate project/game than the Limbo4k stuff.

I've managed to get some complex musical soundscapes (eerie sounding "drones") out of a small amount of code. The duration, stretch amount, etc. is all easy to change without resulting in any larger of a JAR filesize. Right now it's under 3,182 bytes using proguard and pack200, although there is still some room for optimization and further compression.

Examples:
Example 1
Example 2

Test applet: (larger JAR size due to input, flexibility, etc)
Download (run HTML to view)

You can press SPACE to randomize the parameters and sample rate.

Currently the input uses the techniques described here. It randomly chooses from one of three "tracks", and stretches a window of it to 10 seconds:
Track 1: (t*(5+((t>>11)&5)))&(t>>7)
Track 2: (t*9&t>>8|t*5&t>>5|t*3&t/1024)-1
Track 3: (t*3)&t>>8|(t>>4)

However, the input could be anything, including a home-brew soft synth. Here is an example where I used sine waves of varying frequencies (a super basic soft synth) to create a melody, then stretched it to a longer output.
Input.wav -> Output.wav

The effect is achieved by using the PaulStretch algorithm. The algorithm is explained visually here -- his code is open source, too. For the FFT, I extracted the core components of badlogic's audio-analysis library.

Still lots more testing to be done. Next I want to use string input on the algorithmic one-liner to create a fixed melody. I also would like to filter the frequencies in order to create some more visualization (right now the visuals only rely on amplitude). Then, as per usual, I need to actually turn this into a game... Roll Eyes If you hear anything cool from the given parameters, please post them (in the Java Console you can see which "Track" is playing and its starting index).

I will post some code at a later point.

Offline forthx

Junior Member


Medals: 1
Projects: 1



« Reply #1 - Posted 2013-02-03 17:46:25 »

It's really interesting, an ambient song like this could change the feeling of the game.

And you make me discover "PaulStretch algorithm" thanks !
Offline Roquen

JGO Ninja


Medals: 66



« Reply #2 - Posted 2013-02-05 15:52:01 »

I'm a sound idiot, but I'd be attempted to try some super-cheap transforms for 4K...like say some of the most basic wavelets.
Pages: [1]
  ignore  |  Print  
 
 

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Get high quality music tracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (133 views)
2013-05-17 21:29:12

alaslipknot (142 views)
2013-05-16 21:24:48

gouessej (171 views)
2013-05-16 00:53:38

gouessej (166 views)
2013-05-16 00:17:58

theagentd (175 views)
2013-05-15 15:01:13

theagentd (160 views)
2013-05-15 15:00:54

StreetDoggy (204 views)
2013-05-14 15:56:26

kutucuk (228 views)
2013-05-12 17:10:36

kutucuk (228 views)
2013-05-12 15:36:09

UnluckyDevil (231 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.065 seconds with 21 queries.