Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Composing > Experiments on the Sound
2024-04-17 18:59
Mr SQL

Registered: Feb 2023
Posts: 122
Experiments on the Sound

I've been working on an algorithm to dynamically recompile the byte code for the SID chip, creating interesting and pleasing tunes provide the original tune is melodic.

Basically GIGO (garbage in garbage out) ensues with this algorithm if the tune used as the input has no Melody.

I've received a lot of feedback with earlier versions of the algorithm with some C64 fans really enjoying the sound and some not as pleased, either way share your thoughts here and any ideas to improve the algorithm.

Cross platform algorithmic arrangements:

This algorithm runs cross platform and works on the Atari 2600 TIA as well as the SID.

Here is the WIP for STARBLITZ Neon Sound on the C64 and Atari respectively:

https://youtu.be/ixuHdHvqMK8
https://youtu.be/FfAga57yJFs

The original musical composition can be heard at 4:30 in the Atari version, a Blues piece. Various soft piano and Jazz and electronic sound implementations are heard in the C64 version. I find it interesting that different music genres appear to emerge as the musical score is recursively processed by the algorithm.

Another algorithm is used to interpret the TIA on the C64 SID which sounds completely different. Even trying to get the 6581 and 8050 SID models to sound uniform is very difficult. I am not trying to get the same exact Sound like the gameplay and graphics (besides the motion pixel art).
 
... 27 posts hidden. Click here to view all posts....
 
2024-06-04 05:54
Mr SQL

Registered: Feb 2023
Posts: 122
Quoting JackAsser
Please explain the research, because visuals and audio only doesn't make me understand tbh. Anyway, please keep up whatever floats your boat.


Sure. Here is the C64 version of Tron Deadly Discs featuring the latest version of the generator:

https://youtu.be/xc4pzIDNCZ8

How it works is there are basically three chip tunes in the game.

One tune that plays repeatedly and two tunes that may merge or temporarily take over the melody whenever the player or Master Control Program Guards are hit.

The first round has the three tunes unchanged by the generator. Like Frantic's slide generator it uses existing tunes as inputs for algorithmic variations on the sound.

Select 1080p60 to play the video clearly for the visual Fx.
2024-06-04 18:03
Frantic

Registered: Mar 2003
Posts: 1633
Quoting Mr SQL
The 256 byte tune is fantastic!
Excellent example with the interactive slider for Druid II.
Can the engine work on any SID tune?


Thanks. The Druid II hack is tailored to the specific song/player in this case. I had to figure out some reasonably simple tweaks that would suit this particular composition and still sound at least fairly "musical". For example, it may be okay to randomly change the waveform of some "piano" instrument between sine/triangle/square or to enable/disable ring modulation on that sound, but perhaps not to change a drum sound by changing noise wave to another waveform as that would only sound crappy. (Not that there are any drums in this particular tune, but you get the point).

On a more abstract level, I guess one could say that it would be possible to do "the same thing" on other tunes as well. That is, to use the same general approach.
2024-06-06 07:56
F7sus4

Registered: Apr 2013
Posts: 113
Almost as if it would be wonderful to have a randomizer in a music editor one day. :D
2024-06-06 14:13
Frantic

Registered: Mar 2003
Posts: 1633
Controlled randomness will be a central built in feature of deathMON, to be released in 2052.
2024-06-06 19:07
chatGPZ

Registered: Dec 2001
Posts: 11154
Quote:
Almost as if it would be wonderful to have a randomizer in a music editor one day. :D

The Atari Cubase i used in my last life had this :)
2024-06-06 23:24
ws

Registered: Apr 2012
Posts: 235
a buddy and i created the now free "tongerät1" vst plugin, which has a button "störstrahlung" in the settings. if you enable that button, randomly, over time each parameter will once in a while be altered slightly in a random fashion http://sys.efope.de/tonge.html so if you create some notes on a certain patch, and then activate that button and render 2h of audio, the sound will be transformed into a mutation of the original sound - but not according to any aeshtetics, so the sound can become pretty "fucked up".
2024-06-08 02:12
Mr SQL

Registered: Feb 2023
Posts: 122
Quoting Frantic
Quoting Mr SQL
The 256 byte tune is fantastic!
Excellent example with the interactive slider for Druid II.
Can the engine work on any SID tune?


Thanks. The Druid II hack is tailored to the specific song/player in this case. I had to figure out some reasonably simple tweaks that would suit this particular composition and still sound at least fairly "musical". For example, it may be okay to randomly change the waveform of some "piano" instrument between sine/triangle/square or to enable/disable ring modulation on that sound, but perhaps not to change a drum sound by changing noise wave to another waveform as that would only sound crappy. (Not that there are any drums in this particular tune, but you get the point).

On a more abstract level, I guess one could say that it would be possible to do "the same thing" on other tunes as well. That is, to use the same general approach.


Very cool. btw Hat Trick is fantastic! The wild graphics go really well with the sounds.

Quoting F7sus4
Almost as if it would be wonderful to have a randomizer in a music editor one day. :D


Quoting chatGPZ

The Atari Cubase i used in my last life had this :)


This is a great idea, there could be music editors with these kind of algorithms.

I'm working on a music editor that has something like this now. The tracker includes a Tiny BASIC language that can programmatically resequence on the fly or apply algorithms.

Here is a recent example where I added the code for the algorithm to the tracker in another game. You can hear the original SID in the first round. There is a second algorithm in this game that changes the SID temporarily as it is playing interacting with the algorithm that permanently revises the music:
https://youtu.be/zEJTEzrszcw

I wonder if music editors have ever included a scripting language before? The Cubase feature is a close application.
2024-06-10 14:12
Hate Bush

