Forum

Please or Register to create posts and topics.

AY-3-8913 chip

So I have a 6809 8bit with an AY-3-8913 chip, and am working on getting it to play files.

What I was wondering is the best way to get raw data (with a format guide) so I can import it into my compile chain. (which is me feeding the registers on the sound chip currently)

My ultimate goal is to be able to push a player back into the project.

I have viewed the 68000 raw data but I'm a few clues short of understanding it through the comments.

Hi! First of all, know that all the formats (AKG, AKY, AKM) are all documented in the "doc" folder, if you ever wanted to create a 6809 player for any of them (which I'd be glad to integrate in the package!). AKY is the simplest and the fastest player, and has already been adapted to several CPUs.

However, if you want a very simple format for a short music, you could use an export to YM, which is basically a raw dump of AY/YM registers (the format has been created by Leonard/Oxygen on Atari ST). AT3, via the "stream music analyzer" tool, allows you to import a YM, then export it as CSV, in case you wanted to create your own format.

shaten6809 has reacted to this post.
shaten6809

Thank you for the information, I missed that doc folder, la sigh

Now I have a project for the Easter weekend.

Question: I'm using Sarkboteur as my test song.
I run it through the streamed music analyzer
get the following csv file (11 lines shown)

frameIndex;psgIndex;r0;r1;r2;r3;r4;r5;r6;r7;r8;r9;r10;r11;r12;r13;isR13Retrigged
0;0;134;3;134;99;0;0;1;52;45;0;0;0;0;8;false
1;0;134;3;195;1;0;0;1;60;16;10;0;28;0;8;false
2;0;134;3;195;1;0;0;1;60;16;10;0;28;0;8;false
3;0;134;3;134;3;0;0;1;60;13;10;0;28;0;8;false
4;0;134;3;195;1;0;0;1;60;12;10;0;28;0;8;false
5;0;195;1;195;1;0;0;1;52;13;10;0;28;0;8;false
6;0;195;1;134;3;0;0;1;60;16;10;0;14;0;8;false
7;0;195;1;195;1;0;0;1;60;16;10;0;14;0;8;false
8;0;195;1;195;1;0;0;1;60;13;10;0;14;0;8;false
9;0;195;1;134;3;0;0;1;60;12;10;0;14;0;8;false
10;0;134;3;195;97;0;0;1;52;45;1;0;14;0;8;false

Register breakdown

r0,r1 - tone A
r2,r3 - tone B
r4,r5 - tone C
r6 - noise
r7 - mixer
r8 - Amplitude A

so I breakdown line 0.

134;3 tone A
134;99 tone B
0;0 tone C
1 noise
52 mixer
45 Amplitude A
0;0;0;0;8;false

this 45 for amplitude A makes no sense.
45 = 2D = 101101

all the AY guides I find say that bits 7,6,5 are not used.
So why is it setting bit 5?

Hi! Sorry for the late reply, I usually receive notification for new threads, but for some reasons I wasn't for this one!

R8 has the b5 set because there is a digidrum present (just like on the line 10). Remember that this is not a raw dump, but a Leonard's YM export, which has some (rather cluttered) information about digidrums and SID effect, which are also implemented on the export. One documentation of the Leonard's YM format is here:

http://www.vorc.org/document/YM3456.htm

The implementation in AT3 is as follows:

https://bitbucket.org/JulienNevo/arkostracker3/src/master/source/export/ym/YmStreamEncoder.cpp

Check the line 104!