Jump to content

Speakjet - A PIC ready sound chip?


herr_prof
 Share

Recommended Posts

I am still a bit confused - when I load the first allophone into the phrase storage eeprom at address 16, I have to send '1' and then '6', but when I want to put the allophone 171 into that space, I have to send 'A' and then 'B'. This seems odd to me. I would think it would be decimal or hex.

So it's decimal for addressing, and hex for data. It is strange!

Link to comment
Share on other sites

  • Replies 345
  • Created
  • Last Reply

Top Posters In This Topic

hey, thanks that you like the example...

For my departure delayed, I get another chance to answer ;)

So it's decimal for addressing, and hex for data. It is strange!

==>

In general, all MSP commands have to be sent as hex (decimal numbers, 8bit max) and all SCP commands have to be sent in hex (single ASCII chars, so 1 would be '1' or 0x31).

both values are hex!

it's just that MSA accepts numbers (so if you want to play the allophone 171 just send the number 171 (0xAB) - and if you want to send an SCP value, you have to send as single ASCII chars ('1', '0' => 0x31, 0x30)

I also added a control overview to the wiki, where the separation between MSA and SCP gets clearer (something like an explained definition listing)...

I am now two weeks in Hungary following the traces of Baron Wolfgang von Kempelen, who invented one of the first speech-machines around 1773.

I'll release the code afterwards, that will (hopefully) be enhanced enough to support all main tasks of the chip. I tried to focus on clean code separation, so anyone is free to use the Midi-Receive Controls I already implemented or just access the huge IIC_SPEAKJET_FunctionLibrary()  8)

Cheers,

Michael

btw: I would need help from someone knowing ASM regarding the C-Wrapper and the Dec2BCD Help-Function; I think the problem is in the wrapper, where the ASM-function has to be called with the lower byte in WREG and the higher byte in MIOS_PARAMETER1, but I'm not so sure, the wrapper does it correct?

If this is fixed, the app would support taking 14-bit values to enable seamless frequency controlling.

Link to comment
Share on other sites

I'm on that BCD thing for you before tomorrow night buddy. Sorry I started on it and kinda got distracted with large arrays and 4620's RAM heheh. I've had your post open in IE ever since you posted it though ::) I'm nuts...

Useless trivia: When your post count is 1337, it says "Posts: leet" on the sidebar of the forum hehehehe

Link to comment
Share on other sites

Well, good news and bad news...

I wrote some nice routines for phrase storage and they were working great...

but

then all of a sudden I get no audio output from the speakjet!! I wonder if it is because I was running the audio out straight into the audio input of my korg microkorg? Is it possible that I blew the SJ because of this? I wasn't running it loud or anything. Now I can't get anything out of it - from the midibox, or from the serial port. I also tried hooking it up in demo mode, but nothing.

The only other thing I can think of is that I was testing a loop that cleared the first 16 bytes of the eeprom - the phrase address bytes. Perhaps I inadvertantly messed up address 237,238,239 - the chip control bytes? Could this cause it to stop responding? I've tried sending some values to those bytes, but I'm not positive what to put there. Either way, I think that demo mode would still work though.

oh well - I guess I'll play with it some more and take a break...

Justin

Link to comment
Share on other sites

Hi Justin,

bit 3 of 238 / EEPROM is called "AutoSilence". Don't know what that means, but it sounds suspicious...

you can find the details in the manual, p.11

Don't forget that you have to send these values also as single separate chars, but as far as I see, sending '0' (0x30) should do no harm for address 238 (but pls. check again before trying esp for TTL/RC section of bits 5 and 4... not sure about that, although I think it's just the RC input of E6/E7!)

Cheers, Michael

Link to comment
Share on other sites

  • 4 weeks later...

Hi everybody,

just wanted to drop in a note, that I'm still here and that I've suspended my source-code release a bit. I currently want to finish my sensorizer first and the speakjet application is still a bit buggy – but because I want to connect the speakjet to the sensorizer, it is sure, that I'm resuming to work on this ...I think 2 months will be realistic, if anyone needs sources desperately, PM me!

Cheers,

Michael

@Justin: is your SJ working again?

Link to comment
Share on other sites

  • 3 weeks later...

:o A M A Z I N G :o   I´m obsessed  ;D

This is this what I´m searching for my new liveact, but I cant find an German distributor, or all of them its sold out  :'(

So there my Question :

Want anyone trade for an Chip ? I have many Module-PCBs: AIN, CORE (V2), SID (V2), JDM....they´re 2nd Choice, some drills a little bit beside the holes.....but they will work !!

Please letme know if anyone can help me out :)

thnx

MTE

Link to comment
Share on other sites

You can find the mp3 along with some more informations on how this was recorded here:

http://shoko.calarts.edu/~lorinp/insanium.html

