Jump to content
IGNORED

Atari Speech Synth


Richard H.

Recommended Posts

Just finished the final version of the AtariVox serial interface (see picture)

 

The board powers the AtariVox via a 6V-12V DC PSU

 

Allows a computer's serial port to communicate with the AtariVox for constructing words / sounds

 

Enables backup, writing or verifying of the onboard 32K EEPROM memory

 

(AV memory files can be edited using a standard HEX editor)

 

 

I'm sending one to Albert for testing, after which they'll be available from the Atariage store

 

The circuit uses no expensive components, so should be pretty low cost

Any update on this? I should be able to write something for OS X users to use this.

 

Like the new AtariVox design too. Old one is functional(love playing Man Goes Down - RUN RUN RUN) but if I had kids I'd be concerned with the exposed circuitry.

Link to comment
Share on other sites

Any update on this? I should be able to write something for OS X users to use this.

 

I've got a few PCB's of the new PC interface coming next week, I will send you one of them.

 

(PM me your address)

 

 

It's the least I can do if you're going to write an OS X driver :)

 

 

Like the new AtariVox design too

 

Thanks ! - those Stelladaptor cases are pretty smart

Link to comment
Share on other sites

  • 1 month later...
.......I've re-designed the AtariVox PCB to fit into a different case (see pics). I was looking for ages and ages for a suitable case, found one, and it turned out to be the EXACT same enclosure as the Stelladaptor  :roll:

 

Anyway, the board fits snugly into it, and now plugs directly into the joystick port on a 2600. It won't fit the 7800 due to crap angle and case obstructions of the port, (a work-a-round is to use 2 9D gender changers).

 

I've made the volume control accessible through the jack socket hole, as these cases are REAL pigs to get apart once the 2 halves are snapped together  :x

 

I'm currently re-doing the AtariVox PC interface PCB to fit a case from the same range, so they'll look pretty nice together.

 

 

BTW if anyone want's the old version (which fits a case with speaker) I know Albert has a few built units and PCB's left.

826773[/snapback]

 

Is this version (stella adaptor case) available yet?

 

-Tim :)

Link to comment
Share on other sites

Is this version (stella adaptor case) available yet?

 

Not quite yet.

 

I was all set to send the final PCB design to Albert, when I noticed the volume control was anti-clockwise increase instead of clockwise increase :roll:

 

