Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (481)
Games in Android Showcase (110)
games submitted by our members
Games in WIP (548)
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  
  Complex soundscapes from a single line of code  (Read 1503 times)
0 Members and 1 Guest are viewing this topic.
Offline davedes
« Posted 2012-11-21 21: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 16: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
« Reply #2 - Posted 2013-02-05 14: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  
 
 
You cannot reply to this message, because it is very, very old.

 

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

The first screenshot will be displayed as a thumbnail.

atombrot (26 views)
2014-08-19 09:29:53

Tekkerue (24 views)
2014-08-16 06:45:27

Tekkerue (23 views)
2014-08-16 06:22:17

Tekkerue (14 views)
2014-08-16 06:20:21

Tekkerue (22 views)
2014-08-16 06:12:11

Rayexar (60 views)
2014-08-11 02:49:23

BurntPizza (38 views)
2014-08-09 21:09:32

BurntPizza (30 views)
2014-08-08 02:01:56

Norakomi (37 views)
2014-08-06 19:49:38

BurntPizza (67 views)
2014-08-03 02:57:17
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org 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‑gaming.org
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!