(I think it's important to know how many of these chips were used and that there are additional vocals on the track)...

moreover, there's a link to a youtube video!

@MTE: there are some sources for the chip mentioned in this thread earlier. have you checked them out?

I think stryd also can get you some. Remember his prices are AUS$ (hopefully right, stryd? ;D)

Link to comment
Share on other sites

Yeh I can get the chip delivered to me for AUD$58, and I'll pass it on to anyone anywhere in the world if they can't find somewhere locally...

The chip is a little more expensive from my source than the average euro/usa prices, but the total was cheaper for me because of shipping. In most cases, if you include shipping, I think you'd probably be able to find a cheaper source elsewhere in Europe (like ordering from the UK), but if not, I am happy to pass the chips on to anyone that needs them.

Link to comment
Share on other sites

Hey everyone, check out http://www.soundgin.com . They designed the speakjet, but they are selling this one through savage innovations. The computer software screenshots look a lot better than the speakjet software. At a quick glance, it looks like the synth options are better. Also, I think you could bypass the 16F88, and control it straight from the midibox. My source says it will cost the same as the speakjet, $25, and will be available 31 August. I wish they had a more detailed manual for it, hopefully one will be available soon. I also wonder about the baud rate, it only does 2400 and 9600. Would this be fast enough?

Justin

Link to comment
Share on other sites

An interesting concept for sure. Especially that schematic page for connecting it to a PC and using that control software....Cheap hardware monosynths for the masses eh ;)

I don't know a lot about speech synthesisers, do you guys think that it compares to the speakjet, as far as speech is concerned?

Considering that it's a PIC18F not entirely unlike the core module's which costs about $10, you're only paying about $15 a chip for the development, I think it's a pretty reasonable price for what you get (well, open source would be nice ;) ), but still a shame that we would be paying for development of the PC control software that we'd never use....

Although, I would love to see a few of these chained up to a crappy old PC. A ye-olde Pentium MMX on a small form factor motherboard, running vanilla Win98SE or win2k with this software, a generous handful of these chips, and a el-cheapo old 14" touchscreen, could all go in an average mixer-sized case and make for a pretty kickass hardware synth. Normally I would never put the words "PC" "synth" and "kickass" in the same sentence, because PC's (and macs, I'm not biased) are shit for making music because they crash.... But that said, vanilla windoze with no other apps (but patched up of course) is pretty darn stable.... The app is a pretty straightforward exe to send data via a com port

I'm looking at that architecture and I'm thinking 'drum synth'.... could rock, it'll be interesting to see if the envelopes are fast enough.

I wanna know what's up with those mystery pins :) Q? Sounding? Why an input for OSC1 and an output for OSC2? Is that the waveform or the frequency or what?

And the mention of wavetables in the tutorial too, are they going to include it later or not?  Hmmm

It being firmware on a PIC, they might do upgrades or mods too... Who knows...

It's certainly got me thinking ;)

Link to comment
Share on other sites

Edit: is your SJ working again, Justin?

Well, I went ahead and got another one, and got it running fine. I made some changes to my phrase storage routines, and then ran my program again, and crashed the new chip, same behaviour as before - no output at all. I made sure that I didn't go anywhere near those chip control registers, so I know it wasn't that. I tried getting your debugging sim running with the help of Stryd_one's instructions, but when I try to step into it, it doesn't work. I can't remember the exact error, I'm at work right now. The tech guys at magnevation offered to take a look at the chips, so I'm gonna mail them to them. Meanwhile, my wife gave birth to our first child, a baby girl, so I've been too busy to do much....

Justin

Link to comment
Share on other sites

:) congratiulations, too  :)

I tried getting your debugging sim running with the help of Stryd_one's instructions, but when I try to step into it, it doesn't work.

if I can be of any help, don't hesitate to ask!

I just upgraded the sim-files, so that they support a bit more functions, tilted out some bugs and added some headers, so that implementing it is a bit easier.

Although, if your breadboard-circuit is right, I got the feeling that maybe your chips are not fully damaged... I think it's quite difficult to distroy a chip purely by code. Have you tried it by resetting and connecting it only to RS232?

As my sensorizer is done now (have to release it now...), I'll be back working on my SpeakJet-Control program, which is still very buggy until this point, but I'll resume working on it next week and will hopefully be able to release something very soon...

Cheers,

Michael

Link to comment
Share on other sites

Hey thanks for the congrats! - no problem Stryd_one, I couldn't spend much time trying to get it to work. I'll let you guys know what the error is when I can get a little free time. I'm thinking about bringing a laptop to work so that I can work on this stuff during my breaks - I'm not getting any time at home as you can imagine. Michael, I agree that you shouldn't be able to fry the chip with just code. Hopefully the guys at magnevation can reset it back to the default - then I'll have two speakjets. I can make them sing harmonies, or perhaps just detune one a little- might sound cool. I have tried resetting it, and controlling it via the PC, but no luck. It won't even go into demo mode, thats what worries me the most. I look forward to your code - I have some ideas for a user interface - I just need some time...

Justin

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.

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


×
×
  • Create New...