Registered: Jul 2002
Posts: 457
as much as i absolutely CRAVE for such editor (standard tracker + simple scripts for randomizing things) since i had started writing shit on C64... i somehow doubt if it's going to happen here and now.
hope that motivates you to prove me wrong ;)
2024-06-10 20:03
spider-j

Registered: Oct 2004
Posts: 450
Quoting Hate Bush
as much as i absolutely CRAVE for such editor (standard tracker + simple scripts for randomizing things) since i had started writing shit on C64... i somehow doubt if it's going to happen here and now.

I did something like this for a game for Endurion (don't remember the name right now). Used 2 voices for music and 3rd voice for random SFX instruments to create some kind of "spooky" atmosphere. Unfortunately it did confuse people to think some things were happening in game when they weren't.

Of course you're limited to (ab)use wavetables even for little melody parts with the SFX approach. But I feel this idea could be taken much further than I took it.

Also I think if you prepare a bunch of patterns in the first subtune and just loop one voice over an empty pattern it should be possible to randomly insert patterns on the fly.

But I guess by "scripting" you mean not programming the randomizer / ruleset parts in assembly (?) ...
2024-06-12 03:38
Mr SQL

Registered: Feb 2023
Posts: 122
Quoting spider-j
Quoting Hate Bush
as much as i absolutely CRAVE for such editor (standard tracker + simple scripts for randomizing things) since i had started writing shit on C64... i somehow doubt if it's going to happen here and now.

I did something like this for a game for Endurion (don't remember the name right now). Used 2 voices for music and 3rd voice for random SFX instruments to create some kind of "spooky" atmosphere. Unfortunately it did confuse people to think some things were happening in game when they weren't.

Of course you're limited to (ab)use wavetables even for little melody parts with the SFX approach. But I feel this idea could be taken much further than I took it.

Also I think if you prepare a bunch of patterns in the first subtune and just loop one voice over an empty pattern it should be possible to randomly insert patterns on the fly.

But I guess by "scripting" you mean not programming the randomizer / ruleset parts in assembly (?) ...


^This is interesting I would like to check it out if you remember the name. The Tracker I am working on has some of these aspects.

It lets you define patterns for the melody and subtunes for two voices only and uses a logical and of the waveform to create a harmonic for the third voice.

If you don't add any code the melody will play in the player but must have script to play one of the subtunes or modify the Sound. You can use Assembly too.

Wavetables are heavily utilized because the editor abstracts the voice frequencies to fit 32 note and 32 instrument defs.
The note frequency slides around a bit depending on the instrument definition.

Quoting Hate Bush
as much as i absolutely CRAVE for such editor (standard tracker + simple scripts for randomizing things) since i had started writing shit on C64... i somehow doubt if it's going to happen here and now.
hope that motivates you to prove me wrong ;)


Very cool! I would love your feedback on this experimental Tracker.

Here is a simple example creating a chiptune and then adding an algorithm with the scripting.

Output:
I like the SID tunes created at 6:04 and 9:40 by the algorithm after multiple iterations:
https://youtu.be/ElOiambwmWw

Input:
Here is the initial SID in the format described above,
Only two voices are programmed in this Tracker:

Def, frequency, Def, frequency, number of frames

chiptunes
4,19,4,19,8
4,17,4,17,8
4,15,4,15,8
4,14,4,14,16
4,19,4,19,8
4,14,4,14,16
4,19,4,19,8
4,14,4,14,16
4,19,4,19,8
4,14,4,14,8
4,14,4,14,8
4,15,4,15,8
4,17,4,17,8
4,19,4,19,16
4,26,4,26,8
4,19,4,19,16
4,26,4,26,8 
4,19,4,19,16
4,26,4,26,8
4,19,4,19,8
4,19,4,19,8
4,17,4,17,8
4,15,4,15,8
4,14,4,9,32
0,0,0,0,48
6,30,6,30,8
6,27,6,27,8
6,24,6,24,8
6,22,6,22,8
6,30,6,30,16
6,22,6,22,8
6,30,6,30,16
6,22,6,22,8
6,30,6,30,16
6,22,6,22,8
6,22,6,22,8
6,24,6,24,8
6,27,6,27,8
6,30,6,30,8   
1,5,1,5,16
6,30,6,30,8   
1,5,1,5,16
6,30,6,30,8   
1,5,1,5,16
6,30,6,30,8
1,5,1,5,16
0,0,0,0,64
0,0,0,0,0
7,30,7,30,24
7,24,7,24,24
0,0,0,0,0

The SID plays unchanged on the first level and then this BASIC script rebuilds it:
rebuildmusic rem algorithm to rebuild chiptune
 for i=0 to 255
 MusicData(i)=MusicData(i)&%00011111+3
 next i
 return

The entire chiptune is exposed to the scripting language as a variable array. This makes it easy to apply algorithms.

Scripts can also run every frame allowing the parameters and tempo to be changed with temporary Fx.

The graphics in the game are written in BASIC scripting too but they are not necessary to use the Tracker nor is the SID scripting. This example would compile into a prg with the player. All scripts compile into Assembly in the prg as part of the player.
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Fungus/Nostalgia
STE'86
Guests online: 73
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.7)
6 Aliens in Wonderland  (9.6)
7 Comaland 100%  (9.6)
8 Uncensored  (9.6)
9 No Bounds  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 It's More Fun to Com..  (9.5)
7 Dawnfall V1.1  (9.5)
8 Daah, Those Acid Pil..  (9.5)
9 Birth of a Flower  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Nostalgia  (9.4)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 SHAPE  (9.3)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.8)
4 Acidchild  (9.7)
5 Cash  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.05 sec.