Jump to content


Photo
- - - - -

Speakjet - A PIC ready sound chip?


  • Please log in to reply
345 replies to this topic

#1 herr_prof

herr_prof

    MIDIbox Newbie

  • Members
  • Pip
  • 8 posts
  • LocationJersey City Nj

Posted 11 June 2004 - 04:46

Hi,

I am new to this level or tomfoolery and came across this:

http://www.speakjet.com/

A stamp controllable voice synth? It can also do synth tones.. check out the demos

Peter

#2 TK.

TK.

    MIDIbox Guru

  • Administrators
  • 12,450 posts
  • LocationGermany

Posted 11 June 2004 - 13:26

Really an interesting one!

Best Regards, Thorsten.


#3 DrBunsen

DrBunsen

    MIDIbox Guru

  • Members
  • PipPipPipPip
  • 977 posts

Posted 04 July 2004 - 21:28

Very nice.  I wonder if it is pitchable?

#4 moebius

moebius

    MIDIbox Guru

  • Banned
  • PipPipPipPip
  • 1,199 posts
  • LocationOulu - FINLAND

Posted 05 July 2004 - 01:20

It's pitchable. I guess.. maybe.. if you know how.. :o

Through the selection of these MSA components and in
combination with the control of the pitch, rate, bend,
and volume parameters, the user has the ability to
produce unlimited phrases and sound effects, with
thousands of variations, at any time.


As you see, datasheet makes it clear, thought ;)

Bye, Moebius

#5 Captain_Hastings

Captain_Hastings

    MIDIbox Addict

  • Members
  • PipPip
  • 208 posts

Posted 05 January 2005 - 20:02

Has anyone already ordered/played with this IC?

It seems fairly simple, anyone have a guess how difficult it would be to make a MIOS application for this one? Anyone interested in a collaborative effort to design circuit/application?

;)

#6 sheepslinky

sheepslinky

    MIDIbox Newbie

  • Members
  • Pip
  • 17 posts
  • LocationLos Angeles, CA

Posted 11 January 2005 - 10:47

Yes!

I am already at work on this. I have been working with the speakjet for a while now and have unlocked pretty much everything it can do (which is a lot)... On the lowest level, it is a five voice synth with noise, LFO, and a few filters. I sounds great when you access the registers themselves and play the synths. Very funky.

Anyway... I have assembled some speakjet resources at http://music.calarts.../resources.html . I have a dictionary of raw decimal instructions, some max patches that interact with it and a schematic for a new board to place inside a modular system, like a midibox.

I have only just gotten to thinking about writing an application to control the speakjet. It receives UART serial (8 bits 1 stop bit, no parity). The baud rate is 2400 to 19,300.

My issue is that the UART TX and RX pins are tied up by MIDI in the midibox. Using those pins would be the easiest for coding purposes. I need a plan to send simple serial messages from the midibox at the speakjet's baud-rate. My ideas so far:

1. Use J10 (which is used to talk to the SID). Use pin RC4 to send the information. It would have to be coded the "old fashioned way", by calculating the baud rate and using a loop and delay to synchronize the signal (as you would on older pics without USART).

2. Again, use J10, but set up the  pin RC4 as an SPI transmitter. Maxim makes a chip that converts SPI to UART at any baud rate (using a crystal). That hardware could be placed on the speakjet board.

3. Use another PIC to make a MIDI to speakjet application. A PIC 16fxx with UART comes to mind. It would receive the MIDI (thru in this case from the core) and parse the data into speakjet commands. The code in this case wouldn't be too rough.

I have only just started putting together my midibox system. So, I am new to the PIC 18f452 (although I am not new to electronic instrument design), so someone please tell me what makes the most sense using the chip we already have. At this point, I want to reserve as many inputs for sensors as I can, which is why I wonder which pins I should use (I am running short). Also, I am frustrated that I can't just simply write instructions to a UART register for this...

I would love some input. I also need to think about it a little longer.

Lorin



#7 TK.

TK.

    MIDIbox Guru

  • Administrators
  • 12,450 posts
  • LocationGermany

Posted 11 January 2005 - 23:01

Hi Lorin,

wow, I didn't know about the SPI->UART converter, where can I find it on the maxim page? Maybe this is the easiest way (and it could be a generic solution for additional MIDI ports to MIOS).

1) possibly loads the CPU too much and affects the realtime capabilities. When sending a UART frame you've to disable interrupts so that stable timings are guaranteed. With 19200 baud and 10 bit (start bit/8 bit data/stop bit) this means that a single byte transfer takes 521 uS.
The problem: if a MIDI byte is received at this time, it could happen that it get lost (MIDI bytes are transmitted with 31250 baud). The PIC has a double buffered USART, so maximum time is about 640 uS that you have to ensure that both bytes will be queued into the MIDI In FIFO before an overrun)

