Jump to content
Sign in to follow this  
karri

Handy Music waveforms

Recommended Posts

I am currently searching for amazing sounds to be used for amazing music.

 

As I am investing some time in making my SillySis game sound good I created a table with all possible waveforms for Handy Music. The table is the same as the Chipper polysort.dat table. But as the bits are in slightly different places I created a new table handymusic.dat.

 

Usage:

 

An instrument in SASS has a keyword "waveform" and a keyword "tuning". The "tuning" parameter is the length of the waveform. Example:

 

The first line in the table is:

2,0x1,0x2001,0x0 (tuning, square waveform, triangle waveform, shifter)

 

To use this waveform as a square wave.

waveform $0001 $0000

tuning 2.0

 

A triangle waveform would be

waveform $2001 $0000

tuning 2.0

 

Another example:

10,0x802a,0xa02a,0x7

 

If I want a triangle waveform I write

waveform $a02a $0007

tuning 10.0

 

handymusic.dat

  • Like 2

Share this post


Link to post
Share on other sites

I actually fell for a few good sounds for Silly Sis.

 

From the set of possible values I chose patterns with an equal number of ones and zeroes. This assures that the sound does not drift towards top or bottom.

 

Then I also wanted to use the same tuning for my instruments. The patterns are all 14 bits long.

 

And I wanted a lot of bits in the patterns to generate good harmonics. By listening I found a good waveform (marked with the word "harmonics").

 

So I chose these values:


 

14,0xb,0x200b,0x0
14,0xe,0x200e,0x0
14,0x6d,0x206d,0x36
14,0x6d,0x206d,0x73 harmonics
14,0x6d,0x206d,0x105a



Piano
        waveform $206d $73
        volume 32 -4
        tuning 14.0
        {
                rest 2
                volume 24 -2
                rest 8
                volume 8 -1
                rest 8
                volume 0 0
                end
        }

Flute
        waveform $200b $0
        volume 12 2
        tuning 14.0
        {
                rest 6
                volume 34 0
                rest 4
                volume 34 -1
                rest 10
                volume 0 0
                end
        }


Bass
        waveform $206d $73
        volume 20 2
        tuning 14.0
        {
                rest 3
                volume 20 0
                rest 3
                volume 20 -1
                rest 20
                volume 0 0
                end
        }

Basically I have the same waveform for Piano and for Bass. They are both string instruments so it does not matter.

In the Piano I cut the sound immediately and start fading. First fast, the slower. But I don't let it sustain.

 

These notes work with the tune I am working on. There is also no "noteoff" section. I did not feel the need for one.

 

In Chipper you get the same sounds by putting on the flags "unique" and "symmetric" I think. Chipper will find the same 5 waveforms in the same order. Look for length 14.

  • Thanks 1

Share this post


Link to post
Share on other sites

Here's the full set of percussion patches I made several years back.

 

I don't think all of them were included with HandyMusic's demo songs, and they could probably be adapted to other drivers. All of them are one channel and intended for use with the SASS "sfx" command.

 

Standard Set :

Snare
	waveform $D5
	volume 80 -12
	frequency 248
	{
		rest 4
		noteoff
		end
	}

Kick
	waveform $20D5
	volume 75 -8
	frequency 208
	{
		rest 4
		noteoff
		end
	}

HiHat_Closed
	waveform $D4
	volume 75 -9
	frequency 4
	{
		rest 3
		noteoff
		end
	}

HiHat_Open
	waveform $D4
	volume 75 -8
	frequency 4
	{
		rest 7
		noteoff
		end
	}


Clap
	waveform $D5
	volume 80 -12
	frequency 224
	{
		rest 4
		noteoff
		end
	}


Bass_Drum
	waveform $20D5
	volume 75 -5
	frequency 260 4
	{
		rest 4
		noteoff
		end
	}

Triangle
	waveform $C6
	volume 75 -8
	frequency 4
	{
		rest 7
		noteoff
		end
	}

Note the "Triangle" definition refers the instrument and not the waveform. It's similar to the metallic ting used in Wario Land and Link's Awakening on the GameBoy which uses a short period LFSR cycle.

 

Capcom Triangle Slide :

Capcom_Trislide
	waveform $2040
	frequency 0 16
	volume 33 -1
	tuning 22.0
	{
		rest 3
		volume 29 0
		noteoff
		volume 29 -3
		rest 8
		end
	}

 

Reminiscent of Sega Master System / Game Gear :

Sega_HiHat
	waveform $D4
	volume 60 -7
	frequency 140
	{
		rest 1
		noteoff
		end
	}

Sega_Snare
	waveform $D4
	volume 60 -7
	frequency 260
	{
		rest 4
		noteoff
		end
	}

Sega_Kick
	waveform $D4
	volume 70 -8
	frequency 300
	{
		rest 2
		noteoff
		end
	}

 

Punchier Stuff :

Punchy_BassDrum
	waveform $EE
	volume 75 -8
	frequency 16
	{
		loop 2
			rest 1
			frequency 500
			waveform $2040
			rest 1
			frequency 8
			waveform $EE
		endloop
		rest 1
		noteoff
		end
	}

Punchy_Snare
	waveform $EE
	volume 75 -8
	frequency 220
	{
		loop 3
			rest 1
			frequency 240
			waveform $C6
			rest 1
			frequency 200
			waveform $EE
		endloop
		rest 1
		noteoff
		end
	}

 

  • Thanks 2

Share this post


Link to post
Share on other sites

maybe this helps for designing.

 

OPT1 switch left (header) and right (program)

OPT2 switched sound off and on (and stops all sound effects)

 

there is some check for a "kill" sequence, thus it is impossible to use DO/LOOP with 0 or negative value.

effect.o

Edited by sage
  • Thanks 2

Share this post


Link to post
Share on other sites
7 hours ago, karri said:

Thanks @sage. Most useful utility.

happy to hear that.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...