So I've re-done the layout and had 5 PCB's made to confirm (which'll be back early next week).

 

I'll be keeping one of them and sending the other 4 to Albert, so you should be able to get one in this version.

 

As a stroke of good luck I'd socketted all the chips on the first batch of boards, so it'll be an easy job for Albert to transfer them to the Stella case version PCB.

Link to comment
Share on other sites

  • 4 weeks later...
I've just put together this compilation of AtariVox speech / sounds. It'll give you a better idea of it's flexibility -

 

www.vectrex.biz/AtariVox_sounds.mp3

863660[/snapback]

 

These sounds are just amazing! I wonder if Paul Slocum might put together a speech sound synth program for the AtariVox!?

 

Rob Mitchell, Atlanta, GA

Link to comment
Share on other sites

It's on my todo list as part of the Loopcart, but unfortunately my todo list is very long at the moment. I am still working on Loopcart whenever I have a chance (made a little progress in April). It now can display the loop data in hex so you can type it into the sequencer kit, and it has the start of a new "light show mode". Should have some very basic Atarivox support soon.

Link to comment
Share on other sites

I've been working on a couple of sound progs myself, nothing fancy though

 

VoxPlay1 - uses the pre-set sounds

 

VoxPlay2 - uses the 5 channel synth (not finished yet)

 

If you put some offset values into the other channels, it produces a quite nice doppler like effect.

 

 

Both are for use with the AtariVox and PC interface, and use serial port com1

VoxPlay1_2.zip

Link to comment
Share on other sites

  • 2 weeks later...

Here's another MP3 of me playing about with the AtariVox's 5 channel synth (singing bit in the middle is pre-sets) -

 

 

www.vectrex.biz/AtariVox_sounds2.mp3

 

 

If you put some offset values into the other channels, it produces a quite nice doppler like effect.

 

I think I mean tremolo :? (I'm new to all this music stuff)

Link to comment
Share on other sites

Here's another MP3 of me playing about with the AtariVox's 5 channel synth (singing bit in the middle is pre-sets) -

 

 

 

I think I mean tremolo :?  (I'm new to all this music stuff)

870502[/snapback]

 

Tremelo is a warbling pitch effect, and doepller waves are caused by a pitch change by collapsing waveforms from the speed and direction of the sound source moving towards you or away from you. I wouldnt feel too bad cause most music manufactuers confuse the concepts as well. I guess it depends wether you are describing the sound scientifically versus aestethically...... Although tremelo seems a good wave to describe the sound of a doepler shift, just very very fast tremalation

 

:roll: (new words rule!)

Edited by herr professor
Link to comment
Share on other sites

Tremelo is a warbling pitch effect, and doepller waves are caused by a pitch change by collapsing waveforms from the speed and direction of the sound source moving towards you or away from you. I wouldnt feel too bad cause most music manufactuers confuse the concepts as well. I guess it depends wether you are describing the sound scientifically versus aestethically...... Although tremelo seems a good wave to describe the sound of a doepler shift, just very very fast tremalation

 

:roll: (new words rule!)

870758[/snapback]

 

I thought Tremelo is cyclic variation in amplitude. Vibrato is cyclic variation in pitch. No?

 

Cool sounds there Richard. I'm sure I can hear some ring-modulation in that (multiplication of 2 waveforms). Didn't know the SpeakJet did that! I really like the noise at the end - great for thruster sounds.

Link to comment
Share on other sites

Tremelo is a warbling pitch effect, and doepller waves are caused by a pitch c

 

:roll: (new words rule!)

870758[/snapback]

 

I thought Tremelo is cyclic variation in amplitude. Vibrato is cyclic variation in pitch. No?

 

870918[/snapback]

 

 

http://en.wikipedia.org/wiki/Vibrato

 

Yes.

 

The two terms are horribly mismatched every though, and it IS confusing. I think the problem comes from the fact that in musical terms they are almost interchangeable, but scientifically they are diffrent

 

the sound off the chip are great though

Link to comment
Share on other sites

I upgraded and now they're working fine. I hate it when ya get forced to upgrade so you can keep doing what you've always been able to do. :) It also might have been on my end since the files did seem a little corrupted.

 

These sound samples are really stirring! So much coming out of a little teeny synth chip. So ALL of these sounds and capabilties are avilable for the Atari to control?

 

Astonishing.

Link to comment
Share on other sites

thanks for those MP3 files.

 

No problem ! - I used a Griffin iMic to get a nice clean sample (my PC's sound card was feeding in some hum / noise)

 

 

I'm planning on using it with my 8-bit computer.

 

Are you coding for it ?

 

 

I've been going upgrade / mod crazy on my 130XE.

 

Is that the model with the Votrax ?

Link to comment
Share on other sites

Are you coding for it ?

 

I'm getting back into coding on the 8-bit. I'm ready to try my 1st program done in 100% assembly, but I still haven't got a dev environment set up on my PC yet, and I really don't want to code directly on the Atari. But I do have a dedicated PC that the Atari is hooked to via SIO2PC, so I can code on the PC and test on the real machine at the same time.

 

I've been going upgrade / mod crazy on my 130XE.

 

 

Is that the model with the Votrax ?

 

I'm not familiar with the Votrax. But the 130XE was the last line in the 8-bit series. Looks like a baby 1040ST. Can't wait to get a monitor cable so I can test my 1040STf. Will look great sitting next to the 130XE.

 

P.S.

I have a question for you. How did you create the sounds (data for the AtariVox)? Also, what did you use to play them back (2600, 8-bit computer).

 

Sorry if I've missed anything obvious, but I've been off the forum for about 5 weeks, and there is a TON of stuff to catch up with in a day or two.

 

Stephen Anderson

Link to comment
Share on other sites

How did you create the sounds (data for the AtariVox)?

 

With the SpeakJet utility - 'PhraseAlator', and my own software VoxPlay 1+2

 

All run on a PC connected to the AtariVox via my serial interface.

881637[/snapback]

 

I just got the AtariVox in today. It didn't come with a cable - I am assuming a standard passthrough DB9 connector is required (I have a nice shielded one).

 

Also, where can I get the info on your PC cable and software? I did a quick browse of your website at work today and I didn't see anything.

 

Thanks for the info.

 

BTW - the build quality on this thing is excellent. Very high quality PCB and components. I can't wait to get this thing speaking!

 

Stephen Anderson

Edited by Stephen
Link to comment
Share on other sites

Take a look at Alex's driver notes, it should give you enough info to code a driver for another system -

757794[/snapback]

 

If I might make a few suggestions, I've done some flash file system stuff and I really don't think the proposed file system is too good. It requires a lot of searching for an application to find its data, and there's no defined way for applications to avoid picking identical file names.I know it was a preliminary idea, but it would be good to nail something down before people code stuff that would be incompatible with something better.

 

My personal thinking would be that file system usage should be standardized to the point that someone could use an Atarivox Manager cartridge to list and delete files, as well as to try to repair a corrupted file system. Toward this end, I would offer the following proposals:

 

-1- All new applications after some cutoff point, and all applications which save data in the file system (instead of the application-specific area) would be expected to have the first byte of their private space be a pointer to their first file [0 if none], and have that be followed by a null-terminated application name of up to twelve characters in length. All such applications would have private storage addresses which are higher than any storage addresses for applications not meeting these criteria.

 

-2- Each allocated file block would start with the following information:

  • ID of owning application (1 byte; application base address/64)
  • Address of first block of next file (1 byte; 128+[address-$4000]/128, or 0 if none)
  • File index (1 byte; defined by owning application)
  • Address of next block within file
  • Block index within file (0=first block; 1=second; etc.)
  • For first block of file, a null-terminated filename up to 12 characters, or a 0 byte if none.

Unallocated blocks of memory would be kept in a linked list; the system would maintain a pointer to the first such block. An application wishing to create a file would retrieve this pointer, check to ensure the block was actually free, retrieve the "next" pointer, rewrite the "first free block" pointer to equal the next pointer, and then write its block of data.

 

Assuming a routine called "STARTREAD" is defined which will start reading at byte Y of block A, and a routine called "READBYTE" is defined which will read the next byte from the I2C, a program could check for the existence of some number of valid free blocks by doing something like:

 lda #5; [number of blocks to look for]
 sta ctr
 LDA #SYSTEM_FREEBLOCK_PAGE
 LDY #SYSTEM_FREEBLOCK_OFS
 JSR STARTREAD
 JMP firstread
lp:
 LDY #0
 JSR STARTREAD
 JSR READBYTE
 BNE NOGOOD ; This block is already claimed by someone
firstread:
 JSR READBYTE
 BEQ NOGOOD  ; No more free blocks
 DEC ctr
 BNE lp
; We have at least 5 free pages

Doing this sort of test before the application starts would avoid any risk of frustration from a user being unable to save his work.

 

In the event that a test like the above failed, I would suggest that an application should suggest that a user run the ATARIVOX MANAGER cartridge to scan and repair the file system. Although the file system should be fairly robust, things can go wrong. An application could try to slog things out by searching manually for free blocks, but recommending use of the manager cartridge would seem like a good idea.

 

BTW, I would add another couple notes regarding cartridge usage: declare that addresses $3C00-$3FFF may be used as scratch pad by any application (including the file manager) but applications should not expect anything to stay there between uses. Addresses $3800-$3BFF would be usable by any application other than the file manager; applications could use this to temporarily store files if the file system got corrupted. Any application actually using this space should store its ID in the first byte.

 

Any of those concepts seem interesting?

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