2) as mentioned above, this is possibly the best solution.

3) also possible, but it's maybe better to access the second PIC via IIC instead of MIDI for better timings. Or via SPI

If 2) provides no FIFO, then you could implement this in 3) in order to increase the performance (the application can send a lot of data to the SpeakJet without waiting for an "unbusy" on the serial line). But 3) also means more programming effort and more support effort (if you want to publish your project)

Best Regards, Thorsten.



#8 sheepslinky

sheepslinky

    MIDIbox Newbie

  • Members
  • Pip
  • 17 posts
  • LocationLos Angeles, CA

Posted 12 January 2005 - 00:07

The MAX3100 is the SPI -- UART chip. The datasheet says it is QSOP, but they also have a PDIP-16. It is for sale on digikey for about $5 or so.
http://www.maxim-ic..../qv_pk/1731/ln/

I would like to use midibox hardware to begin. So, using the MAX3100 makes the most sense.

I mentioned a MIDI interface to the speakjet because there is a growing community of speakjet fans that wish to use it directly with sequencers, keyboards and computers. In a midibox system, though, SPI makes the most sense to me too. That's where I will start.

Conveiently SPI is available too. I would like to keep I2C lines open for possible use of external memory.

I'll keep people posted.

Thanks for your input.  

Lorin

#9 shed

shed

    MIDIbox Newbie

  • Members
  • Pip
  • 76 posts

Posted 12 January 2005 - 01:39

Looks realy interesting, i will watch out for good things

#10 Captain_Hastings

Captain_Hastings

    MIDIbox Addict

  • Members
  • PipPip
  • 208 posts

Posted 12 January 2005 - 12:28

Hi Lorin,

That is way cool! Please report back with your findings with the MAX3100 (damn... if only i'd known when i ordered samples from them last week).
;)

I hope to have the IC in the mail soon, and first i'm going to experiment with the 'SpeakJet SuperCarrier' from speechchips.com... There is a scheme of that circuit in this doc (scroll down on page):
http://www.speechchi...m.asp?itemid=18
(uses a Maxim DS275 for serial to CMOS level serial conversion)

Or i might buy an old Atari on ebay...
http://www.atariage....products_id=295

;D

#11 sheepslinky

sheepslinky

    MIDIbox Newbie

  • Members
  • Pip
  • 17 posts
  • LocationLos Angeles, CA

Posted 14 January 2005 - 05:51

The development boards are great ways to go. I have one from the Mark III robot store http://www.junun.org/MarkIII/ -- They have really fair prices on stuff. It works great with a computer serial port. (mine's a tigerbotics brand board).

The schematic posted on my site is very similar to the development boards out there. I chose to use some transistors to switch the signal levels, rather than the maxds275 chip. Both work. There is a speakjet group on http://groups.yahoo....group/speakjet/ . There, you will find more discussion about such things...

Last I checked, speakjets were on sale at http://www.speechchips.com/ $10 off!!! I am waiting for my order before I start breadboarding new designs.

The Atari thing is pretty different, no?

Anyway, they make great sound, and they do handle pitch, speed and intonation really well. It's tricky to program them to be real understandable, but you get the hang of it after a while (you need to think about speed, pitch, bend, sluring.. etc to get a really good word). I think it's fun, and I've performed live with them here in LA, and people love it.

#12 sheepslinky

sheepslinky

    MIDIbox Newbie

  • Members
  • Pip
  • 17 posts
  • LocationLos Angeles, CA

Posted 14 January 2005 - 06:08

Hey all,

I'm going to start experimenting with MIOS control of the speakjet soon. If anybody else has such intentions please let me know -- it's always better to have more people and more information. Also, I get busy, so I don't know how fast I'll be.

I'll start writing some code soon. Luckily, I have a collegue who is much more familiar with PIC18f452 and SPI than I am (that'll help). I'm going to try the maxim chip and SPI first. If anyone else is trying this or any other method, lets keep communicating!

Lorin
(http://shoko.calarts.edu/~lorinp/)


#13 Captain_Hastings

Captain_Hastings

    MIDIbox Addict

  • Members
  • PipPip
  • 208 posts

Posted 14 January 2005 - 17:41

I'm certainly interested in experimenting... however, my MIOS/assembler skills are limited. My biggest achivement so far was getting digital pots to work with SPI and that took me quite a while...  ;)

Let me know if you want specific help on something... (circuit testing/design/coding)

The Atari thing is pretty different, no?

I don't know what it can do... it's probably basic but it looks intriguing... and it is always übercool to have an old woodcabinet 2600 in your studio  ;D

#14 sheepslinky

sheepslinky

    MIDIbox Newbie

  • Members
  • Pip
  • 17 posts
  • LocationLos Angeles, CA

Posted 15 January 2005 - 02:50

Thanks for stepping up! I'll post here when I get the ball rolling. Honestly, I don't know what to expect until I start doing it. Don't let that stop you from getting started, though! If you've done SPI with encoders that'll be similar.

Regarding the Atari:

So far as I know the atari speakjet simply makes speech possible for new atari games (yes there are new atari releases). It doesn't act as a synth -- just an add on for atari game players / designers. I need to find someone who has one... There's a "hacker's" club here in LA, and many people involved are game gurus and addicts -- I'll try and find someone who owns one. Could be educational :)

Lorin


#15 DrBunsen

DrBunsen

    MIDIbox Guru

  • Members
  • PipPipPipPip
  • 977 posts

Posted 18 January 2005 - 19:13

Okay, this is just one dreamer's suggestion...

Have you seen postings about the PS/2 keyboard/mouse interface for MIOS?  Wouldn't it be cool to be able to connect a QWERTY keyboard direct to the Speakjet module, display and edit text on an LCD, then hit "Speak".  Using special characters or modifier keys (shift, ctrl, etc) for different phonemes.

#16 herr_prof

herr_prof

    MIDIbox Newbie

  • Members
  • Pip
  • 8 posts
  • LocationJersey City Nj

Posted 19 January 2005 - 08:19

T

Regarding the Atari:

So far as I know the atari speakjet simply makes speech possible for new atari games (yes there are new atari releases). It doesn't act as a synth -- just an add on for atari game players / designers. I need to find someone who has one... There's a "hacker's" club here in LA, and many people involved are game gurus and addicts -- I'll try and find someone who owns one. Could be educational :)


ive talked to the dev and he said that his 2600 driver allows access to all the features of the speakjet, so it should be good to go from there...

ps: this dev is already working on a atari seqeuncer that uses the atarivox to save seunces and may support speakjet sound generation

http://qotile.net/loopcart.html

peter


#17 Captain_Hastings

Captain_Hastings

    MIDIbox Addict

  • Members
  • PipPip
  • 208 posts

Posted 09 March 2005 - 15:02

Okay... i got hold of one of them MAX3100 SPI to UART things. I'll try to breadboard this up in the next days/weeks...

Maybe someone can help me out and check if this is the correct way to hook it up to the Core module?

Posted Image

Datasheets:
http://www.magnevati...tusermanual.pdf
http://pdfserv.maxim.../ds/MAX3100.pdf

Any help welcome!

#18 sheepslinky

sheepslinky

    MIDIbox Newbie

  • Members
  • Pip
  • 17 posts
  • LocationLos Angeles, CA

Posted 09 March 2005 - 18:09

Have you written some code to talk to the speakjet?

I've started writing some assembler for 18f452 -- it is a mios-less prototype at the moment and uses serial to talk to the speakjet. 
However, I figure that I can work the bugs out, condense it and switch the output to SPI once I'm happy with its performance. Though, it seems that you may already be there. If you have some code, lets share...

Let me know how the MAX3100 works -- mine are collecting dust for the moment.

Lorin



#19 Captain_Hastings

Captain_Hastings

    MIDIbox Addict

  • Members
  • PipPip
  • 208 posts

Posted 09 March 2005 - 19:14

Hi Lorin,

I've just started... trying to figure out an function set (based on TK's AOUT/SPI example) to write to the registers of the MAX3100.
Haven't written any other code or verified anything yet, but i will surely let you know my progress!

#20 Captain_Hastings

Captain_Hastings

    MIDIbox Addict

  • Members
  • PipPip
  • 208 posts

Posted 10 March 2005 - 12:19

Small update:

Posted Image

Now what i am concerned about is the following:

The SpeakJet does not accept actual RS-232A signal levels, and will be damaged if attempted to input these levels. In order to read data from a RS-232A type of serial data stream, a level shifter/line receiver must be used. This can be as simple as a small transistor or more robust device like the MAX232A from Maxim.
The SpeakJet serial configuration is fixed at: 8 bits, No- Parity, and 1 stop bit (8, N, 1) and non-inverted, (RS-232 is inverted logic and higher voltages).


But i am assuming that it is OK to connect the TX pin of the MAX3100 directly to the RCX Serial Input pin of the SpeakJet?




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users