Jump to content
Heaven/TQA

Did we every tried something like this on A8?

Recommended Posts

I listened to some of the C64 speech samples, and they don't sound like straight lossy compression or phoneme-based encoding. With phoneme based encoding, you'd have a robotic sound like S.A.M., but the intonation is natural. It sounds more like what you'd get with an encoding designed for speech, like LPC. If that's the case, the C64 implementation might be relying on the SID bandpass filter, which might make it hard to replicate on the Atari 8-bit.

Share this post


Link to post
Share on other sites

but you have Ghostbusters and Kennedy Approach on A8, too... so there might be the same encoder/decoder used?

Share this post


Link to post
Share on other sites

Not sure about Kennedy Approach, but IIRC Ghostbusters uses the same technology.

 

Wrathchild hacked out and converted the routine from the C-64... so there's not really any reverse-engineering going on there except the code conversion itself.

 

It'd be real nice to have the encoder software... but I'd say even today it's still got commercial value.

 

Sure, there's other stuff like MP3, OGG, FLAC and the countless others, but you generally need about 100 times the CPU grunt of our machines to decode them in realtime.

Share this post


Link to post
Share on other sites

There's a pretty good one on the Beeb by Superior Software. It probably hammers the hardware rather than use the ROM functions but it might be possible to convert depending on what it's actually doing.

 

 

Pete

Share this post


Link to post
Share on other sites

You mean like this.... :?: :D

 

Whilst similar, the C64 replay routines for Impossible Mission and Ghostbusters do differ in the way the samples are packed and so, for example, you can't playback the GB samples through the IM player. Haven't looked into Kennedy Approach yet but then the A8 and C64 would be more similiar in terms of the # of samples available.

 

It would be great to understand the encoding technique and so produce a sample converter for general use though.

 

Regards,

Mark

gbreplay.xex

Share this post


Link to post
Share on other sites

Wikipedia says that Kennedy Approach and others use the E.S.S. software for speech... even an Apple 2 game is mentioned...

Edited by Heaven/TQA

Share this post


Link to post
Share on other sites

Probably an earlier incarnation.

 

Impossible Mission is fairly impressive given the quality is about what you'd expect of 11 KHz sampling, yet fits in about 10% or so of the space you'd use for packed samples.

Share this post


Link to post
Share on other sites

Was the fantastic chicken noise in Chicken sampled too (seems to have been removed from some file copies) :ponder: Think Grand Prix Sim (codebusters) has speech too. :)

Share this post


Link to post
Share on other sites

Oh... the "fantastic" Beach Head 2 was using ESS, too? (interesting... ;) the emulator on A8 side made nice comic bubbles out of it... so real speech2text... ;))

 

but the c64 version do not shut off the screen esp. in BH2? how was that possible then?

Share this post


Link to post
Share on other sites

C64 has the more even Halt overhead, so samples with delay loops will sound more accurate. Atari, we have the badlines, then DMA every second cycle on other lines, then practically no DMA for the blanks, not to mention the 9 cycle Refresh on most lines. So, the technique of simply using delay loops will almost never sound good.

 

Back in the day, nobody seemed to know how to properly do samples on the Atari, ie use Timers, poll loop on Timers, or just use VCount or HSync waits - all of which can be made to sound practically the same regardless of screen on or off.

 

Of course also, they didn't bother for the most part to utilise the full 64K, so lots of games missed out on potential extras like voice samples in BH2 etc.

 

Plenty of games (Chicken, Tumblebugs) of the early days had samples... of course they were just the same primitive raw data that most of us are using these days.

Share this post


Link to post
Share on other sites

Hello guys

 

Didn't the Closer to Home guy (Tom, I forgot his last name) do something with samples? IIRC he was very good, but it's been a while since I looked into that.

 

greetings

 

Mathy

Share this post


Link to post
Share on other sites

You mean like this.... :?: :D

 

Whilst similar, the C64 replay routines for Impossible Mission and Ghostbusters do differ in the way the samples are packed and so, for example, you can't playback the GB samples through the IM player. Haven't looked into Kennedy Approach yet but then the A8 and C64 would be more similiar in terms of the # of samples available.

 

It would be great to understand the encoding technique and so produce a sample converter for general use though.

 

Regards,

Mark

 

sounds quite good... ;)

 

amazing that it is only 8kb total...

Share this post


Link to post
Share on other sites

C64 has the more even Halt overhead, so samples with delay loops will sound more accurate. Atari, we have the badlines, then DMA every second cycle on other lines, then practically no DMA for the blanks, not to mention the 9 cycle Refresh on most lines. So, the technique of simply using delay loops will almost never sound good.

...

Actually, it's the reverse. There's more uniform DMA in graphics modes on A8 than on C64. On C64 you get a sudden group of halt cycles whereas you get those only in text modes on A8 and those for 40 byte modes. The latency is less even if you don't use timers on A8-- you can even it out more by putting some delays during non-display regions. And you won't be playing samples many times per line anyway so the probability of hitting DMA halt cycles is equalized in graphics mode on A8.

 

