short and sweet Sound bank designer

This forum is about audio tools, including samplers, sound trackers, sound chip editors, how to do sound effects, etc...
Post Reply
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

short and sweet Sound bank designer

Post by Twilighte » Mon Aug 10, 2009 3:27 pm

I wrote this handy little utility after getting fed up with the rather limited PLAY and SOUND command in Oric BASIC.
It allows one to set up a bank of register values, send them to the AY and Save/Load them from Disk (16 bytes).
It took about an hour to write but will prove very useful to me and perhaps others.

It requires Sedoric to run since it uses Sedorics USER command to call the ROM routine passing X and Y parameters (address of sound bank).
The program is totally in BASIC and if enough people want it, i can write a special version that doesn't require SEDORIC 8)

The utility is called SDES (Sound bank DESigner) and looks like this..

Image

As you'll see all instructions on screen.
and the tap is below..

http://www.defence-force.org/ftp/forum/ ... s/sdes.tap

From the Oric bible (AUG) the following Oric sounds can be made using this utility. Just enter the bank data for each below..

Ping

Code: Select all

18
00
00
00
00
00
00
7E
10
00
00
00
0F
00
Shoot

Code: Select all

00
00
00
00
00
00
0F
47
10
10
10
00
08
00
Explode

Code: Select all

00
00
00
00
00
00
1F
47
10
10
10
00
18
00
For a more detailed explanation of the registers available please refer to the sound section of the defence-force wiki.. :twisted:

http://wiki.defence-force.org/doku.php?id=oric:main

Happy Oricing :D

User avatar
ibisum
Squad Leader
Posts: 879
Joined: Fri Apr 03, 2009 8:56 am

Post by ibisum » Mon Aug 10, 2009 10:44 pm

This is awesome .. you've basically opened up the AY chip for full-synthesis .. cooooool!

User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte » Tue Aug 11, 2009 8:58 am

Through sedoric it is very easy to call the ROM routine with parameters from BASIC :)
For example..

just place the following towards the start of your program.

Code: Select all

USER 1,DEF #FA86
And then treat #BFE0 - #BFED as the AY registers.
You actually don't need to worry too much about the initial register values (The ROM routine protects against anything too unpleasent) 8)

Everytime you want to make the change..

Code: Select all

USER 1,X#E0,Y#BF
This will send the memory range to the AY registers :)

The ROM routine sits at $FA86 and if passed the address in X and Y registers will dump 14 bytes from the address to the AY registers.

User avatar
waskol
Flight Lieutenant
Posts: 331
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Post by waskol » Tue Aug 11, 2009 3:16 pm

Awsome !!!

Oh yes ! Without Sedoric ! Pleeeeeeeeeeaaaaaaaaaaaaseeeeee.... :lol:

User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte » Thu Aug 13, 2009 9:15 am

I'm at work atm..
hmm, i wonder if i can tell you how to do it without being at home..

CLOAD the program, and enter these lines..

Remove the line or text..

Code: Select all

USER 1,DEF #FA86
Replace this text..

Code: Select all

USER 1,X#E0,Y#BF
with

Code: Select all

CALL #BFF0
Then enter these new lines

Code: Select all

1 DOKE #BFF0,#E0A2
2 DOKE #BFF2,#BFA0
3 POKE #BFF4,#4C
4 DOKE #BFF5,#FA86
Now save the program and it should (fingers crossed) work!

And just for information the actual mc was..

Code: Select all

ldx #E0
ldy #BF
jmp $FA86

User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte » Tue Nov 10, 2009 10:26 pm

Some interesting rythms can be had by mixing eg repeting sawtooth or triangle with chip channels as the following example demonstrates nicely.

D5,3,EB,3,0,0,0,7C,10,10,0,1D,0,8

This should work on both emu and real oric in same way but difficult to know for sure without trying it.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest