Speakjet - A PIC ready sound chip?
#1
Posted 11 June 2004 - 04:46
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
Posted 11 June 2004 - 13:26
Best Regards, Thorsten.
#3
Posted 04 July 2004 - 21:28
#4
Posted 05 July 2004 - 01:20
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
Posted 05 January 2005 - 20:02
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
Posted 11 January 2005 - 10:47
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
Posted 11 January 2005 - 23:01
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
Posted 12 January 2005 - 00:07
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
Posted 12 January 2005 - 01:39
#10
Posted 12 January 2005 - 12:28
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
Posted 14 January 2005 - 05:51
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
Posted 14 January 2005 - 06:08
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
Posted 14 January 2005 - 17:41
Let me know if you want specific help on something... (circuit testing/design/coding)
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 ;DThe Atari thing is pretty different, no?
#14
Posted 15 January 2005 - 02:50
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
Posted 18 January 2005 - 19:13
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
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
Posted 09 March 2005 - 15:02
Maybe someone can help me out and check if this is the correct way to hook it up to the Core module?

Datasheets:
http://www.magnevati...tusermanual.pdf
http://pdfserv.maxim.../ds/MAX3100.pdf
Any help welcome!
#18
Posted 09 March 2005 - 18:09
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
Posted 09 March 2005 - 19:14
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
Posted 10 March 2005 - 12:19

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



