audiocommander Posted August 29, 2006 Report Posted August 29, 2006 Hello speakjetters out there,I'm about to finish the control application; just have to fix the recording buffer...now I'm wondering if I forgot something, that should definitely be part of a first release: Features: - Full MSA and SCP Control! - Trigger Allophones and SoundFX by Notes on CH 1 - Trigger Allophones only by Notes on CH 2 - Trigger SoundFX only by Notes on CH 3 - Change the pitch of currently played Allophones by Notes 0..59 on CH 4 - Play the 5 Oscillators by Notes on CHs 11 to 15 OSC Level is Note Velocity! - Experimental harmonic Multi-OSC playmode by Notes on CH 16: OSC Level is Note Velocity! - Change Pitch by using the 14bit PitchBend-Wheel - Control Bend with CH_AFTERTOUCH - Control Speed by CC (defined) - Control Master Volume by CC (defined) - Send Pauses by CC (defined) - Send Next Slow/High/Low/Fast by CC (defined) - Control OSC-Frquencies and Levels by CC (defined) - Control ENV-Frequency and Type by CC (defined) - Control Distortion (OSC 4 & 5) by CC (defined) - Fire Phrases by PRG-CH 0 to 15 or CC (defined) - Supports System Realtime Messages START, STOP, CONTINUE, RESET - Send PANIC by Foot & AllNotes/SoundsOFF Messages - Record, Preview, Store, Play Phrases with 64 byte buffer most of it already works like a charm... ;D Quote
tatapoum Posted August 29, 2006 Report Posted August 29, 2006 I'm about to finish the control application; just have to fix the recording buffer...now I'm wondering if I forgot something, that should definitely be part of a first release:Wow, that's amazing. I've receive a speakjet from HVW Technologies.I intend to use a little AZERTY keyboard and integrate it in a box. Do you thinkk that is something easily achievable in terms of software ? On the hardware side, I know it's not so complex. I aim to write the sentences to be spelled.Cheers,ludo Quote
stryd_one Posted August 29, 2006 Report Posted August 29, 2006 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?There are sound samples up now, and they're clearly not quite as high quality as the speakjet. I think that for our purposes it's probably better to use the chip as a synthThere's also a datasheet, so: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?Q looks like chip select but I'm not sure on that... It's not explicitly explained but it is mentioned in some timing diagramsSounding goes high when the chip should be producing sound, I assume that's for driving a noise gate/triggering external envelopes/etcThe OSC1 and 2 are for the crystal oscillator... Bummer I hoped that's be oscillator outputs ;)2 days till the release :) Time for a new thread anyone?Anyway on the speakjet front.... I was thinking that a good extension would use a keyboard which would use a combination of keypresses... Like:CTRL+A = "AY"SHIFT+A = "AI"WIN+A = "AH"etc...Maybe footpedals for volume/pitch control?AC would something like that work? Quote
stryd_one Posted August 29, 2006 Report Posted August 29, 2006 Oh yeh.... I know this isn't the eBay thread but seeing as it's kinda related:http://cgi.ebay.com.au/SMALL-BLACK-LAPTOP-STYLE-MATRIX-KEYBOARD-83-KEYS-TOTAL_W0QQitemZ7581459641QQihZ017QQcategoryZ58166QQssPageNameZWDVWQQrdZ1QQcmdZViewItemhttp://cgi.ebay.com.au/SMALL-WHITE-LAPTOP-STYLE-MATRIX-KEYBOARD-64-KEYS-TOTAL_W0QQitemZ7598129593QQihZ017QQcategoryZ58166QQssPageNameZWDVWQQrdZ1QQcmdZViewItem Quote
audiocommander Posted August 29, 2006 Report Posted August 29, 2006 I intend to use a little AZERTY keyboard and integrate it in a box. Do you thinkk that is something easily achievable in terms of software ? On the hardware side, I know it's not so complex. I aim to write the sentences to be spelled. Anyway on the speakjet front.... I was thinking that a good extension would use a keyboard which would use a combination of keypresses... Like:CTRL+A = "AY"SHIFT+A = "AI"WIN+A = "AH"etc...Maybe footpedals for volume/pitch control?AC would something like that work? In general, everything is possible... the main IIC_SPEAKJET_Class is nearly finished, most of the time I'm tweaking the main class only, where the MIDI 2 SJ-Functions are handled.I am now quite satisfied, esp. by the experimental mode to play monotimbral sounds by setting all five OSCs and the ENV to the same freq +/- 1 octave; The ENV-Controls (SIN/SAW/TRI...) sound great; there's just a tiny disharmonic freq that I don't know yet where it's coming from... but this also makes the sound a bit dirtier :)But the MSA-pitch thingy still makes me a bit of a headache:I'm supporting setting the Pitch by Notes. The problem with that is, that you can't set the pitch while playing a stored phrase :(So you either have to pre-program the phrase with the right pitch (LAME! :()or we somehow find a way to trigger allophones in realtime in a convenient way... you know, it's not only the allophones, also the pauses and nextTone higher/lower/faster/slower are quite important to that...so, kind of a SJ-control-control application...It would be great to have a touchpad or a three-dimensional joystick for the vowels in correlation with some other haptic method of consonants and popping noises ???any ideas?ps: maybe I should release the first version now without phrase storing support; For example, if too much MIDI-message are being sent to the SJ, so that the 64-byte input buffer is overflowing, it could happen that some areas of the chip get overwritten... and because tracking the input-buffer seems very complicated to me, because I don't know when a transmitted message has actually been completed and removed from the SJ's input buffer. Normally this doesn't happen (you have to move three or four faders simultaneously quite fast to get input buffer overflows); and if it does, you'll just hear some MSA-soundocodes which do not hurt. But the attempt of storing something without EOT or dunno what else is potentially dangerous to the chip.So I think I'll disable this feature, but leave it in the code and up to tweakers to experiment with that by everyone's own responsibility... Quote
TK. Posted August 29, 2006 Report Posted August 29, 2006 Really great work, AC! Seems that you are one of the first guys who really makes complete applications from scratch :)ps: maybe I should release the first version now without phrase storing support; For example, if too much MIDI-message are being sent to the SJ, so that the 64-byte input buffer is overflowing, it could happen that some areas of the chip get overwritten...and because tracking the input-buffer seems very complicated to me, because I don't know when a transmitted message has actually been completed and removed from the SJ's input buffer. Normally this doesn't happen (you have to move three or four faders simultaneously quite fast to get input buffer overflows); and if it does, you'll just hear some MSA-soundocodes which do not hurt. But the attempt of storing something without EOT or dunno what else is potentially dangerous to the chip.So I think I'll disable this feature, but leave it in the code and up to tweakers to experiment with that by everyone's own responsibility...Could you please try following experiment: the transfer buffer of MBHP_IIC_MIDI has 96 bytes, which means: it can collect more data than Speakjet can process. Assumed that there are handshaking problems (D2/CTX line), a buffer full event could be prevented at the Speakjet side by making the transfer buffer of MBHP_IIC_MIDI smaller. Because in this case, the IIC slave will send retries until the buffer is free again, and this means that the PIC will also wait, so that no data can get lost.Many words, small change: open uart.asm and set UART_TX_BUFFER_SIZE to 0x10 or 0x20 ... what happens?(I never tried this, but currently don't have that much time to do my own experiments. I will be one of the first users of your app! :)Best Regards, Thorsten. Quote
audiocommander Posted October 1, 2006 Report Posted October 1, 2006 just to give a feedback on the last post: I haven't yet tried this suggestion, as this implies that I either have to get MPASM to work properly on my PC or GPASM on the Mac... I tried to recompile the PIC16 Firmware with GPASM some while ago, but that failed for some reason, whatsoever....and a vapor-ware-note ;D:I've promised to release the code in about two months which is now; but I am still not pleased with the current version. If anyone is keen on the current version: PM me and I'll send you the sources!Cheers!Michael Quote
th0mas Posted October 19, 2006 Report Posted October 19, 2006 Got this in the email today: New SoundGin Sound Coprocessor IC Released!Posted by: "Ken" kenlem@maine.rr.com kenprime2001Wed Oct 18, 2006 8:24 pm (PST)The SoundGin picks up where the SpeakJet left off!http://www.speechchips.com/shop/item.asp?itemid=22The SSG01 Sound Coprocessor (Soundgin) is a single chip 6-voiceelectronic music synthesizer sound effects / voice synthesizer chip.It produces complex sound effects, synthesizer style music andEnglish speech with an unlimited vocabulary. Soundgin provides wide-range, high resolution control of pitch (frequency), tone color(harmonic content) and dynamics (volume).For use in manufactured electronics, educational and home projects.The SSG01 (Soundgin) consists of six synthesizer "voices" which canbe used independently or in conjunction with each other to createcomplex sounds. Each voice consists of a Tone Oscillator / WaveGenerator, an Envelope Generator, an Amplitude Modulator andRamping / Target controls. The Tone Oscillator controls the pitch ofthe voice over a wide range. The Oscillator produces one of eightwaveforms at the selected frequency, with the unique harmonic contentof each waveform providing simple control of tone color. The volumedynamics of the oscillator are controlled by an Amplitude Modulatorwhich can control by the Envelope Generator, the Ramping / Targetcontrol or by another oscillator. When triggered , the EnvelopeGenerator creates an amplitude envelope with programmable rates ofincreasing and decreasing volume. In addition to the six voices, twomixers are provided to combine the waveforms outputs of theoscillators.Available in an 18-Pin DIP or SOIC package.2.0 to 5.0 Volts Operation16Khz Sample Output Rate2400 or 9600 Baud Serial Connection6 Independently Controlled VoicesAmplitude ModulationFrequency ModulationRing ModulationHard SyncADSR EnvelopesMusical NotesEnglish PhonemesSound MorphingIn-Chip PresetsObject Class for ooPICNot all the info's available on the website but I bet it's an incremental update to the speakjet Quote
stryd_one Posted October 20, 2006 Report Posted October 20, 2006 I think it's more of a branch than an update... The synthesis side of the soundgin is more advanced and I think it'd make a great synth, but it's speech is nothing on the speakjet's, which in turn has weaker synthesis... I want one of each hehehIt's interesting to see those designers go to a different company, doing something so similar in concept, and yet quite different in implementation... Can't help but wonder what's going on there... It was also very late, so I'll wait until I hear of people receiving them in working order before I grab mine. Call me paranoid but.... ;)Anyway I think the soundgin is a project that could bear a pretty impressive outcome as a synth, but for speech, speakjet retains it's throne. Time to start a new thread maybe... Soundgin - A PIC based synth chip! ... Sounds familiar ;) Quote
carsten_the_dane Posted October 20, 2006 Report Posted October 20, 2006 Though i got my hands full with the MidiBox SID, i would still like to here the sound clips.I cant find it on youtube and the links are dead. Can anyone post them here or somewhere ells. Thanks/Carsten Quote
audiocommander Posted October 20, 2006 Report Posted October 20, 2006 what soundclips do you mean?the speakjet clips? => http://www.midibox.org/dokuwiki/doku.php?id=midibox_speakjetrgds, Michael Quote
carsten_the_dane Posted October 20, 2006 Report Posted October 20, 2006 Thanks. Didnt know the speakjet was in the wiki, never heard about the project till now. Quote
audiocommander Posted November 14, 2006 Report Posted November 14, 2006 http://www.speechchips.com/shop/item.asp?itemid=22The SSG01 Sound Coprocessor (Soundgin) is a single chip 6-voiceelectronic music synthesizer sound effects / voice synthesizer chip.It produces complex sound effects, synthesizer style music andEnglish speech with an unlimited vocabulary. Soundgin provides wide-range, high resolution control of pitch (frequency), tone color(harmonic content) and dynamics (volume).Thanks th0mas for that link...I'm infected by speech synthesis and ordered some speech-Chips. They have just 10$ shipping from US to Germany, that's good :)btw: I resumed working on the SpeakJet Application... I'm currently sorting around some vowels and consonants based on their position in the mouth (did you know that "VV" is labiodental wheras "TH" is interdental ;D ?)......and I wanted to adapt the new buffer size for the PIC16F firmware... But apparently I am too dumb to generate a new hex-file. I'm generating a new makefile based on (unchanged settings) in the makefile.spec, a new hex-file is generated, that is apparently nearly the same as the original one, but as soon as I try to load this hex-file in PBrenner, the app crashes :( With PBrenner NG (newer program version), I get an error "Fehler bei Bereichsprüfung" (Error in Range Check)... Do I have to adapt the linker-script? hmm...any hint is greatly appreciated!Cheers!Michael Quote
mess Posted November 15, 2006 Report Posted November 15, 2006 Hi MichaëlI recompiled (modified) speakjet code some time ago and it did workI did use WinPIC800 with a JDM programmer, maybe it's a problem with PBrennerNG?If you send me the code I will try to burn it here... Quote
audiocommander Posted November 15, 2006 Report Posted November 15, 2006 Hey, Michaël!that's great!! :)...although, I got the feeling that it may be some misconfiguration in my GPASM installation :-\I uploaded the modified files here:http://www.audiocommander.de/downloads/midibox/mbhp_iic_speakjet_v1_1.tgzIt's just that one line 62 in uart.asm: 62: ;; #define UART_TX_BUFFER_SIZE 0x60 63: #define UART_TX_BUFFER_SIZE 0x20Thanx alot – Cheers,Michael Quote
TK. Posted November 15, 2006 Report Posted November 15, 2006 Hi Michael,what is the output of "gpasm --version"?Best Regards, Thorsten. Quote
audiocommander Posted November 15, 2006 Report Posted November 15, 2006 Hi TK :)its gpasm-0.13.3 betaI just checked on sourceforge; the latest is 0.13.4should I upgrade?cheers,MichaelEdit: Michaël has been so kind to compile the project; I discovered some differences to my compiled version; so I know now it has someting to do with my version of GPASM :-\ ...keep you updated! Quote
TK. Posted November 16, 2006 Report Posted November 16, 2006 I'm using 0.13.3 on my Windows PC as well... just tried it on my laptop (Linux, gpasm 0.13.4) and get a different output. Strange! It makes sense to compare the listings, where the hex codes with the appr. assembly instructions are listed, but I currently haven't so much time for such checks... maybe you could try to find the differences.Best Regards, Thorsten. Quote
audiocommander Posted November 17, 2006 Report Posted November 17, 2006 hmm, that's really strange...there's definitely an issue with my GPASM config.I just upgraded to 0.13.4 but it still generates the same hex file as with 0.13.3This is strange because I didn't have had any problems with C-projects. So it seems to be an issue with plain ASM-files only. I'm investigating this further, as soon as I have more time.however, I just burned the hex file from mess and it works like a charm. I noticed no more strange sounds and everything seems to work very robust. The adaption to the input-buffer of the SpeakJet is definetely a good idea!In the meanwhile here is the converted hex-file by mess to be used as firmware for the PIC16 chip:(many thanks for that, Michaël!!! :) ) :020000040000FA :0200000036299F :020008001429B9 :100010008316243098004030990083121A089030DB :100020009800B601B501B701BA01B901BB010800DA :100030000511051685113420342005155530990019 :100040008316981C21288312342034203420342035 :100050003420342034203420342034203420342000 :1000600034200512851508006400BC01BC0B36283D :1000700008003708080037085F3C0800B400360A5B :10008000603A031D603A840035060319080004082D :10009000B600103E84003408831780008313B70A2B :1000A0001E30BE000800B50A3508603A0319B501D4 :1000B0003508103E8400831700088313B703080037 :1000C0003B0808003B081F3C0800B8003A0A203AE9 :1000D000031D203A84003906031D71288B17380848 :1000E00065288B138B1B71280408BA00903E84008E :1000F0003808831780008313BB0A83160C168312FB :100100008B170800B90A3908203A0319B9013908D0 :10011000903E84001E30BD00831700088313BB038C :10012000080064006020031D922808008316981CB4 :1001300097288312990008003E080319A228BE03DD :100140000510A32805143D080319A928BD0385102F :10015000AA288514080083168E140E1483123630D4 :100160009400B720831694018312B2010800203056 :10017000061B0238861B043883169300831208007E :10018000831614088312B000301CFA28141FD328D9 :1001900083168B178B138B1BCA28141EC928831236 :1001A0001413130809291308B100B01AD828ED2830 :1001B0006220FD3E031C1417851A141731086520B0 :1001C000141FED2883168B178B138B1BE428141E2A :1001D000E32883121413130809298C1D0929831697 :1001E00014088312B000301C09298C118B138B1B4F :1001F000F628C6288B17B01A0129B20100300A214F :100200000929301D08298615B20A00300A2109295A :1002100014160800831614180B29831294139300E4 :10022000941F0E2914160800F000030E8301F1003C :100230000408F2008C1E1F298C121A083E20831617 :100240000C1E2E2983120C1E2E2939083A06031D76 :100250002C2983160C122E298220990083127208F1 :100260008400710E8300F00E700E090003308500CB :10027000213086008316E0308500D63086009B0151 :1002800007309C0083128316FF30810083120A0816 :1002900007388A0008201820AB2001309000831610 :1002A00020308C008D01831218121A081816C030E5 :1002B0008B00061064000C1C61290C10EC308F07B9 :1002C0009C208B138B1B61298C1D68298C11C020ED :1002D0008B17831614088312103903196129B7206C :1002E000392003197529532065205A2983160317CD :1002F0008C170C140000000083128D0A03198F0A5A :060300000C0803130800C5 :02400E004E3F23 :00000001FF Cheers!Michael Quote
TK. Posted November 18, 2006 Report Posted November 18, 2006 Alright, great! :)I will release this change soon. Best Regards, Thorsten. Quote
audiocommander Posted November 26, 2006 Report Posted November 26, 2006 Hello everybody,in the mood for an interim report :) :I worked a lot on the application interface the last days. I've built in phoneme maps, jaw and tongue controls and now I'm waiting for an order to check it out with a matrix of four short distance sensors to control it by hand-movements in space (like talking handpuppets...)I'm currently adding some harmonic synthesis stuff to use the oscillators of the SJ as single-voiced mini-synth... for the puristic ones of us ;DAnd I decided to drop the recording possibilities, meaning the saving possibilities in the SpeakJets EEPROM, because:- I ordered a TTS256 speakJet compagnion chip, that receives text and shall be able to convert it by an integrated dictionary to allophone-"orders" sent to the SJ.- The second reason is that there's a PC program that does this quite good with a predefined dictionary, no need to reinvent the wheel...- and the last reason remains: if there's a slight error somewhere in my program, it might possibly lead to a destruction of the speakjets firmware. There is a rough buffer storage/previewer already implemented, but as I never used this the past weeks, I don't see a point in developing this further.While working on all that, my SoundGin arrived :DGot this in the email today: New SoundGin Sound Coprocessor IC Released!After reading the (excellent!, btw) datasheet of the SoundGin, I must say that this chip seems to have a lot more cool possibilities than the SpeakJet. There's an integrated note2freq table and the OSC control seems a lot more sophisticated. It has full envelope controls (Ctrl, Atack, Decay, Release) together with a bunch of informations how to synthesize vocal similar sounds. Of course it has also predefined phonemes, but unlike the speakjet it's not so limited to simple allophone-triggering.And finally, I really like the idea of having a simple powered device that could also be battery operated (compared to the +/-12 V FM or SID boxes)!I will surely port the control app to the SoundGin once I finished the SJ app! :)Cheers,Michael Quote
stryd_one Posted November 27, 2006 Report Posted November 27, 2006 Woot! nice one AC!My soundgin is on the way :) It's definitely powerful, but the speech just doesn't sound as nice as the speakjet for some strange reason... The synth stuff however.... :D Quote
audiocommander Posted November 27, 2006 Report Posted November 27, 2006 but the speech just doesn't sound as nice as the speakjet for some strange reason...yeah, noticed that too from the online demo :-\However, I'm really keen on hooking this nice little thing up. But I have to finish the SJ first or I'm really guilty of vapor-ware ;D Quote
audiocommander Posted December 5, 2006 Report Posted December 5, 2006 finally!it's done :D...at least I think it's a nice beta-version...http://www.midibox.org/dokuwiki/doku.php?id=midibox_speakjetcheck out the new audio-example (no artistic musical stuff, just demonstrating the rough possibilities; 'cause my sensor board is not yet finished):http://www.audiocommander.de/downloads/midibox/SpeakJet_kII_03.mp3comments welcome!Cheers,Michaelahh, nearly forgot this: I also implemented a very nice small harmonizer module ;Dto be continued... 8) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.