Back in the day, nobody seemed to know how to properly do samples on the Atari, ie use Timers, poll loop on Timers, or just use VCount or HSync waits - all of which can be made to sound practically the same regardless of screen on or off.

...

Berzerk on A5200 sounds pretty good and it's with screen on. I have always been using ANTIC mode F for digitized audio.

Share this post


Link to post
Share on other sites

Not quite. If you don't have sprites, the C-64 only has the badlines for 25 scanlines of the screen (40 cycles lost each).

 

Atari, you have a mix of 9 cycles on most blank lines, 50 cycles on most graphics lines and 81 cycles on the badlines.

 

The result is that delay loops will have a much more variable runtime on the Atari.

Share this post


Link to post
Share on other sites

Not quite. If you don't have sprites, the C-64 only has the badlines for 25 scanlines of the screen (40 cycles lost each).

 

Atari, you have a mix of 9 cycles on most blank lines, 50 cycles on most graphics lines and 81 cycles on the badlines.

 

The result is that delay loops will have a much more variable runtime on the Atari.

 

What affects the audio playback more is the latency. If the next sample to be played is on cycle 24 (and you can do this with almost any sampling rate), you can get a hit of 40 consecutive DMA halt cycles on C64; on A8 you can get a few (much less than 40) and you will get the sample played. Also, note that 40 cycles on C64 is equivalent to 72 consecutive cycles on A8 which never occurs in any graphics mode.

Share this post


Link to post
Share on other sites

Crap.

 

You get 80 cylces lost in a row on a 40-column text badline.

 

I've done this kind of thing on both machines, so I know what I'm on about.

Share this post


Link to post
Share on other sites

Hello guys

 

Didn't the Closer to Home guy (Tom, I forgot his last name) do something with samples?

 

Tom Hunt.

 

 

He did do some sample players/converters. I remember one that has something to do with the parrot and had a "Picard" sample included.

 

I also have READIT.COM. This is a Sparta-Dos 3.2 tool that plays a text file as speech. Like S.A.M.

 

 

------------------------

READIT.COM

© 1994 CTH Enterprises

All Rights Reserved

 

by Tom Hunt

 

Use like this-

readit textfile.ext

------------------------

Share this post


Link to post
Share on other sites

Yes, of course. There is a speech version of Ghostbusters, and Kenedy Approach also used the very same synthesis program, "Electronic Speech Systems of Berkeley, Inc." was it labeled. Both the same, nice code.

 

The code uses pokey timers to play tightly packed samples (or sample collections) from RAM, using the VOLONLY bit of the pokey registers. Part of the trick was that for vowels, the sample waveform was only encoded one half, then flipped over and played backwards (thus, assuming that the waveform was symmetric). The frequency could be altered, forming the pronounciation curve, some kind of limited frequency modulation.

 

For consonants, the trick was that the period of the waveform was altered quickly, i.e. it repeated parts of the same waveform, but with slightly different periods, to create assymetric and non-periodic sounds required for the non-harmonics.

 

It was a nice technology using only very minimal RAM, and a very short, interrupt driven logic to create the sounds. The technology wasn't phonem based, only half-way phonem based in the sense that the phonems for all the required words were recorded, but not freely combined.

 

That is, if you hear "Airfrance eight-seven-zero" in Kennedy Approach, then each of the phonems were recorded individually (i.e. "seven = s eh1 v eh2 n" used six phonems, not five, it did not re-use the "eh" twice) and then replayed. Probably that allowed more natural sound since the sound of a phonem depends also on the position within the word.

 

That is, the system was not a fully synthetic voice as in SAM, but a smart combination of minimal samples that were replayed at game time.

 

Greetings,

Thomas

Share this post


Link to post
Share on other sites

Thomas... thanks for the explanation...

 

but if you know the decoder... what do you think? mainframe/pc was doing the encoding? i doubt they used 6502 based machines to do the encoding?

Share this post


Link to post
Share on other sites

Thomas... thanks for the explanation...

 

but if you know the decoder... what do you think? mainframe/pc was doing the encoding? i doubt they used 6502 based machines to do the encoding?

It isn't actually much "encoding" because waveforms were more or less represented as they are, except that only very minimal samples were used from which words are build; the tricky part might have been to find a minimal representation of the phonems required. While I can only speculate, I highly doubt that a 6502 was sufficient for that. Remember, you first have to record the audio and then process this raw data. 64K is hardly ever enough for that, and you would need a bit more "horsepower" either.

 

So long,

Thomas

Share this post


Link to post
Share on other sites

The Superior Software Speech! thing on the beeb is 7.5k and a full text to speech synth. It's a bit less "human" than the Berkeley one but not bad for the size and flexibility.

 

Pete

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...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...