Jump to content
IGNORED

Handy Music waveforms


karri

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
Link to comment
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 2
Link to comment
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 3
Link to comment
Share on other sites

  • 4 weeks later...

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
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

  • 3 months later...
  • 5 months later...

seems nobody beside Karri tried?

anyway.

I extended it a bit and was merging the midi-synthesizer (which i posted here 3 years ago) with the effect/instrument editor (or the other way around).

now you can trigger effects/instrument from your midi keyboard on the lynx. support for 128 slots instruments and percussion (effects). but only one can be saved to eeprom (128 byte limit :-b ).

there is some possibility to upload/download by midi, but that is a bit too complicated for normal users.

 

tl;dr

with opt1 you switch between editor and synth player.

as long as you are in the editor, any midi channel (beside 10) triggers the what is in the editor to be played as instrument with the correct note. if you play channel 10, all notes will play the editor content as effect/percussion.

in the synth mode, any midi channel will play the instrument in the slot which has been assigned by the midi-program command to the channel. channel 10 will play effect/perc where the note gives the index in the percussion table.

 

the editor commands have mostly stayed the same. whats new is that one can switch the play on edit/move from inst to perc/eff or turn it off.

  • Like 1
Link to comment
Share on other sites

On 9/25/2020 at 10:21 PM, SlidellMan said:

Karri, have you considered doing a series of video tutorials on using chipper?

@SlidellMan I made a small introduction here: https://atariage.com/forums/topic/256753-atari-lynx-game-development-tools-and-tutorials-wip/?tab=comments#comment-4137925

It's not as complicated as it looks if you look past all the extra details (the "getting started guide" tries to help with that).

 

  • Thanks 1
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...