CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: LambdaMikel on 10:56, 01 May 17

Title: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 10:56, 01 May 17
Hi Board,

using my CPC 464 breadboard adapter (see my other thread), I have implement a "next generation speech synthesizer" for the CPC which I wanted to share with you; it uses the fabulous Emic 2:

[youtube]https://www.youtube.com/watch?v=C5BnD1NPwGw&feature=youtu.be[/youtube]

As you can hear, the speech quality of the Emic 2 is really nice... (http://cpc-live.com/forum/Smileys/akyhne/smiley027.gif) No complaints there - well, maybe one can complain about the price, which is a little bit high (about 60 $) (http://cpc-live.com/forum/Smileys/akyhne/banghead.gif) But I think it is worth it.

Besides the Emic 2, the other components in the design are: Atmega 328 for implementing a parallel (CPC) to serial interface, to bride from the CPC to the Emic 2; a 74LS373 flip flop, 2 G16v8 PLD's for address decoding and generation of the chip select signal, and some other gates. The hardware extension is at address &F9E1.

The speech synthesizer requires (almost) no driver, since the microcontroller and the Emic 2 are implementing an "intelligent" interface. The Basic program shown in the video is implementing a simple protocol, but basically, to talk to the speech synthesizer, one only needs to write bytes to port address &F9E1 (e.g., using OUT in BASIC). Interestingly, the interface from the CPC's parallel data bus to the Atmel was tricky to implement.

Cheers,
Michael
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: roudoudou on 11:34, 01 May 17
The song is excellent!  :o :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 11:34, 01 May 17
Right? A little bit creepy though  :o
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: robcfg on 11:45, 01 May 17
Sounds cool! Does it support other languages or does it require a new rom?


Sent from my iPhone using Tapatalk
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: ||C|-|E|| on 14:10, 01 May 17
Hahaha, it is very nice! Regarding the languages, as far as I now, the Emic2 can talk in Spanish and English. You can also choose different types of voices, so it should be possible to do quite a lot of different things with it.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Kris on 16:13, 01 May 17
Sounds really good  :o 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: remax on 16:42, 01 May 17
Yes, I'd like to hear it, HAL. Sing it for me. ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:25, 01 May 17
... gosh... what have I done... yesterday I asked it Open the cassette player door, CPC and it wouldn't do it  :o

I will probably turn this into a PCB and hence a "real" CPC extension - it should be possible to produce this for 50 $ a piece or so, without the Emic 2 of course (there will be a plug-in header for the Emic 2).

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 17:34, 02 May 17
Awesome sound  :o
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: CraigsBar on 02:56, 03 May 17
I want one lol.

Sent from my ONEPLUS 3t using Tapatalk

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:05, 03 May 17
I want one lol.

That's doable - when my PCB is ready, I can fabricate a couple and sell them assembled, with or without Emic 2 included. I will keep you all posted on the progress :)   Not sure how much time I will find in the next weeks to work on the PCB, though. Might take a while.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Cpcmaniaco on 23:03, 03 May 17
And I want one too.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: CraigsBar on 13:26, 04 May 17
Lol. Do is see this turning into an ongoing production run akin to the c4cpc and m4 boards lol.

Sent from my ONEPLUS 3t using Tapatalk

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 13:29, 04 May 17
How compatible have you made it? What addresses is it mapped too and can it emulate either the DKTronics or Amstrad Speech synths? Those features would make it much more interesting as there are games that detected and used these.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:35, 04 May 17
That's a good suggestion, Bryce... since I am using PLDs for the address decoding, it is quite easy to let it listen to DKtronics and SSA-1 ports as well, without increasing the chip count. Maybe I can also add a little DIP switch for IO port selection.

With regard to compatibility - as far as the Atmel 328 programming is concerened, it should be possible to implement some kind of "byte to allophone" tables that could come close to what SSA-1 and Dktronics are doing (I actually own both). However, a bigger problem is timing and synchronization between the CPC and the 328. So far, proper communication requires a special "protocol" between the CPC and the 328. Basically, it needs Bit 8 from the databus to "clock" the data connection. I.e., to send the characters "AB" (65 66) to the 328 (which sends it to the Emic over serial), I am currently sending the bytes "193 (= 65+128) 0 194 (= 66 + 128)";  otherwise, the 328 was no able to reliably read the bytes with its IO ports (I got bitflips and all kinds of synchronization problems...) THe original idea was to simply use the chip select / address detected signal from the PLD's, and feed it into the 328 which would use it as an interrupt, and then read the byte from the databus. Didn't work. I am wondering if anybody else has encountered this problem, and has a potential better solution. The schema above is working quite reliably, but is also timing sensitive, since the data connection is "self clocked" in that way, and the 328 is, honestly, not the fastest, even though I am clocking it with 16 Mhz. So there needs to be some delay between sending the bytes, as well as zero byte in between payload bytes, for some reason. It turns out that the 328's INT0 interrupts was completely useless for implementing this "receiver", so I am currently just polling the IO ports of the 328 in a tight loop, buffering bytes as I am receiving them. At first I was just hoping the 328 could listen to the data bus directly, but these dreams were shattered early on in the project :-) Hence, I even had to add the flip flop to latch the data bus; something which I had though would not be necessary.

Bryce, if you have any ideas / experience on how to read bytes fastly and directly from the databus, without requiring the above "protocol" trick, please let me know! A bus driver or similar would probably also not make a diference; the flip flop that I have should be good enough for this.

So, to answer your question - it might be possible, but it's not too straightforward with the current design  :) I would first need to figure out how be able to directly buffer bytes from the data bus without requiring the "8th bit must be set" and "zero byte" protocol. If that should be possible with the 328, then it is also possible to emulate SSA-1 and DKtronics.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: yannis_uno on 01:45, 07 May 17
This is awesome!  :)


I want one too!


 ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 02:48, 08 May 17
Update: The board has been submitted to OSH Park for PCB production... 85$ for 3 boards (PCB only of course).
Fingers crossed that I didn't mess up with KiCad and that the PCBs work as well as the breadboard prototype.
I must say that this is my first "more complex" KiCad project. I will know more in a week when the PCBs arrive.

Cheers,
Michael


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:55, 08 May 17
Looks good. If you flip the emic2 header connector to the rear of the board (no layout change required), the emic2 would "fold back" on the rear side of the PCB and your board would be much smaller.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:49, 08 May 17
Right, thanks for the suggestion! We won't see the status lights of the Emic 2 then, but I guess that's acceptable if it can bring the size (and hence the price!) down considerably. Will try that and check if it reduces the price a bit.

Btw, I thought again about the DkTronics / SSA-1 compatibility idea - one other problem is that the Emic 2 always requires start and end byte for the speech,  i.e. "S", then the stream of bytes, and then Enter. If I recall Dktronics and SSA-1 correctly, then they only require the allophone byte, and they speak directly as they receive the byte, no buffering (on the hardware level). You might have to poll the port for "ready" signal. Hence, they don't require a start ("S") and end byte (Enter), unlike the Emic 2. That makes it difficult. When is the string "entered"? I could wait for a pause of x milliseconds in the stream of bytes and assume that the string is complete then (-> Enter), and prepare for the next string (-> "S"), but this seems to be an unreliable heuristics. Looks like DkTronics and SSA-1 compatibility is not that easy to achieve, given that the Emic 2 requires a different protocoal and start and end byte  :( I have made providions to the hardware though for chaning the IO port without programming, and supporting 2 different modes (DIP switches), as well a soft reset button in case the thing gets stuck. I'll keep thinking about it though, maybe another idea crops up. 


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 12:13, 09 May 17
Right, thanks for the suggestion! We won't see the status lights of the Emic 2 then, but I guess that's acceptable if it can bring the size (and hence the price!) down considerably. Will try that and check if it reduces the price a bit.

Btw, I thought again about the DkTronics / SSA-1 compatibility idea - one other problem is that the Emic 2 always requires start and end byte for the speech,  i.e. "S", then the stream of bytes, and then Enter. If I recall Dktronics and SSA-1 correctly, then they only require the allophone byte, and they speak directly as they receive the byte, no buffering (on the hardware level). You might have to poll the port for "ready" signal. Hence, they don't require a start ("S") and end byte (Enter), unlike the Emic 2. That makes it difficult. When is the string "entered"? I could wait for a pause of x milliseconds in the stream of bytes and assume that the string is complete then (-> Enter), and prepare for the next string (-> "S"), but this seems to be an unreliable heuristics. Looks like DkTronics and SSA-1 compatibility is not that easy to achieve, given that the Emic 2 requires a different protocoal and start and end byte  :( I have made providions to the hardware though for chaning the IO port without programming, and supporting 2 different modes (DIP switches), as well a soft reset button in case the thing gets stuck. I'll keep thinking about it though, maybe another idea crops up.

Doesn't your board have a µP onboard that could add the S and Enter?

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:57, 09 May 17
Doesn't your board have a µP onboard that could add the S and Enter?

Thats right Bryce, but it is not clear when begin of speech (S) and end of speech should be shuffled into the allophone byte stream from the CPC. I can only think of a time-based criterion, like I said above: if no byte has been sent for the last x milliseconds, assume the input is complete. What you cannot do is send HELLO like this: S H <CR> S E <CR> S L <CR>.... etc. You will need to send S HELLO <CR>. THe SSA-1 and DkTRonics just require the allophone bytes for HELLO, and each allophone is output directly, no need for start and end tokens.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:41, 09 May 17
Being an absolute beginner with KiCad and PCB production, I wanted to summarize some of the errors I made  in that process such that other newbies can benefit from it - I actually had to generate the gerbers 5 times, because I was finding errors in the PCBs again and again - it was quite a humbling experience, but great fun also!  :) Here are some tips / hints, solutions to obstacles that I faced, and errors I made, hope it is helpful to others:

A. Eschema:
B. PCBNew and Gerber generationI must say that this was quite a lot to learn, and lot to Google to find solutions to these little challenges I encountered on the way, and a bit of a painful learning experience - I was cursing and shouting a lot last Sunday when I made the first runs  :laugh: But then, also extremely satisfying when you get you board back and when it works... (hope it will). Overall, it is tremendous fun to use these sophisticated tools - it is incredible what we can do these days with powerful tools such as KiCad. A real feast for "makers".   

Hope this helps other newbies - would also be VERY interested in any comments / feedback from the senior hardware designers here, and what their process and tool stack looks like (Bryce?)  ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:56, 10 May 17
All good tips. But there's also the lazy way... Some PCB manufacturers will accept the KiCAD files directly and they create the gerbers for you, then you've nothing to worry about :)

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:47, 10 May 17
I guess that's also a matter or price, right? Do you have an estimate of how much such a service would cost for my PCB, Bryce. Just curious, maybe for next time - this time I wanted to learn how to do it. Maybe next time I can be more lazy  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 09:14, 14 May 17
any chance for motherx4 compatible versions?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:58, 17 May 17
Good suggestion... maybe. When I started with this project, I was not aware of the motherx4. I can look into that for the next PCB that I will be making.

My PCB should arrive soon (tomorrow or so) - btw, I have also resolved the protocol issues by now. That means, I no longer need to shuffle in zero bytes and set the 8. bit of the payload data. One can simply send out a <byte> with "out &f9e<x>, <byte>" - and even without delay.

The price for this is that the 328 will now pull down *READY and put the CPC into wait state with that. Unfortunately, the connection between READY / WAIT and PB0 of the atmega 328 requires an extra cable since I had not anticipated this in the PCB design - I will just solder that cable on top by hand. The next version of the PCB will have that extra track  ;)

Now, that the protocol issue is resolved, I can also think about implementing a compatibility mode - in that mode, the idea would be that the "S = start of speech" and "<CR> = end of speech" tokens for the Emic 2 would not be required, but sent by the 328 automatically, on a time-based "speech pause" criterion. Given that SSA-1 and DKtronics work synchronous, but the Emic 2 asynchronous, there will still be a delay until it speaks, but it might work. I am not sure though if existing games (e.g., Roland in Time) are polling an input pin for ready, though. In that case, I would also have to provide a ready signal back-channel. The current solution doesn't do that. So, there might still be some more hardware changes required in order to support SSA1 and DK'tronics speech synthesizer compatibility. Stay tuned  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:04, 17 May 17
Aren't they pretty?  :D  [ You are not allowed to view attachments ]
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Duke on 22:15, 17 May 17
Aren't they pretty?  :D  [ You are not allowed to view attachments ]
The logo looks cool  8)

Only able to see one side, so not sure, but remember to make a fat vcc trace and gnd too (if you haven't done a gnd plane on the backside).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 22:26, 17 May 17
The VCC traces look like they are about 5 or 6mil which can handle up to 700mA without a problem, way more than anything on the PCB will require.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:27, 17 May 17
Only able to see one side, so not sure, but remember to make a fat vcc trace and gnd too (if you haven't done a gnd plane on the backside).

Hmm, yes there is VCC and GND on the back, but it is not fatter than the other tracks - you are right, I should make them fatter, and maybe even backplane filled with copper, right? That's for v2 of the PCB, too  ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:29, 17 May 17
The VCC traces look like they are about 5 or 6mil which can handle up to 700mA without a problem, way more than anything on the PCB will require.

Alright, in that case it should be fine  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 22:34, 17 May 17
If you intend having more boards made, I'd probably go up a size or two for the VCC just to be on the safe side and definitely add a ground plane if you don't have one, but the current PCB will definitely work with traces that size.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 23:21, 17 May 17
If you intend having more boards made, I'd probably go up a size or two for the VCC just to be on the safe side and definitely add a ground plane if you don't have one, but the current PCB will definitely work with traces that size.

Bryce.

Thanks Bryce, for the next version I will be asking who else would be interested in purchasing one, and plan and change accordingly.

Cheers
Michael
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:36, 21 May 17
The PCB's have arrived - and it is working!  ;D

At first I plugged it in, powered up the CPC - and nothing! CPC didn't even start up. After a while I had figured out that I had missalligned the IDC connector by one pin column when I had plugged it together  :doh: Here is a video of the first PCB version; it also shows the  additional cable for the WAIT / READY signal which I did not anticipate in the PCB: 

[youtube]https://www.youtube.com/watch?v=4YQeXAbyAOA&feature=youtu.be[/youtube] (https://youtu.be/4YQeXAbyAOA)

Cheers,

Michael
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:41, 21 May 17
One thing I always seem to struggle with is "clean soldering" - I mean the solder points all look neat with the magnifier glass, but the PCB looks "dirty" and "sticky" somehow. Is there a way to clean the PCB to make it look more neat after soldering? I am assuming that this is from flux / rosin core in the solder.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 13:46, 21 May 17
Well you can use "no clean" solder, but it doesn't live up to its name, it should be called "less cleaning" solder. The best way to clean this up is to buy this: https://www.reichelt.de/Sprays-fuer-die-Leiterplatte/KONTAKT-361/3/index.html?ACTION=3&LA=2&ARTICLE=26015&GROUPID=4073&artnr=KONTAKT+361&SEARCH=%252A   or similar.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:10, 21 May 17
Thanks, will order something similar over Amazon here in the US... is it true that the PCB is really "eaten away" by the rosin core if not being cleaned properly like this?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: ||C|-|E|| on 18:25, 21 May 17
Depends on the rosin, but many are actually really gentle with the PCBs. I have seen perfectly fine boards that were not cleaned for more than 40 years  :)  Regarding the cleaning, and since I have access to it for free, I like to use 100 per cent isopropanol, it works very well. I must confess that I tend to make the PCBs really dirty when soldering because I like to use quite a lot of flux, and it is the very traditional stuff. This is not necessary nowadays though, there are much cleaner products. It is just personal taste and familiarity with it, and I like the smell :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: pelrun on 20:39, 21 May 17
Fluxes are "temperature-activated acids", and are designed to be pretty inert at room temperature. It's only when you get up to soldering temperatures that they start dissolving oxides, and even then, it's the already "corroded" material that it removes, not the base metal. Cleaning is usually for aesthetic or electrical reasons - some flux residues are hygroscopic and may become slightly conductive over time, or they may affect impedance-controlled traces in sensitive RF circuits.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:49, 22 May 17
With very high voltages or very accurate low voltages / high frequencies it's best to remove all the flux residue. For insensitive, low-speed 5V logic it really doesn't make a difference. The old fluxes were quite aggressive and PCBs didn't have solder mask back then, but with modern flux and solder mask it won't "eat" anything on the PCB.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 14:28, 22 May 17
That's good to know - I will try to clean it up a bit anyways, for nicer look.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 07:51, 25 May 17
Today, something interesting happened - the whole thing stopped working!  :o Checked all the chips, everything seemed to be fine. The AVR wouldn't start up - it turns out the 22 pF capacitors for the oscillator quartz were fried! I would never have thought that a capacitor would fail in such a circuit... must be extermely low grade, or maybe because the following thing happened (below). I replaced them with some higer grade capacitors, and it is working again - hope these will last longer!

I am now trying to make the microcontroller software work with speech games such as "Roland In Space". During that process, I connected my DD3 (in order to load the game) to the CPC expansion port connector holding the speech synthesizer, and it was perfectly blocking the display such that I couldn't see anything. Great design - I should have though about that. Maybe Bryce was right from the beginning and the whole board should not be so tall  :laugh:

I then tried to connect the speech synthesizer card with the flat band cable, similar to my breadboard adapter, and during that process I must have gotten the polarity of the cable / connector wrong.... Might that have blown the capacitors? Who knows. Anyways, I have figured out how to connect both the DD3 and the speech synthesizer to the expansion port by now (see screenshot), using a the breadboard adapter connector I had made, and I am now good to go to investigate how I can make "Roland In Space" speak  :P

I was intruiged to read that DK'tronics speech synth and SSA-1 have the same chip, but are actually not compatible... they use a different IO port. It seems that some games are supporting SSA-1, but only one or two DK'tronics. I can remember the Amsoft Pool / Snooker supported the DK'tronics (interestingly, that does not seem to be listed on the Wiki, but I can remember it speaking from playing it in 1986 with my DK'tronics). It shouldn't be difficult to support both IO ports (SSA-1:  out = in = &FBFE, DK'tronics: out = in = &FBEE). Output port and allophone translation shouldn't be such a big problem, however, INPUT might be.

And here is a question - does anybody know if the games such as Roland in Space would actuall read / poll the port to wait for the "ready" signal from the SSA-1 / DK'tronics? Or do the games just send the allophones slowly enough? I was hoping that I would not have to add this to the hardware, as it requires decoding of ~IOREQ & ~RD and, and, depending on SSA-1 or DK'tronics, I will have to indicate ready as follows:

SSA-1:

 bit7   Status 1 (0=Speech Busy, 1=Ready/Halted)   (SBY Pin, Standby)
 bit6   Status 2 (0=Ready to Receive Data, 1=Busy) (/LRQ Pin, Load Request)
 bit5-0 Not used (garbage, probably usually high)

DK'tronics:

 N/A    Status 1 (none, SP0256.Pin8 is not connected) ;SBY Pin, Standby
 bit7   Status 2 (0=Ready to Receive Data, 1=Busy)    ;LRQ Pin, Load Request
 bit6-0 Not used (garbage, probably usually high-z)

Maybe I will only support SSA-1... since this seems to be different. As I will have to buffer the allophone bytes anyways, and translated them, I can always indicate "ready" for the SSA-1 emulation, using 

 bit7 = 1, bit6 =  0

Maybe this could just be "hardwired". However, does anybody know if the games really wait for ready and need this? I would be happy of not having to change the hardware.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: gerald on 11:02, 25 May 17
And here is a question - does anybody know if the games such as Roland in Space would actuall read / poll the port to wait for the "ready" signal from the SSA-1 / DK'tronics? Or do the games just send the allophones slowly enough? I was hoping that I would not have to add this to the hardware, as it requires decoding of ~IOREQ & ~RD and, and, depending on SSA-1 or DK'tronics, I will have to indicate ready as follows:

SSA-1:

 bit7   Status 1 (0=Speech Busy, 1=Ready/Halted)   (SBY Pin, Standby)
 bit6   Status 2 (0=Ready to Receive Data, 1=Busy) (/LRQ Pin, Load Request)
 bit5-0 Not used (garbage, probably usually high)

DK'tronics:

 N/A    Status 1 (none, SP0256.Pin8 is not connected) ;SBY Pin, Standby
 bit7   Status 2 (0=Ready to Receive Data, 1=Busy)    ;LRQ Pin, Load Request
 bit6-0 Not used (garbage, probably usually high-z)

Maybe I will only support SSA-1... since this seems to be different. As I will have to buffer the allophone bytes anyways, and translated them, I can always indicate "ready" for the SSA-1 emulation, using 

 bit7 = 1, bit6 =  0

Maybe this could just be "hardwired". However, does anybody know if the games really wait for ready and need this? I would be happy of not having to change the hardware.
Roland in Space is indeed reading the port, the original software that came with the SSA1 boes it too.
Its the only way to have a proper synchronisation with the SP0256.
Some reading, if you did not already find it : http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-ssa-1-speech-synthesizer-rom-needed/msg4641/#msg4641
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:00, 25 May 17
Thanks, this is helpful!


> Roland in Time expects the following sequence:
> - LRQ = 0, SBY = 1
> - write: LRQ = 1, SBY = 0
> - waits 18microseconds and then reads port: LRQ = 1, SBY = 1
> After this it has identified an ssa-1 and probably allows the allophone to complete and the final state:
> is back to LRQ = 0, SBY = 1.
>
> It sends allophone 0.

So I really need to create that pulse.
What trouble me is having to create LRQ = 1, SBY = 1.
It would be easier to simply toggle between 01 and 10.
 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:29, 25 May 17
... I will try to get the Atmega 328 to do the LRQ and SBY generation... I should still have 2 pins available. Only problem is that 328 doesn't have tri-state output. I had the same issue with READY / WAIT signal before - it seems the only way to put a pin into tristate (not connected) mode is to declare it as an input pin. It is possible to toggle the pin between input (not connected) and output (for 0,1) though, that worked for the READY / WAIT signal.

Anyways, that requires some hardware changes - so back to the breadboard for now... the new PCB (if this will work at all) will require a couple of changes:
It would be nice if the headphone jack would just connect to the CPC built-in speaker... not sure that is possible though. The SND pin on the expansion port produces some audible sound if I put my finger on there, but I believe this is intended as output only, not input, or?

For the people that indicated interest in purchasing one of these speech synthesizers, I suggest to wait until the hardware is finalized and Rev. 2 is working ;-) That might take a while though... not sure if the synchronization / emulation of SSA-1 will work out at all to be honest. The good thing about having a microcontroller "on board" - it is mostly a software problem then  :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:55, 25 May 17
... I will try to get the Atmega 328 to do the LRQ and SBY generation... I should still have 2 pins available. Only problem is that 328 doesn't have tri-state output.

If it only was so easy  ;D One more catch - just putting bit 7 and bit 6 for LRQ and SBY on the data bus "when the AVR likes to" won't do it, because I will jam the bus - rather, I need to generalize the "IO address recognized & ~IOREQ & ~WR" into "IO address recognized & ~IOREQ"  = X and add two more gates: SPEECH_READ = X & ~RD and SPEECH_WRITE = X & ~WR. Then, SPEECH_READ will have to act as "output enable" of some tristate buffer... I will need one more chip. The AVR cannot get the CPC's bus timing right. Rather, it will provide the LRQ and SBY signals as inputs to the tristate buffer, which puts them on the bus when SPEECH_READ is encountered. That should do the trick, but requires one more chip (the tristate buffer) in the design.

The good thing about requiring one more chip is that I don't need to toggle the AVR pins between input (tristate) and output  (0,1) mode then. They can just stay in output mode.

Btw, if anybody has much easier idea of realizing this, please chime in!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 07:50, 30 May 17
Had some time this weekend, and upgrade the breadboard - the changes / additions described above seem to work.
I can successfull read values from the 74LS244 via BASIC INP(&F9E1), with its data set from from the Atmega 328.
Seems I am good to go to work out the microcontroller software part of this "SSA-1 compatibility mode"  :)
Attaching an image - the 74LS244 is in the upper right corner. I also moved the 74LS02 and 74LS08 to the right of the board.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:08, 04 June 17
A little update: by now, I have convinced the SSA1 speech software that the emulated SSA-1 is "operational".
It then proceeds by loading the RSX extension, and I can then issue commands like |say,@a$ which currently don't do anything, but there is also no error being reported, so it seems that the software is convinced that thre is an SSA-1 present.

I also have a plan now how to map the SPO256 Allophones from

http://www.cpcwiki.eu/index.php/SP0256_Allophones

into Emic 2 / DECTalk allophones "on the fly", using a look-up table, and I finally found the description of the DecTalk
allophone parser mode:

https://www.parallax.com/sites/default/files/downloads/30016-Emic-Epson-Fonix-DECTalk-501-Users-Guide.pdf


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: radu14m on 12:47, 14 June 17
great work mate ! ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:47, 14 June 17
Quick update: I can by now load the SSA-1 driver and also |say,@a$ works, but when Roland in Space starts up, it doesn't say "Amsoft proudly presents..." etc. The strange thing is that within the game itself, it IS speaking ("Time for tea" and similar). So it seems there are some issues with timing yet to be worked out. It is difficult to get the timings right with the AVR 328, given that it is not synchronized with the CPC clock.

Does anybody have any advice how to time LRQ and SBY signals such that it will also work for the Roland In Space title screen? It is strange that it works within the game itself and for the SSA-1 software, but not for the title screen.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:59, 14 June 17
Another caveat - it is NOT possible to make the Emic 2 speak synchronously.
The DEC parser mode is also buffered. Hence, there will be a short delay: I am buffering the allophones and speaking starts when the last allophone has been delivered a second ago or so, or when the buffer is full. That means that certain software, such as the screen reading "echo" of the SSA-1 software, which constantly sends bytes if you list a long basic program, will not work perfectly. There will be delays when the buffer is full, and an "incomplete" buffer might be spoken. But for short utterances such as in Roland in Space, there is no problem with the buffering approach.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:20, 15 June 17
 The thread

http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-ssa-1-speech-synthesizer-rom-needed/msg4641/#msg4641 (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-ssa-1-speech-synthesizer-rom-needed/msg4641/#msg4641)

is a great source of information, but given the problems figuring out the exact timings for Roland in Space title screen, I decided to dust-off my real SSA-1 and connect it to my recently acquired HP 1662A Logic Analyzer (I got that thing for 50$ !).

I am attaching the screenshots for the title screen speech "Amstrad produly presents..." - the first three bytes or so.
Lab 1 = ~LRQ
Lab 2 = SBY
Lab 3 = ~ALD

Similar to the measurements in the cited thread above.

That should give me some material to work with...
[attachimg=1][attachimg=2][attachimg=3][attachimg=4][attachimg=5][attachimg=6][attachimg=6][attachimg=7]
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:01, 15 June 17
[attachimg=1][attachimg=2][attachimg=4][attachimg=5][attachimg=6][attachimg=7][attachimg=8][attachimg=9][attachimg=3]
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:08, 16 June 17
Seem I finally figured it out  :)

[youtube]https://youtu.be/GwAH3_dJs_I[/youtube]

Thanks to gerald in the other thread

http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-ssa-1-speech-synthesizer-rom-needed/120/

There is still some finetuning of the allophones possible - the Emic 2 allows to specify the lengths. I haven't done that yet. It uses Emic 2's default allophones. Some of the mappings were not so clear to me, but as you can see in the video, it is not much worse than the original SSA-1.

Also, the effect that the Emic 2 cannot really speak synchronously as the allophones arrive, but has to buffer them first, is visible in the video, if you look at the "talking head" in the SSA-1 software loader. The head speaks silently, and the speech comes later.

Next step is to make PCB version 2. This version will have (at least) 2 modes:

- the native Emic 2 mode, as shown previously
- the SSA-1 emulation, as shown in this video
- ( maybe also DK'tronics? ) But it seems that might not be so worthwhile, as not so many games seems to support DK'tronics speech synthesizer.

The DIP switch will be used to select some of these options.


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:38, 22 June 17
I tried to squeeze the board's height as much as possible, but even this new version will still block parts of the DD3 display  :( Must use a cable otherwise.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:19, 23 June 17
I now have the final PCB. That way the DD3 display is unobstructed. It is submitted to the PCB manufacturer... a small batch of 3. Let's see if it works  :)

Btw, the large empty area on the top right below the "Lambda Speak" logo is reserved for a little loudspeaker. The Emic 2 has a built-in amplifier.

 [ You are not allowed to view attachments ]
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:44, 09 July 17
The PCBs are back... tomorrow I will put the iron to work - let's see if it works  :)
Stay tuned  :P
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 22:01, 09 July 17
Hey, great score on the HP 1662A! They're a bit big but a great device, especially for retro computers where you can really make use of the state analysis mode that modern LA's unfortunately don't have any more :(

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:20, 10 July 17
Yeah, that thing is fun - and really useful for this project!

The PCB works - here is a new video:

[youtube]https://youtu.be/PJCfPbCQvmo[/youtube]

Will still need one more PCB revision though unfortunately: the space for the DDI-3 LCD display is still slightly too small.

And then, the software needs some more work:
- read DIP switches at startup to determine initial modes (choices: Emic 2 native, and SSA-1 emulation, as well as different voices for SSA-1)
- add some &FF control byte facility such that the modes can be changed, even from SSA-1 mode
- add reset handler

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:48, 10 July 17
... how about a round of "Alex Higgins World Pool" instead of "Roland in Space"  :P

[youtube]https://youtu.be/WbvsnRWKF0s[/youtube]
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:49, 10 July 17
Bryce wrote:
Quote
Hey, great score on the HP 1662A! They're a bit big but a great device, especially for retro computers where you can really make use of the state analysis mode that modern LA's unfortunately don't have any more

I must say that this state analysis mode is still a bit of a mystery to me... so far I just used the timed mode. And even that was not easy to understand. The analyzer certainly requires far more time and study for proper use. I managed to find a PDF of the manual online, but boy, that thing is not easy to understand... it has tons of menus and configuration options. For 90% of them I have no idea what they do - I was lucky to figure out how to acquire the traces by playing around and using some intuition. If you can give some advice about logic state mode etc. that would be great, Bryce! 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 22:39, 10 July 17
State analysis is more or less just a mode where the LA uses the clock of the device you're testing instead of its own internal clock. So the LA is exactly in sync with the DUT. That way you can see exactly what level each pin was at on each clock cycle. Unfortunately modern LAs don't include thiis option any more :(

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 06:19, 11 July 17
Thanks for the explanation, Bryce!

And here comes my next question  ;) I was asked again about MX4 compatibility - I don't have any MX4 equipment to test unfortunately, but chances are that LambdaSpeak already is compatible?! LambdaSpeak's IDC box header has the following layout:

Code: [Select]
--------------|_|---------------
| pin1                   pin49 |
| pin2                   pin50 |
--------------------------------

That means, pin 1 = sound, pin 2 = GND, pin 49 = GND, pin 50 = CLK of the CPC 464.

Will that work, or does it require changes?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 10:33, 11 July 17
It looks like you have the pins flipped? How are you connecting it to your CPC? The correct layout would be:

pin2                           pin50
pin1                           pin49

So you would have to mount the 90° header on the rear of the PCB to get it connected correctly?

Did you make the edge to IDC adapter PCB layout yourself? It looks like the problem started there.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:06, 11 July 17
I see. Yes, I used my CPC Expansion Breadboard adapter for this:
http://www.ebay.com/itm/Amstrad-Schneider-CPC-464-Expansion-Port-Breadboard-Connector-KIT-/192224312275?hash=item2cc1763bd3:g:ZqoAAOSwJ4hY-5Dq (http://www.ebay.com/itm/Amstrad-Schneider-CPC-464-Expansion-Port-Breadboard-Connector-KIT-/192224312275?hash=item2cc1763bd3:g:ZqoAAOSwJ4hY-5Dq)
(only difference is that the female IDC pin header connector is facing upwards for LambdaSpeak, whereas it is facing downwards on the Ebay auction image).
When I did the PCB design, this layout occurred "naturally", so to speak, so I am a bit surprised that the pins are flipped with regard to MX4.

Well, I can make another version with pins flipped.

Where can I buy a mother4x motherboard to test it?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:11, 11 July 17
Just to be sure - the layout I posted is when I am turning the card upside down such that I am looking directly INTO the IDC box header (male IDC).
Did you by any chance describe the layout on the motherboard (female IDC connectors on board?) That would describe the difference as well.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 17:28, 11 July 17
There's an easy way to test if the pin numbering is correct: Put pins on the PCB instead of a socket and then connect an IDC connector/cable to the header: Is "your" pin one connected to the red wire? If not you've got it wrong.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:29, 11 July 17
Hmm, the pins / connector on LambdaSpeak are already PINs / male.
If I do this test you suggested, then pin1 of the cable (marked by a little arrow) alligns with pin 49.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:32, 11 July 17
But with your test, there are still 2 possible outcomes depending on how I put the cable on the headers
Without the little notch? It can then either be pin 2 or pin 49 in my case.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:49, 11 July 17
This is how I got my layout:

Code: [Select]
--------------|_|---------------
| pin1                   pin49 |
| pin2                   pin50 |
--------------------------------

If you look at the CPC 464 expansion port from behind, you will get the following picture:

Code: [Select]
                                  --------------------------------
LOUDSPEAKER   VIDEO   POWER       | pin49                   pin1 |
                                  | pin50                   pin2 |
                                  --------------------------------

Then if you pair this with an IDC box header "1-to-1", such that the notch is facing upwards, then you will get my allignment, where
pin1 = upper left.

Now, if I were to orient the IDC header such that the notch would be facing downwards, then I will get pin 2 = pin 1...
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:53, 11 July 17
Well, flipping the rows (vertically) is easy.. as long as I don't need to flip the horizontal axis. That would be bad!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Duke on 21:02, 11 July 17

You need:
--------------|_|---------------
| pin2                   pin50 |
| pin1                   pin49 |
--------------------------------

For top side 90 deg IDC connector mount for MotherX4 compatiblity.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 00:04, 12 July 17
All right, got it! Thanks!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:10, 12 July 17
This evening, I have finished the software part:
With regard to the IO addresses, I currently have
sw5 = faee, fafe, fbee, fbfe (ssa- and dk'tronics)
sw6 = fa00, fb00
sw7 = fa01, fb01
sw8 = fa02, fb02

Only one switch can be "on" of course (and exactly one switch has to be on).

LambdaSpeak cannot distinguish between fa and fb (by design), because ssa-1 replies to both addresses.

It also uses the DK'tronics port, but only SSA-1 emulation is implemented.

Does anybody have any problems with the ports for sw6 - sw8? I looked at the CPC io port list and couldn't find any hardware that would be using these, so it should be fine?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:51, 12 July 17
sw6 = fa00, fb00 sw7 = fa01, fb01 sw8 = fa02, fb02

Interesting - tried that and got a colorful screen with green background and random pixels at startup  :-X Seems some CPC internal hardware is not very selective about decoding...

Changed these to

sw6 = fad5, fbd5
sw7 = fad6, fbd6
sw8 = fad7, fbd7

This worked with my equipment, and I couldn't find any other hardware listed at these ports.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: pelrun on 17:52, 12 July 17
State analysis is more or less just a mode where the LA uses the clock of the device you're testing instead of its own internal clock. So the LA is exactly in sync with the DUT. That way you can see exactly what level each pin was at on each clock cycle. Unfortunately modern LAs don't include thiis option any more :(

Bryce.


Really? Both of mine (an OBLS and a DSLogic) have clock inputs. Although they are hobbyist level devices. I don't know what the commercial MSO's and LA's do these days.


My OBLS actually has nearly all of the advanced triggering capabilities of an HP 16550 LA, unfortunately nobody ever managed to write a UI to actually configure them.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 10:29, 13 July 17
Yes, quite a few of the opensource FPGA USB type LAs do offer a clock input, but the big commercial MSO's rarely do, which is extremely annoying, because it can't have been very difficult or expensive to add this feature, especially as the Oscilloscope inputs could have been used for this.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:22, 14 July 17
Had a rough week and really needed to speak to my psychiatrist  :laugh:

[youtube]https://youtu.be/ckCTHi5_2f8[/youtube]

This is the native Emic 2 mode of LambdaSpeak (no driver required).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:41, 16 July 17
Will still need one more PCB revision though unfortunately: the space for the DDI-3 LCD display is still slightly too small.

The new PCBs arrived today, and LambdaSpeak has reached it final form - it blends nicely with DDI-3, and has a loud enough little speaker. But this version is still not MX4 compatible.. However, software is finished by now. 

The MX4 compatible version will have a slightly different layout, and the first MX4-compatible version should be working next weekend. 
 
Once it is verified that the MX4 compatible version works as planned, I will be uploading a Google Spreadsheet where members interested in purchasing one can sign up such that I can estimate the level of interest and effort it would required to "mass produce" LambdaSpeak.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:43, 17 July 17
Here is a cost breakdown of LambdaSpeak:

This already adds up to 172 $ or 158 $ for the MX4 version without connector PCB. These are the component prices that I am getting from places like Jameco Electronics, Ebay, Amazon and OshPark.

I need at least 1,5 hours to assemble, test, and ship this, so I would ask for 185 $ resp. 169 $. I know, it's expensive...

The "sign up sheet" I mentioned above will be coming next week or so.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:19, 27 July 17
Hi board,
there is a slight delay... the latest PCBs which ought to be M4X compatible have a problem.
I will need one more revision  :doh:  That will slow down the project by another 10 days.
I will post any progress here. So I dont have the MX4 compatible board working yet.


In the meantime, I have asked some turnkey PCB assembly service for a quote. It seems
that a small batch of 20 to 40 should be feasible - if that many people can get interested.
The prices for assembly range between 30$ and 60$ per batch (20 vs. 40). Of course, on
top you would have the Emic 2 costs, shipping, etc. But it seems that professional
assembly should be possible and still staying in the 130 $ - 170 $ range. For a very small
interest group, I would just solder them by hand then.


Cheers,
Michael
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:40, 11 August 17
Hi board,
there is a slight delay... the latest PCBs which ought to be M4X compatible have a problem.
I will need one more revision  :doh:   
 


Update / the new PCBs will arrive today  :D  I will know by Sunday if it all works out.
Stay tuned  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:18, 12 August 17
OK, it works! This version now has the M4X layout:

Code: [Select]
--------------|_|---------------
| pin2                   pin50 |
| pin1                   pin49 |
--------------------------------

To make sure this really works with an M4X, at this time I will assemble and
send out one LambdaSpeak to a board member who has volounteered to do
the first M4X test; he gets a special price and of course gets the money back
if it shouldn't work (I don't really have any M4X equipment, but the board works
fine with my "CPC Expansion Port Connector" which also has has been changed
to have the above PIN layout, and hence should be M4X compatible as well by
now). If the volounteer encounters no problems, then more people can order
LambdaSpeak. Depending on how many people would like one, I'll have to consider
a "turnkey assembly service" or not.

More soon after the volounteer has reported back  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:30, 08 September 17
Final post in this thread:
LambdaSpeak v1 is final by now.
It is fully Mother4X compatible (tested), and also works with a CPC 6128 Centronics Expansion port cable.

Thanks to all who helped!! This is a great forum.
The price is still kind of a deal breaker for most potential customers.
It is great that Bryce is looking into cutting down costs and chip count
and redesigning it... stay tuned  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 01:23, 10 September 17
And a picture  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: rpalmer on 00:10, 11 September 17
Are there two versions of the MX-4?

The version I know looks like the attached picture, yet lamdamikel suggests otherwise.

My version of the expansion bus adapters are going to have pin 1 as shown in the attached picture.

rpalmer
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 05:38, 11 September 17
Mine looks the same.

Alternatively, for people with a 464 that only need one M4X card / extension, I have this thing
(I call it the "CPC 464 Expansion Port Connector"):

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 06:46, 11 September 17
The version I know looks like the attached picture, yet lamdamikel suggests otherwise.

I was describing the PIN layout of the connector on the expansion card (IDC Box Header).... if you plug that into the board, then the "cutout" hole in the box header faces towards you, and the 1 from the IDC box header alligns with the 1 on the Mother4X board female connector as it should.  ;)
 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 00:19, 27 November 17
Quick update - this project isn't dead  :D

The interaction and collaboration with Bryce has already resulted in some significant refactoring and second thoughts regarding the original design of LambdaSpeak. Here is an interim version on the way to LambdaSpeak 2: LambdaSpeak 1.5.

We are not going to sell / produce this one, this is yet another prototype. However, production costs would be significantly lower than LambdaSpeak (1) already. Stay tuned ;)

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:50, 04 December 17
One more milestone passed - we replaced the GAL22V10 + 2 74LS374 FlipFlops with
2 Xilinx CPLDs. The final design will only have 1 big(ger) Xilinx CPLD.
 
Title: Re: New &quot;Next Generation Speech Synthesizer&quot; for the CPC 464
Post by: Gryzor on 22:07, 04 December 17
Judging from the pic, output must be a bit garbled [emoji16]

Thanks for the update!

Sent from my HTC 10 using Tapatalk

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:38, 05 December 17
Nope, it sounds great, :)

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: ||C|-|E|| on 16:07, 05 December 17
Nope, it sounds great, :)

Bryce.

You guys will have to probe it  :laugh:
Title: Re: New &quot;Next Generation Speech Synthesizer&quot; for the CPC 464
Post by: Gryzor on 16:08, 05 December 17
Eheheh [emoji23]

Sent from my HTC 10 using Tapatalk

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 14:04, 06 December 17
However, production costs would be significantly lower than LambdaSpeak (1) already. Stay tuned ;)


That's great! The cheaper it is the more units can be sold.  :) 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:42, 17 January 18
Happy new year! Here is the first update of 2018:

In the meantime, the firmware for LambdaSpeak 1.5 and 2.0 is maturing: it now offers many more commands, which will be - on the CPC side - made available via an RSX extension. The control bytes that are understood by the new firmware are:

Code: [Select]

 switch ( control_byte ) {
 
  case 0xFF : process_reset(); break;


  case 0xEF : native_mode_epson(); break;
  case 0xEE : native_mode_dectalk(); break;
  case 0xED : ssa1_mode(); break;
  case 0xEC : non_blocking(); break;
  case 0xEB : blocking(); break;
  case 0xEA : confirmations_on(); break; 
  case 0xE9 : confirmations_off(); break;   
  case 0xE8 : english(); break;
  case 0xE7 : spanish(); break;


  case 0xDF : stop_command(); break; 
  case 0xDE : flush_command(); break;
 
  case 0xCF : get_mode(); break;
  case 0xCE : get_volume(); break;
  case 0xCD : get_voice(); break;
  case 0xCC : get_rate(); break;
  case 0xCB : get_language(); break;
  case 0xCA : get_delay(); break;
  case 0xC9 : get_version(); break;
  case 0xC8 : speak_copyright_note(); break;
  case 0xC7 : speak_hal9000_quote(); break;
  case 0xC6 : sing_daisy(); break;
  case 0xC5 : echo_test_program(); break;
  case 0xC4 : test_message(); break;


  case 0xB0 : set_voice_default(); break;
  case 0xB1 : set_voice(1); break;
  case 0xB2 : set_voice(2); break;
  case 0xB3 : set_voice(3); break;
  case 0xB4 : set_voice(4); break;
  case 0xB5 : set_voice(5); break;
  case 0xB6 : set_voice(6); break;
  case 0xB7 : set_voice(7); break;
  case 0xB8 : set_voice(; break;
  case 0xB9 : set_voice(9); break;
  case 0xBA : set_voice(10); break;
  case 0xBB : set_voice(11); break;
  case 0xBC : set_voice(12); break;
  case 0xBD : set_voice(13); break;
  case 0xBE : set_voice(14); break;
  case 0xBF : set_voice(15); break;


  case 0xA0 : set_volume_default(); break;
  case 0xA1 : set_volume(1); break;
  case 0xA2 : set_volume(2); break;
  case 0xA3 : set_volume(3); break;
  case 0xA4 : set_volume(4); break;
  case 0xA5 : set_volume(5); break;
  case 0xA6 : set_volume(6); break;
  case 0xA7 : set_volume(7); break;
  case 0xA8 : set_volume(; break;
  case 0xA9 : set_volume(9); break;
  case 0xAA : set_volume(10); break;
  case 0xAB : set_volume(11); break;
  case 0xAC : set_volume(12); break;
  case 0xAD : set_volume(13); break;
  case 0xAE : set_volume(14); break;
  case 0xAF : set_volume(15); break;


  case 0x90 : set_rate_default(); break;
  case 0x91 : set_rate(1); break;
  case 0x92 : set_rate(2); break;
  case 0x93 : set_rate(3); break;
  case 0x94 : set_rate(4); break;
  case 0x95 : set_rate(5); break;
  case 0x96 : set_rate(6); break;
  case 0x97 : set_rate(7); break;
  case 0x98 : set_rate(; break;
  case 0x99 : set_rate(9); break;
  case 0x9A : set_rate(10); break;
  case 0x9B : set_rate(11); break;
  case 0x9C : set_rate(12); break;
  case 0x9D : set_rate(13); break;
  case 0x9E : set_rate(14); break;
  case 0x9F : set_rate(15); break;


  case 0x80 : set_buffer_delay_default(); break;
  case 0x81 : set_buffer_delay(1); break;
  case 0x82 : set_buffer_delay(2); break;
  case 0x83 : set_buffer_delay(3); break;
  case 0x84 : set_buffer_delay(4); break;
  case 0x85 : set_buffer_delay(5); break;
  case 0x86 : set_buffer_delay(6); break;
  case 0x87 : set_buffer_delay(7); break;
  case 0x88 : set_buffer_delay(; break;
  case 0x89 : set_buffer_delay(9); break;
  case 0x8A : set_buffer_delay(10); break;
  case 0x8B : set_buffer_delay(11); break;
  case 0x8C : set_buffer_delay(12); break;
  case 0x8D : set_buffer_delay(13); break;
  case 0x8E : set_buffer_delay(14); break;
  case 0x8F : set_buffer_delay(15); break;


  }

So everything that gets send to &FBEE with bit 8 set (> 127) is (potentially) a control byte (ASCII for speech is 7 bit).
The get_xxx commands works by putting the currrent value onto &FBEE port, such that it can be read via INP(&FBEE). The value is then available there for a couple of (~ 200) milliseconds, before that port goes back to 0. So, in order to read the get_xxx value, one needs to write a busy loop that checks for > 0 on that address and then exits the loop when 0 is read. The reason for that complicated reading protocol is that this port is also needed for SSA1 synchronization, and that I didn't want to use another port. This also means that there is no "0" setting for volume, voice, etc., everyhing starts at 1.  Also, the port value needs to be shifted to right by 3 bits (divided by 16 - I am using upper nibble).

New features of this firmware - it also supports the DecTalk mode now, such that you can let it sing etc.
The Emic2-based version supported most of these already, because the Emic 2 interface has an extra interface / command GUI layer and microcontroller. However, we are using a "raw" Epson speech IC by now, so we lost this Emic 2 command parser and its driver features.

I still have to write the RSX extension.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:07, 07 February 18
I have uploaded a little demo of some of the LambdaSpeak firmware features, this time using LambdaSpeak 1.8. This another interim version towards LambdaSpeak 2.0:

https://youtu.be/9lcQwHY9uwA (https://youtu.be/9lcQwHY9uwA)

The video shows some of the control bytes discussed above in action. Also, shows how to use DecTalk parser to make it sing from BASIC. 

LambdaSpeak 2.0 will be the final version we are aiming at, in which the GAL22V10, the 74LS374, and the 74LS244 will be replaced by a single Xilinx XC9572xl TQ100 CPLD... unfortunately, we still have to resolve a timing problem which causes the SSA1 driver to malfunction. Maybe it is the cable length of the breadboard design??

Interestingly, everything else work... only SSA1 driver |say seems to be loosing allophone bytes. Strange!
Well, we will figure it out.

This version of LambdaSpeak does not have that problem though. We hope that LambdaSpeak 2.0 can have the same firmware, and that the pinout of the Atmega 644 will be identical with LambdaSpeak 1.8.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:34, 07 February 18
... here is the demo program from the video; notice from line 190 on there is the happy birthday song (part of it):

Code: [Select]
10 OUT &FBEE,&FF
20 a=INP(&FBEE):IF a<>128 GOTO 20
30 PRINT "hit space bar for quiet"
40 OUT &FBEE,&EF
50 WAIT &FBEE,32
60 OUT &FBEE,&EC
70 WAIT &FBEE,32 
80 a$="hello how are you i am lambdaspeak 123456789"
90 FOR i=1 TO LEN(a$)
100 c$=MID$(a$,i,1) 
110 OUT &FBEE,ASC(c$)
120 NEXT
130 OUT &FBEE,13
140 a=INP(&FBEE)
150 IF INKEY$=" " THEN OUT &FBEE,&DF:PRINT "quiet!"
160 IF a<>32 GOTO 140   
170 REM
180 OUT &FBEE,&EE
190 a$="[:phone arpa speak on][:rate 200][:n1][hxae<300,10>piy<300,10> brr<600,22>th<100>dey<600,19>dih<600,15>rdeh<600,14>ktao<600,12>k_<120>_<120>][:n1]"
200 a$=a$+"[:phone arpa speak on][:rate 200][:n3][hxae<300,10>piy<300,10> brr<600,22>th<100>dey_<120>_<120>][:n3]"
210 FOR i=1 TO LEN(a$)   
220 c$=MID$(a$,i,1)
230 OUT &FBEE,ASC(c$)   
240 NEXT
250 OUT &FBEE,13   
260 a=INP(&FBEE)
270 IF INKEY$=" " THEN OUT &FBEE,&DF:PRINT "quiet!"
280 IF a<>32 GOTO 260 
290 REM
300 OUT &FBEE,&CE
310 WAIT &FBEE,255
320 PRINT INP(&FBEE)/16
330 a=INP(&FBEE):IF a<>0 THEN GOTO 330
340 WAIT &FBEE,32
350 OUT &FBEE,&CC
360 WAIT &FBEE,255
370 PRINT INP(&FBEE)/16
380 a=INP(&FBEE):IF a<>0 THEN GOTO 380
390 WAIT &FBEE,32
400 OUT &FBEE,&B2
410 WAIT &FBEE,32
420 OUT &FBEE,&CD   
430 WAIT &FBEE,255 
440 PRINT INP(&FBEE)/16   
450 a=INP(&FBEE):IF a<>0 THEN GOTO 450
460 WAIT &FBEE,32 
470 OUT &FBEE,&CD



Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 00:39, 08 February 18
lambdaspeak is coming along really well, can't wait for a released version. I am guessing it will have dktronics and it's own modes as well as ssa1? can it make a cylon voice?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:52, 08 February 18
At the moment only SSA-1 emulation has been done, but the long term plan is to have DKTronics emulation too. At the moment I am making some changes so that the firmware can be updated via a USB cable. That will allow for updates after the hardware has been released.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:53, 08 February 18
lambdaspeak is coming along really well, can't wait for a released version. I am guessing it will have dktronics and it's own modes as well as ssa1? can it make a cylon voice?

Thank you, we are getting there!  :)

The CPLD problem with the SSA1 |say command (the LambdaSpeak 2.0 breadboard prototype was loosing allophone bytes) just got fixed, thanks to Bryce, who pointed out that the VCCIO voltage  should not be at 5 V. With an additional voltage regulator on the breadboard that only supplies VCCIO it is working reliably now. So we are good to go with the final version wich will be designed by Bryce.

So far, we have no DKtronics emulation... honestly, I don't think it is worthwhile, because there is less software for DKtronics, and the SSA1 RSX driver is much better than what DKtronics supplied. We have SSA1 emulation. I have both an SSA1 and a DKtronics - BASIC programs that were written for the DKtronics can be ported easily to work with the SSA1 (and hence LambdaSpeak SSA1 emulation). I did that with my Eliza program, which was originally written for DKtronics:

https://youtu.be/aTxufTKfrYk (https://youtu.be/aTxufTKfrYk)

So, unless somebody comes up with an argument why DKtronics emulation is really important and a must have, we won't add it.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:54, 08 February 18
At the moment only SSA-1 emulation has been done, but the long term plan is to have DKTronics emulation too. At the moment I am making some changes so that the firmware can be updated via a USB cable. That will allow for updates after the hardware has been released.

That's great! Yes, then we should add DKtronics emulation later on - or if people really want it badly, we can add it right away.

@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) - or mails / posts just crossed  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:59, 08 February 18
No, we just posted in parallel. I hope that with the USB port that we can still add more stuff (including DKTronics emulation) later. I know that it wasn't as well supported as the SSA-1, but all the hardware is there, it's just a matter of coding it, so it technically "for free".

Glad that fixed the SSA problem, there were probably voltage dips when the IO was loaded. The longer wires on the prototype would have made this problem worse too. It may not have happened on a final board, but it's good to know and means we need to keep an eye on the 3V3 current demand.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: robcfg on 10:24, 08 February 18
Thank you, we are getting there!  :)

The CPLD problem with the SSA1 |say command (the LambdaSpeak 2.0 breadboard prototype was loosing allophone bytes) just got fixed, thanks to Bryce, who pointed out that the VCCIO voltage  should not be at 5 V. With an additional voltage regulator on the breadboard that only supplies VCCIO it is working reliably now. So we are good to go with the final version wich will be designed by Bryce.

So far, we have no DKtronics emulation... honestly, I don't think it is worthwhile, because there is less software for DKtronics, and the SSA1 RSX driver is much better than what DKtronics supplied. We have SSA1 emulation. I have both an SSA1 and a DKtronics - BASIC programs that were written for the DKtronics can be ported easily to work with the SSA1 (and hence LambdaSpeak SSA1 emulation). I did that with my Eliza program, which was originally written for DKtronics:

https://youtu.be/aTxufTKfrYk (https://youtu.be/aTxufTKfrYk)

So, unless somebody comes up with an argument why DKtronics emulation is really important and a must have, we won't add it.


Well, thing is it would be nice to have Dk’Tronics support as to be able to use software intended for it without having to modify it first.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 15:36, 08 February 18
Congratulations to all the achievements!  :) :) :)


One idea: Wouldn't it be more easy to do an update from the CPC side? That would save the USB port and the principle of the CPC-Booster could be used. It's ATMega32 also can be updated from the CPC side.


(Ok, there may be few households with a CPC and no PC and special cable to do such an update, but it would just feel better to do everything with the CPC).


One could for example send an special code to the LambdaSpeak port and subsequently send the 'update' data.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 15:54, 08 February 18
Congratulations to all the achievements!  :) :) :)


One idea: Wouldn't it be more easy to do an update from the CPC side? That would save the USB port and the principle of the CPC-Booster could be used. It's ATMega32 also can be updated from the CPC side.


(Ok, there may be few households with a CPC and no PC and special cable to do such an update, but it would just feel better to do everything with the CPC).


One could for example send an special code to the LambdaSpeak port and subsequently send the 'update' data.  :)

It's a bit more difficult from the CPC side. For a start the update file is probably a lot bigger than on the CPCBooster and it means that the user first needs to get the file from the internet to their CPC and a CPC program is needed to flash it and possibly a jumper to put it into programming mode. The USB solution actually only needs 2 resistors and the USB socket, so it's not a major expense and the flashing software is already available for Windows and Linux etc. All you need is a standard USB cable, the entire process is much faster via USB.

Another "safety" feature is that the device can still be reflashed by the user even if the code on the AVR got corrupted during a failed update.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:19, 08 February 18
Some good points.  :)

However the ATmega644 has only 64 KB of Flash, which would fit on a DSK / Disc very easy. Ok, the update would take few minutes probably, but an update is not made very often. Also it doesn't matter if you download an update from internet to the PC or if you just download a DSK.

The big advantage of the 'update by using a CPC' solution would be that you don't need to add hardware. Just add a little function to the AVR code. So it's free of cost! :)

Also CPC users would be enabled to help in developing new / enhanced software for the AVR.

Of course you're right about the safety, that may be better to manage with an external cable, on the other hand just don't change a part of the AVR (one page) which contains the routine for the update process, this would render a CPC update save.

Surely you guys know what and how to do, just sharing my thoughts here. Maybe it can help.

It's an amazing project and I'm sure it will rock the CPC.  :) :) :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 16:59, 08 February 18
The 644 doesn't have USB, I would be swapping to a different processor if I integrate USB updates. However, I doubt we would need more than 64K so extra program space in a bigger µP would probably never get used. Another issue with CPC update even for 64K is that it would be impossible from a bare 464.

CPC users could of course still be involved in AVR programming via USB, but I doubt the source code will be released, so either way this won't be a possibility. The updates would come as pre-compiled HEX files.

Bryce.

Edit: Before Michael gets a heart attack, that I'm thinking of swapping µP again. There is a USB solution for the 644 which would be also an option, using vitual USB firmware. (Which I think is what @gerald (http://www.cpcwiki.eu/forum/index.php?action=profile;u=250) did on the C4CPC?)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: gerald on 17:51, 08 February 18
Edit: Before Michael gets a heart attack, that I'm thinking of swapping µP again. There is a USB solution for the 644 which would be also an option, using vitual USB firmware. (Which I think is what @gerald (http://www.cpcwiki.eu/forum/index.php?action=profile;u=250) did on the C4CPC?)
C4CPC use the AtMega32U4 which have a hardware USB 2.0 low/high speed device peripheral. It's a 32k flash part, with 4k reserved for the bootloader. It's SMD only and you can get it in smaller (ie less io) package or with16k flash.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 18:02, 08 February 18
So, unless somebody comes up with an argument why DKtronics emulation is really important and a must have, we won't add it.


If LambdaSpeak is using some type of FPGA or similar, then the only argument I have is that the SSA-1 and DkTronics are pretty much the same and all software could work on both if you change the port used in the software.  The same allophones etc are supported in both, they have a slight sound difference perhaps due to some type of filters used? That i am unsure.  If LambdaSpeak can cater for reading of both ports simultaneously then it would just work with all DkTronics software and SSA-1.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:03, 08 February 18
If LambdaSpeak is using some type of FPGA or similar, then the only argument I have is that the SSA-1 and DkTronics are pretty much the same and all software could work on both if you change the port used in the software.  The same allophones etc are supported in both, they have a slight sound difference perhaps due to some type of filters used? That i am unsure.  If LambdaSpeak can cater for reading of both ports simultaneously then it would just work with all DkTronics software and SSA-1.


Yes, both SSA1 and DKtronics used the same chip, the difference is in software mostly I think. The SSA1 driver has a real text-to-allophone synthesizer, whereas in DKtronics software you will have to work with allophones directly, or use some predefined words from a lexicon of fixed words - of course, this can just be ellivated by having a more sophisticated driver.

LamdaSpeak 1 could already decode a couple of addresses, for SSA1, DKtronics, and had its own native port address range which could be selected with a DIP switch. There were 3 dedicated wires from the address decoder to three ATMega inputs, which could then distinguish for which device (SSA1, DKtronics, native) the request was made.

The current LambdaSpeak 2 prototype breadboard has only one wire from the CPLD to one ATMega input, which is shared for SSA1 and native mode, and the current mode of the device is used to decide what to do with the IO request.

Bryce, we can support DKtronics, but I think it would be safer if we had a separate, dedicated wire from the CPLD for DKtronics IO address, since DKtronics and SSA1 are so similar in terms of protocol. With a shared wire from the CPLD, there is the danger that DKtronics software recognizes the SSA1 emulation, and vice versa, and then it will not work properly, as the protocols are slightly different.

So, if I can get one more track / trace on the PCB (I know, it is already a layout nighmare probably) we can do that.


Firmware side should be fairly easy, indeed. Almost copy and paste from SSA1 code, only the busy and load request bits etc. need to be set a little bit differently.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:15, 08 February 18
C4CPC use the AtMega32U4 which have a hardware USB 2.0 low/high speed device peripheral. It's a 32k flash part, with 4k reserved for the bootloader. It's SMD only and you can get it in smaller (ie less io) package or with16k flash.


That means it cannot hold more than 32k firmware? That would be too small for us indeed. Current firmware size is about 40 k. It's mainly the firmware image for the Epson chip that takes up most of the space in PROGMEM. LambdaSpeak driver itself is only 16 k or so.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 19:19, 08 February 18
"The SSA1 driver has a real text-to-allophone synthesizer" are you sure that is done in hardware? I always thought that was software. If it is more than just letting all software not care which speech synth is present and working (since sending allophones to their individual ports just works the same), I would agree, not worth supporting the dkTronics, but... if it is almost no effort it can only be a good thing.  The CPC Wiki page says only Jump Jet works with DkTronics (I didn't even know that).  In the end, it is easy for software to support Lambda, SSA-1 and DkTronics anyway.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:52, 08 February 18
"The SSA1 driver has a real text-to-allophone synthesizer" are you sure that is done in hardware? I always thought that was software.



Yes, with driver I mean the RSX DKtronics software. Neither SSA1 nor DKtronics have a firmware in the hardware, really (ok, the SPO256 chip has, but that is the same for both devices).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:55, 08 February 18
The differences between the 2 are explained here
http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer (http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 22:22, 08 February 18
Bryce, we can support DKtronics, but I think it would be safer if we had a separate, dedicated wire from the CPLD for DKtronics IO address, since DKtronics and SSA1 are so similar in terms of protocol. With a shared wire from the CPLD, there is the danger that DKtronics software recognizes the SSA1 emulation, and vice versa, and then it will not work properly, as the protocols are slightly different.

So, if I can get one more track / trace on the PCB (I know, it is already a layout nighmare probably) we can do that.

 :picard: We did have three seperate signals from the CPLD to the AVR, one for each mode. YOU told me to go to a one wire system.  :D In fact, I think my last version of the schematic probably still has them in. I think your reason was that scanning these inputs meant that the AVR wouldn't reply to the CPC fast enough.

Regarding Firmware in the originals. There were two versions of the DKTronics, one with the RSX's on a ROM in the device and one where you had to load them from tape.

As far as µP with 64K and USB is concerned, there's the ATxMEGA64aU4, which is the same footprint, but with 64K. However, it's a 3.3V part, so we may need to look at whether it would require any additional level-shifting for any of its i/o. @gerald (http://www.cpcwiki.eu/forum/index.php?action=profile;u=250): The final design has a TQFP µP because the EPSON speech chip is too.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 23:43, 08 February 18
  We did have three seperate signals from the CPLD to the AVR, one for each mode. YOU told me to go to a one wire system.   In fact, I think my last version of the schematic probably still has them in. I think your reason was that scanning these inputs meant that the AVR wouldn't reply to the CPC fast enough.


Right, seems I underestimated the desire for such a mode, and with only SSA1 mode and native mode there is no problem sharing the line.

Yes, I was against the idea of triggering / selecting the mode automatically based on incoming IOREQ(device), because changing the modes is not done so easily, i.e., the Epson needs to be reconfigured, and that can take a while. In the meantime, we will have lost the byte from the port, or it will make the firmware quite complex (i.e., buffer the bytes, then switch modes, ...) I didn't want to go there. This is why we said you have to select the mode with a control byte, and then LamdaSpeak is in that mode (SSA1, native, now: also DKtronics) until it is changed.

So, I still want to maintain the interal modes / states, but of course I can simply add the second line from the address decoder such that SSA1 and DKtronics can be clearly distinguished. Still, the mode has to be activated first, using some control byte, and not be selected automatically based on port address. (Well, maybe even this is possible, if the software first checks "in a friendly way" if DKtronics or SSA1 is present, i.e., by sending the 0 allophone or the like, as many games do, and then they check for the response on the port).

I'll do that  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 23:50, 08 February 18
As far as µP with 64K and USB is concerned, there's the ATxMEGA64aU4, which is the same footprint, but with 64K.


@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225), should I be getting this one for prototyping?


https://www.ebay.com/itm/Atmel-AVR-XMEGA-64-pin-A3U-A3BU-384C3-USB-development-board/131165712934?hash=item1e8a15f226:m:m2ulWYekxiIfnQB1bRzCDLQ
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 10:07, 09 February 18
I'm not sure we need to yet. Let's check how similar the chips are and if we can blindly port the data over.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:41, 09 February 18
I'm not sure we need to yet. Let's check how similar the chips are and if we can blindly port the data over.



All right.

Btw, DK'tronics emulation is in. I have used another wire from the CPLD - PC5 (PC6 is reset, PC7 is native / SSA1 IO request). Interestingly, I have had a hard time using PC2 to PC5 as inputs - turns out JTAG debugging is enabled by default on the ATmega 644s I had bought! Took me a while to figure out how to disable JTAG in order to use these pins as ordinary inputs. All other pins are taken by now - only 3 PINC pins left.  :P

So far, I tested with my BASIC Eliza above which was originally written for DKtronics (for the video, I had ported it to SSA1). So, BASIC programs written for the DKtronics are working fine.

I still need to check the DKtronics ROM / tape software now... does anybody have a link to the DKtronics RSX driver on DSK?

http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer (http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer)


has the tape and ROM only. Will test this weekend and post a video.
Title: Re: New &quot;Next Generation Speech Synthesizer&quot; for the CPC 464
Post by: Bryce on 20:20, 09 February 18



All right.

Btw, DK'tronics emulation is in. I have used another wire from the CPLD - PC5 (PC6 is reset, PC7 is native / SSA1 IO request). Interestingly, I have had a hard time using PC2 to PC5 as inputs - turns out JTAG debugging is enabled by default on the ATmega 644s I had bought! Took me a while to figure out how to disable JTAG in order to use these pins as ordinary inputs. All other pins are taken by now - only 3 PINC pins left.  [emoji14]

So far, I tested with my BASIC Eliza above which was originally written for DKtronics (for the video, I had ported it to SSA1). So, BASIC programs written for the DKtronics are working fine.

I still need to check the DKtronics ROM / tape software now... does anybody have a link to the DKtronics RSX driver on DSK?

http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer (http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer)


has the tape and ROM only. Will test this weekend and post a video.

Don't you have a ROMBoard/MegaFlash type device to use the DKTronics ROM?

Bryce.

Gesendet von meinem Motorola DynaTAC 8000x mit Tapatalk

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:27, 09 February 18
As far as µP with 64K and USB is concerned, there's the ATxMEGA64aU4, which is the same footprint, but with 64K.


Unfortunately, it seem XMega is a no go for me...
http://www.avrfreaks.net/forum/atmega-vs-atxmega (http://www.avrfreaks.net/forum/atmega-vs-atxmega)
Would require almost complete reimplementation it seems.
All the features that I am using, TIMER, watchdog, interupts, SPI, ...
diable JTAG, ... will need to be rewritten.

So, we would have to stay with ATMega, no XMega please.

But I am open to discussion - is there anybody here who as ported ATMega code to XMega before? Basic IO is simple of course, but the other stuff... see above.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:32, 09 February 18
DKTronics ROM?


Weekend. With XMem.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: pelrun on 05:46, 10 February 18
How easy it is to port to a new microcontroller depends mostly on how you structured your code. I recently ported an AVR device over to STM32 and most of the work was in refactoring the original code to separate the hardware-specific implementation from the application code. Once that was done, providing an equivalent ARM implementation for the peripherals was relatively easy.


XMega is obsolete these days, and is full of hardware bugs - so it's probably better to consider another architecture if you decide AVR isn't sufficient.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: pelrun on 05:58, 10 February 18
Alternatively, if the main problem is the flash is filled up with a ROM image for the EPSON chip (i.e. data that the AVR itself doesn't use), then how about adding a cheap serial flash ROM to hold it instead?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:55, 10 February 18
XMega is obsolete these days, and is full of hardware bugs - so it's probably better to consider another architecture if you decide AVR isn't sufficient.

... you mean more obsolete than Z80?  ;) I thought XMega was introduced in 2010... I think you mean ATMega?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:03, 10 February 18
How easy it is to port to a new microcontroller depends mostly on how you structured your code.

It think most of the work is in configuring all the hardware registers. Sure, you can hide and structure all this behind macros and function calls, i.e., "configureSPI", (and I did that), but still, the work is IN the functions, not in structuring in functions.

I will need many hours to figure out how to configure SPI on an XMega. Or how to set up overflow timer interrupt. etc. These hardware register things are very specific to a certain MCU (even within the ATMega family).

Even if in principle all these features will also be available on the XMega, configuring the hardware registers correctly will take days for a beginner without experience on that platform. I know how long it took me to learn that for ATMega  :D

So, that seems to be a lot of work only for supporing a feature such as firmware updates via USB (and I am not sure if there will be many firmware updates anyway - I hope we get it mostly right from the beginning, then there wouldn't be a need for a lot of updates). Not saying that it is not a great idea; I am sure Bryce is looking into various ideas for realizing it. I am just saying that I don't want to switch to a completely different platform just for this. But I sure like the firmware update idea!
 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: pelrun on 12:54, 10 February 18
Obsolete as in there's zero advantage to choosing an xmega instead of Atmel's ARM chips. They still make them to support existing designs, but you'd be ill-advised to make something new with one. The ATmegas aren't entirely obsolete only because people still want to make 5V-based designs; to move to Xmega requires changing over to 3.3v - and if you're already doing that it's cheaper and better to switch to ARM at the same time.

And my "structuring" point is that there shouldn't be *any* "configuring hardware registers" in your application code. It shouldn't care how you send a byte to an SPI device, just that it wants to send one. That not only significantly improves the portability of your code, it also makes the code self-documenting. (A line that says "spi_write(data)" tells you more than "SPDR = data; while(!(SPSR & (1<<SPIF) ));", even if that's ultimately what gets done.)

Heck, on STM32 the dev tools *autogenerate* nearly all my hardware driver code (it's not perfect, but it's a good start). I just needed to write a shim that took the parameters passed to my hardware abstraction layer and sent them to the platform API. Stuff writing all that low-level bitbashing from scratch every time.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:32, 10 February 18
And my "structuring" point is that there shouldn't be *any* "configuring hardware registers" in your application code. It shouldn't care how you send a byte to an SPI device, just that it wants to send one. That not only significantly improves the portability of your code, it also makes the code self-documenting.

Indeed, most of that is in terms of macros and inline functions and #ifdef's in the header files. I did all that. The main point still being - somebody STILL has to write that header file and configuration file :-) Even with Arduino (to certain extent, they are able to abstract XMega and ATMega into one!), sometimes hardware registers need to be configured... and we all know how nasty C code gets with all that conditional compilation. So, I get all that, but it also adds a level of complexity which can backfire and "don't care hardware abstraction" on that level is an illusion, really.

Somebody has to care for the hardware details :-) I guess that's also a difference between application developer and embedded systems developer. Hey, I am well aware of abstraction, I was programming in Common Lisp mostly for the last 20 years.  ;D
Title: Re: New &quot;Next Generation Speech Synthesizer&quot; for the CPC 464
Post by: LambdaMikel on 18:55, 10 February 18
Indeed, most of that is in terms of macros and inline functions and #ifdef's in the header files. I did all that. The main point still being - somebody STILL has to write that header file and configuration file :-) Even with Arduino (to certain extent, they are able to abstract XMega and ATMega into one!), sometimes hardware registers need to be configured... and we all know how nasty C code gets with all that conditional compilation. So, I get all that, but it also adds a level of complexity which can backfire and "don't care hardware abstraction" on that level is an illusion, really.

Somebody has to care for the hardware details :-) I guess that's also a difference between application developer and embedded systems developer. Hey, I am well aware of abstraction, I was programming in Common Lisp mostly for the last 20 years.  ;D

So I totally agree that there should be minimal if none hardware details and registers in the application code itself, but nonetheless that still means that I will have a very large amount of work in the hardware abstraction layer (HAL) if I switch to a different MCU. Unfortunately, if you are the person writing the HAL and the application code yourself, then you are the one who has the work  :P

Sent from my ZTE B2017G using Tapatalk
Title: Re: New &quot;Next Generation Speech Synthesizer&quot; for the CPC 464
Post by: LambdaMikel on 19:08, 10 February 18


Heck, on STM32 the dev tools *autogenerate* nearly all my hardware driver code (it's not perfect, but it's a good start). I just needed to write a shim that took the parameters passed to my hardware abstraction layer and sent them to the platform API. Stuff writing all that low-level bitbashing from scratch every time.

But that is one MCU family, right? Here we are talking about hardware abstraction over different families I think.  Xmega and atmega seem to be quite different. So it is more like for Arduino I think where you want to have common abstractions for ATMega and XMega. But Arduino is also slow... abstraction has its price. For example, many people noticed that the Arduino PIN IOs are significantly slower than the native ATMega / XMega ones. Of course, that can be avoided if you are the person writing the Hardware Abstraction Layer, but then you are also the person that has the work.

Sent from my ZTE B2017G using Tapatalk
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: pelrun on 03:30, 11 February 18
(Apologies for the big post. Also, don't come away from this thinking I'm ordering you to do it this way, I'm just trying to impart some of my own experience in case it proves useful.)

There are multiple ways of doing conditional compilation. #ifdefs are messy, as you say, hard to read, difficult to maintain, and easy to get wrong. I much prefer putting the hardware specific code into a one or more completely separate files for each platform and only compiling/linking in the appropriate ones for the current build - that also makes refactoring far easier (because if you find yourself writing direct hardware access code in a file that should be application code only, you automatically know it needs to move, instead of trying to keep track of what set of #ifdefs need to wrap it.)

But that is one MCU family, right? Here we are talking about hardware abstraction over different families I think.

I modified a codebase that was originally bitbashing AVR all through the code, and now compiles on both AVR *and* ARM. There's now two files included by the orignal Makefile that are the only place that includes AVR-specific code (one for each of the 3 AVR boards supported, and another that holds AVR code common to all 3) and a separate ARM project that supplies it's own implementation of those functions and includes everything except the AVR files.

Quote
But Arduino is also slow... abstraction has its price. For example, many people noticed that the Arduino PIN IOs are significantly slower than the native ATMega / XMega ones. Of course, that can be avoided if you are the person writing the Hardware Abstraction Layer, but then you are also the person that has the work.

Abstractions aren't inherently slow, and often they can be completely zero cost. The arduino digitalWrite functions are horribly slow because of how they were designed, not because they're an abstraction; there are direct replacements with identical semantics that are thin wrappers around the direct hardware access and as fast as doing it yourself.

Also, when I say "Hardware Abstraction Layer", I don't mean you have to write a full general-purpose library that wraps all the peripherals in a platform-agnostic manner (let the manufacturer do that). It's just choosing where to cut through the code so the application code is always separated from the hardware implementation by a function call, and (as mentioned earlier) ideally in different files. It doesn't even have to be at the peripheral level - it can be much higher. And it doesn't have to involve any more work than choosing function names (at least for your original platform) and moving code into those new functions. Done right it can actually *save* you effort, because you waste less time chasing bugs/juggling messy code.

In a trivial example:

Code: [Select]
void dtvlow_state_off(void)
{
  DTVLOW_DATACLK_DDR   &= ~(DTVLOW_DATA_MASK|DTVLOW_CLK_MASK);
  DTVLOW_DATACLK_PORT  |=   DTVLOW_DATA_MASK|DTVLOW_CLK_MASK;
  DTVLOW_ACKRESET_DDR  &=  ~DTVLOW_ACK_MASK;
  DTVLOW_ACKRESET_PORT |=   DTVLOW_ACK_MASK;
}

became

Code: [Select]
void dtvlow_state_clear(void){
  dtvlow_rst(1);
  dtvlow_data(0b111);
  dtvlow_clk(1);
  dtvlow_ack(1);
}

and a bit of the hardware side (in different files):

AVR:
Code: [Select]
void dtvlow_data(uint8_t val) {
  uint8_t out;
  uint8_t data = val&0x07 << DTVLOW_DATA_SHIFT;
  DTVLOW_DATACLK_DDR &= ~DTVLOW_DATA_MASK;
  DTVLOW_DATACLK_DDR |= (~data) & DTVLOW_DATA_MASK;
  out = DTVLOW_DATACLK_PORT;
  out &= ~DTVLOW_DATA_MASK;
  out |= data;  DTVLOW_DATACLK_PORT = out;
}


ARM:
Code: [Select]
void dtvlow_data(uint8_t val)
{
  HAL_GPIO_WritePin(GPIOB, UP_Pin, val&1);
  HAL_GPIO_WritePin(GPIOB, DOWN_Pin, val&2);
  HAL_GPIO_WritePin(GPIOB, LEFT_Pin, val&4);
}


The abstraction I chose hid any indication that it was done through GPIO, and only exposes the semantics of the connection. It's *slightly* less quick than the original, but combining those register writes didn't provide any useful speedup, and in fact served to *obscure* what the code was trying to do (and the C optimizer can often do a better job collapsing these than you can.) Elsewhere in the same file those 'optimisations' actually hid the fact that the algorithm itself was suboptimal, and teasing it apart allowed me to fix some bugs. Notably, the original code wasn't properly implementing open-drain signalling, and was haphazardly switching between input and output mode in order to get something that worked, and I replaced it with something that does it correctly and consistently. (on the STM32 you just set a config flag on the pin and forget about it.) After I did that, it turned out that a few different functions were actually functionally identical, but implemented differently - this redundancy was all cleaned up (which is why "dtv_state_off" became "dtv_state_clear".)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 03:50, 11 February 18
Also, when I say "Hardware Abstraction Layer", I don't mean you have to write a full general-purpose library that wraps all the peripherals in a platform-agnostic manner (let the manufacturer do that). It's just choosing where to cut through the code so the application code is always separated from the hardware implementation by a function call, and ideally in different files (which naturally enforces the separation.) It doesn't even have to be at the peripheral level - it can be much higher. And it doesn't have to involve any more work than choosing function names (at least for your original platform) and moving code into those new functions.

Yes, I like that. The Arduino libraries are a bad example, probably, but I can also see how that happens - the more platforms you have to support, the more effort it also becomes to maintain such a HAL layer that does a good job among all platforms. And I guess then they also chose at some point the "good enough" principle... after all, its all opportunity costs and money and effort.

Especially for a hobby project :-) 

I have similar abstractions, btw. For example, instead of writing directly to the PORTx's, I have an inline function / macro "TO_CPC(value)". Same for reading etc. My code supports the different PCB version that I have made over the last year (LambdaSpeak 1.5., Lambda 1.8, LambdaSpeak 1.9, and LamdaSpeak 2.0), some of which use different PIN layouts etc. without having to change anything in the application code (you only set a #define LS<Version> in the code, the rest is handled by conditional includes, each platorm / PCB version has its own .h file that defines the PIN configurations etc.) Yes, that saves a lot of work between different versions in the application code, and of course makes it much more maintainable.

I believe I could also add an implementation of "TO_CPC(var)" and "FROM_CPC(var)" for other MCUs, but I will have to write these macros. Where this will be the easy part, other things are not that easy. For example, it took me 40 minutes to figure out how to disable JTAG on the Atmega 644... the first 10 Google hits didn't compile for me ;-) So, there is of course now a function DISABLE_JTAG in the 644 header file...  but figuring that out for a different CPU will again take 40 minutes. These things just add up.

This is what I mean. I agree with everything you wrote, one should program / develop like that. Having  code that compiles even on different MCU families / platforms is a great achievement!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: pelrun on 04:26, 11 February 18
Yes, I like that. The Arduino libraries are a bad example, probably, but I can also see how that happens - the more platforms you have to support, the more effort it also becomes to maintain such a HAL layer that does a good job among all platforms. And I guess then they also chose at some point the "good enough" principle... after all, its all opportunity costs and money and effort.

Also, the arduino libraries were written with the intent of being totally noob friendly, not being a high-performance environment for professional code. And they use C++ in a way that has to do a large amount of redundant work at runtime, even though you could write the same code in a way that all the abstractions collapse at compile time and the runtime code is almost optimal (but this is deep wizardry in C++.)

I'm actually really interested in where the new Rust language is going, because it's designed as a C/C++ replacement with rock-solid and straightforward type/memory safety that all magically collapses to nothing during compilation (you put all the error checks in the source code, and the compiler proves which ones are unnecessary for *each* call and drops them!) - unfortunately the embedded system support is still under heavy development.

Quote
Especially for a hobby project :-) 

But this is a product! You're already putting in the effort to make it a quality piece of kit, so don't think of it as "just a hobby project".

Quote
I believe I could also add an implementation of "TO_CPC(var)" and "FROM_CPC(var)" for other MCUs, but I will have to write these macros.

Macros are a *really crappy* replacement for true functions, and I'd *strongly* suggest changing them over, even if you do nothing else. You can still get inlining if you absolutely must, but it's almost always unnecessary, even on an AVR.

And you don't have to write implementations for any other MCU than the one you're currently using, because you're in control of the hardware. But if you at least keep "separation of concerns" in mind from the start, it's not nearly as painful if/when you hit the limits of your current chip choice and are forced to change the hardware design. At which point, you're going to have to write the new code *anyway*.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:47, 11 February 18
First steps with the DKtronics emulation:

https://youtu.be/FYlcykW1D4A (https://youtu.be/FYlcykW1D4A)

It seem that also Roland in Space and Alex Higgens World Pool support DKtronics speech.
Could be added to

http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Gryzor on 20:04, 11 February 18
Watching the vid a few pages back had me thinking of this:


https://www.youtube.com/watch?v=Fc7xF17O-Ck


...until I heard the phrase coming out of it :D


The singing part is just excellent.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:51, 11 February 18
out &fbee,&c7...  8)
has about 25 quotes
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:09, 11 February 18
:picard: We did have three seperate signals from the CPLD to the AVR, one for each mode. YOU told me to go to a one wire system.  :D In fact, I think my last version of the schematic probably still has them in. I think your reason was that scanning these inputs meant that the AVR wouldn't reply to the CPC fast enough.

Changed my mind again - LambdaSpeak 1.8 has just been upgraded to also support DKtronics emulation, without adding another line from the decoder.

LambdaSpeak 1.8 has only one line from the address decoder GAL, that triggers the databus input buffer flipflop (a 74LS374), and also goes to an Atmega pin. The GAL now decodes both DKtronics and SSA1 addresses, and it seems that the existing software - including the SSA1 RSX driver and the DKtronics RSX driver - are not confused by that. Since the SSA1 is now seeing the requests being made for a DKtronics, and vice versa, I was concerned that the software might get confused and detect "the other device" and then starts malfunctioning, but fortunately this is not the case. It is good that, in addition to the different ports, SSA1 and DKtronics are also using different "protocols" (i.e., ready bits etc) Otherwise, that could have been problematic.

That means that the LambdaSpeak 1.8 board can do DKtronics emulation also (even though it wasn't designed to do it), with one shared IO request wire. A second wire would have been problematic anway, and I would have needed another 74LS32 Or gate in order to trigger the input buffer flipflop from 2 separate GAL outputs (no more pins left for another dedicated wire from the GAL to the input buffer flipflop clock).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:55, 12 February 18
I'll just sit here and drink some coffee until you have stopped sounding like my wife changing your mind every 5 minutes :D

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:43, 12 February 18
I'll just sit here and drink some coffee until you have stopped sounding like my wife changing your mind every 5 minutes :D

The breadboard has 2 wires, and that's fine, but not strictly necssary, so let's keep the 2 wires for LambdaSpeak 2.0, why not. It is certainly the "safer" design, even though it doesn't seem to matter.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:44, 12 February 18
Using smaller CPLD XC9572XL VQ64 now.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:51, 13 February 18
Don't you have a ROMBoard/MegaFlash type device to use the DKTronics ROM?

Tested now:
https://youtu.be/wxNSlEyfPMc (https://youtu.be/wxNSlEyfPMc)
Also shows different speak rates and voices.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 16:08, 13 February 18
LambdaSpeak 1.8 has only one line from the address decoder GAL, that triggers the databus input buffer flipflop (a 74LS374), and also goes to an Atmega pin. The GAL now decodes both DKtronics and SSA1 addresses, and it seems that the existing software - including the SSA1 RSX driver and the DKtronics RSX driver - are not confused by that. Since the SSA1 is now seeing the requests being made for a DKtronics, and vice versa, I was concerned that the software might get confused and detect "the other device" and then starts malfunctioning, but fortunately this is not the case. It is good that, in addition to the different ports, SSA1 and DKtronics are also using different "protocols" (i.e., ready bits etc) Otherwise, that could have been problematic.

That means that the LambdaSpeak 1.8 board can do DKtronics emulation also (even though it wasn't designed to do it), with one shared IO request wire. A second wire would have been problematic anway, and I would have needed another 74LS32 Or gate in order to trigger the input buffer flipflop from 2 separate GAL outputs (no more pins left for another dedicated wire from the GAL to the input buffer flipflop clock).


That is correct, there is no confusion between them and software is in fact quite easy to port from one to the other - exactly same logic just different port.  I wonder why DkTronics didn't just use the same ports as Amstrad did with the SSA-1.  On the CPC, both can currently co-exist without confusion too, but there is quite a bit of line noise with 2 speech synths going from a splitter to the audio jack - that is likely a totally separate issue.  With Lambdaspeak, I noticed you have opted for an audio jack on it.  If you wanted (perhaps via a jumper), you could route that audio back to the sound pin on the bus too so that the speech will come out of the inbuilt CPC speaker (or is that an external Power Supply not audio jack?) - this trick also works with an AMDRUM - which I wonder... can you emulate also with the Lamdaspeak?  That would be super-awesome!  It is just an 8bit D/A converter using port FF to play drum machine music.  I think the RAM Music Machine is similar too but that thing has a lot more functions than just the D/A converter.  There is no buffer or anything with the AMDRUM, it just plays as fast or slow as you make the Z80 send data.


https://www.youtube.com/watch?v=0z-jGDOzwGQ (https://www.youtube.com/watch?v=0z-jGDOzwGQ)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:27, 13 February 18
If you wanted (perhaps via a jumper), you could route that audio back to the sound pin on the bus too so that the speech will come out of the inbuilt CPC speaker (or is that an external Power Supply not audio jack?) - this trick also works with an AMDRUM - which I wonder... can you emulate also with the Lamdaspeak? 


The little daughter board is the TextToSpeech click board from MikroElektronika:

https://www.mikroe.com/text-to-speech-click (https://www.mikroe.com/text-to-speech-click)

Bryce is evaluating if he is going to keep the click board solution, or if he will put the Epson IC directly on the PCB (with OpAmp and IN/OUT audio jacks). Bryce, what's your take on the AUDIO output -> CPC speaker part?


Amdrum rocks!! 8) Yes, it indeed sounds quite easy to do - that means, just add a DA converter and let the CPLD decode the Amdrum address? I can try this on my breadboard prototype.

Not sure if Bryce would want to add it though (if it worked).

Do you have a suggestion for a DAC for this experiment?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 20:09, 13 February 18
for me, as an M4 card with SSA-1 and Dk'Tronics and 'if possible' Amdrum capability I'd love to buy at least 1... I recommend a jumper to wire it to the CPC sound pin as some people likely won't want it - but then others will - it will be mono but automatically blend with the CPC audio.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:14, 13 February 18
\I recommend a jumper to wire it to the CPC sound pin as some people likely won't want it - but then others will - it will be mono but automatically blend with the CPC audio.
 

I would like that, too. I am not a big fan of all the wires and external speakers etc. Even if sound quality is less great of course. I guess it depends on whether Bryce wants to do an Audio section, really, or if he is just going to use the click! board. In the former case, it should indeed be as easy as putting a jumper on the board. In the latter, click! board unfortunately does not have audio output other than the jack.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: remax on 22:14, 13 February 18
for me, as an M4 card with SSA-1 and Dk'Tronics and 'if possible' Amdrum capability I'd love to buy at least 1...


I second that


I would like that, too.  I am not a big fan of all the wires and external speakers etc. Even if sound quality is less great of course.
I second that too
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:33, 13 February 18
It is just an 8bit D/A converter using port FF to play drum machine music.  I think the RAM Music Machine is similar too but that thing has a lot more functions than just the D/A converter.  There is no buffer or anything with the AMDRUM, it just plays as fast or slow as you make the Z80 send data.



I am wondering if that could even come "for free" with the current LambdaSpeak hardware. I will try if I can just do this in software on the ATmega 644, and use PWM for the output with a simple filter. That might be fast enough. I mean, the 644 is running at 20 Mhz...
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:24, 14 February 18
... I mostly found CDT Tape Images of Amdrum. Ok, one DSK for the main program, but all the drumkits I found are tapes. Does anyone have the link to DSK files for the drum sets?

@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) - we hae PB4 / OCOB available! That is a PWM pin... I will try if DA conversion will be fast enough in "Amdrum mode" (control byte &E3 ) using PWM. Then, I guess we only need a lowpass filter (RC) at the pin to feed it into an OpAmp if that worked?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:59, 14 February 18
I wonder why DkTronics didn't just use the same ports as Amstrad did with the SSA-1.

Because the DKTronics Speechsynth came out BEFORE the SSA-1. It's hard to copy something that doesn't exist :D

Regarding Audio: My plan is still to have an audio in port so that the stereo output of the CPC can be mixed with the dual mono output of the speech. I can add a jumper to feed it back into the expansion port too if people want that. @LambdaMikel (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2172) : It will most likely be cheaper to put the parts on the PCB rather than use a Clickboard.

Amdrum: The PCB already has everything it needs to emulate the Amdrum, you'd just need to feed a PWM pin from the AVR to the audio amplifier and write lots more code :)

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:15, 14 February 18
Well, maybe it would be better to have an external mixer for better quality. Because mixing up all sound hardware in one line can't work out well. Some card will always be too silent or too loud. It would work with 2 cards in the same line but not with all what we usually have on our CPCs. So yes, use an external mixer board for this.

Just to remember what we got:
- CPC sound port
- LambdaSpeak
- PlayCity
- Digiblaster
- other exotic stuff like MP3 players etc. I don't even want to count

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 16:29, 14 February 18
There is an adjustment on the PCB to balance the Speech output level with the Aux input (designed for the CPC Audio output signal), but what you plug into the Aux-in is up to you the user (Line level only). The output can then be fed to a mixer if you really needed to mix further sources. My Digiblaster version also had this. I don't intend to accomodate ever single possible other CPC expansion. None of the other examples you gave do that either.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:28, 14 February 18
Amdrum: The PCB already has everything it needs to emulate the Amdrum, you'd just need to feed a PWM pin from the AVR to the audio amplifier and write lots more code :)

Right, conceptually, that sounds like 5 to 10 lines of code, extremely trivial. IF - and that is a big IF - the  Atmega will be fast enough to do this while reading values from the port in parallel. It just is a tight loop, with one variable being assigned the current sample value, which then gets PWModulated over OC0B (PB4). Will know soon if that'll work!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:46, 15 February 18
It will mean adding a few more passive components too I think. I'd need a lowpass filter on the PWM line before it goes to the amplifier.

Let's concentrate on the Speech functionality first before we start heading off on a tangent.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:53, 15 February 18
... None of the other examples you gave do that either.

Bryce.


Exactly, so why to bother with it? Leave it to the user to get an mixer / equalizer external if needed. Some will only use one device others will use 3 or 4 Devices.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 17:07, 15 February 18
Because that's how it was done on the SSA-1 and DKTronics Speech Synths and that's what we're emulating.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:57, 16 February 18
Figured out how to do PCM sample playing on OC0B (PB4):
https://youtu.be/tPkwgQiW3GE (https://youtu.be/tPkwgQiW3GE)
If the bytes arrive fast enough from Amdrum, then this might work.
Will try over the weekend. 

The extra loudspeaker is attached using a simple RC (R = 470 Ohms, C = 100 nF) to PB4.
Timer0 has 8 Bit resolution; samples at 8 kHz.
The PCM test is invoked using control byte &C2.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:59, 16 February 18
Sounds better than I was expecting.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:05, 16 February 18
Sounds better than I was expecting.

Yes, surprising, right?
Well, it is a decent littler speaker (Harman/Kardon)  ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:07, 16 February 18
There is one problem, though:
whereas sample playing from PROGMEM works fine (see video above), and is stable, I am having a problem when reading PCM databytes from the CPC.
I did a simple test in BASIC
Code: [Select]
10 a=round(rnd(1)*255)
20 out &ff00,a
30 goto 10
and I simply expected to hear some static random in the speaker. Indeed, this worked, but it is not stable - after 5 seconds of "random PCM noise" the ATMega 644 resets or freezes. Not sure why or what that is!

Can that be a "brown out" or similar? Maybe it wouldn't happen with real PCM samples? This also doesn't happen when I fix the value, I have "10 a = 20" instead of random.

Any idea, anyone?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:10, 16 February 18
PS Amdrum is kind of unwieldy to test with (and I don't have the drum set DSKs... tape is aweful).


Does anybody have a piece of MC code that sends a small PCM sample to &FFxx?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:58, 16 February 18
Here is one more idea for the final version. Regardless of the Amdrum mode (if it will work we don't know yet), I will be adding a LambdaDrum mode. That will work as follows:

@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225), that's also a good scenario for the update facility... people might want to flash it with different drum kits, and we only have space for, probably, 8 to 16 drums on chip left.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 23:00, 16 February 18
If you code it, I'll adapt the hardware for it.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 23:12, 16 February 18
If you code it, I'll adapt the hardware for it.


Great; yes, for LambdaDrum it only needs PB4 and the RC to audio.

For Amdrum, which I am not sure yet because of the PCM byte transmission issue, I had added one more output wire from the ATmega (PC2) to the CPLD. When Amdrum mode gets enabled, the ATmega sets that wire to 1, and this enables decoding of &FFxx on the CPLD side. Then, every IOREQ WRITE on &FFxx triggers the signal for "request recognized" for the ATmega. Not sure yet though if we will need this, as I said, it might not work at all.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 23:14, 16 February 18
Have you still two further pins free for the USB?

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 23:17, 16 February 18
Have you still two further pins free for the USB?



We have PC3, PC4 left... that's it  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 23:28, 16 February 18
Then try not to use them. :)

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 00:32, 17 February 18
Then try not to use them.



It's hard to resist, but I will try hard  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 12:02, 17 February 18
First steps towards Amdrum emulation -
https://youtu.be/5C2N-bqMDOw (https://youtu.be/5C2N-bqMDOw)

Sound quality is still low, unfortunately. Not sure it can be improved.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 05:04, 18 February 18
Sound quality is still low, unfortunately. Not sure it can be improved.

Allright, I figured it out! Sound quality *rocks* now - listen here:
https://youtu.be/upVayBKlnow (https://youtu.be/upVayBKlnow)

@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225), we should definitly add this as feature. And thanks a lot to

for me, as an M4 card with SSA-1 and Dk'Tronics and 'if possible' Amdrum capability I'd love to buy at least 1... I recommend a jumper to wire it to the CPC sound pin as some people likely won't want it - but then others will - it will be mono but automatically blend with the CPC audio.

for suggesting to add Amdrum emulation! That will definitely help to get more people interested.

Actually, the sound quality is so good that I am questioning now whether I should still add LambdaDrum mode (which would have Samples stored in the ATmega).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: robcfg on 10:35, 18 February 18
Amazing!


It’s a lot of work but the results are indeed worth it  8)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 14:03, 18 February 18
wow you guys are good, and FAST, you both put me to shame with my projects as far as getting stuff done... 


I'm actually glad AMDRUM support is there too, it is a piece of hardware although simple, I suspect wasn't very popular.  The software provided with AMDRUM was not great but then when i look at more recent sequencing software and those even built into the MIDI drum machine hardware, they are in fact not that much better.  With AMDRUM support, it will even give 'the option' of having digidrums through that in sync with CPC soundchip or the dual AY board for the MX4, but leave those things for future software developers.  The hardware is cool as it is, and given there is 'some software' usable now for it, opens even more to the World of CPC users.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 14:18, 18 February 18
Does anybody have a piece of MC code that sends a small PCM sample to &FFxx?


err...


something like


ld b,#ff
loop:
ld c,(hl)

out (c),c
inc hl
jr loop



from memory you need nothing more than that to play any sample with the AMDRUM, of course a loop counter... and optional delay
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 15:00, 18 February 18
are you taking orders / pre-orders yet?


And it sounds DAMN GOOD!!!


https://www.youtube.com/watch?v=pBuBxT3YEuI
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 15:29, 18 February 18
PS Amdrum is kind of unwieldy to test with (and I don't have the drum set DSKs... tape is aweful).


Does anybody have a piece of MC code that sends a small PCM sample to &FFxx?


Surely you aren't loading it from tape are you?  It works on DISK unmodified if you use transmat or similar.  Just... you have to remember the drum track names and drumkit names as it doesn't list a disc directory.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:14, 18 February 18

Surely you aren't loading it from tape are you?  It works on DISK unmodified if you use transmat or similar.  Just... you have to remember the drum track names and drumkit names as it doesn't list a disc directory.

Yes, I remember TRANSMAT from the old days... I will put the DSK images somewhere at some point. Glad you like it!!  :)

But I must confess that I indeed loaded from tape a couple of times... it takes about 15 minutes to load drumkit etc.
 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:20, 19 February 18
I wouldn't bother with LambdaDrum, the AmDrum is more than enough and probably wouldn't add anything, just be more work.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Gryzor on 10:19, 19 February 18
Damn those drums sound great! In the first video I was thinking "eh... why bother?", but it turned out just great!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:17, 19 February 18
I wouldn't bother with LambdaDrum, the AmDrum is more than enough and probably wouldn't add anything, just be more work

Right, I think we keep this as a goodie for the first firmware update then.
Well, Amdrum is really a sample player - in that mode, it can play arbitrary 8bit samples. We only need to write an RSX command  |PLAY,"sample.bin". Shouldn't be difficult to write that RSX command. I am still working on the RSX driver anyway, haven't really started yet. But then, since everything is done in firmware, it also istn't really necessary to have an RSX driver.

LambdaDrum has the advantage that it is very easy to write a drum computer or sequencer for it, even in BASIC, because you don't need to send PCM over the port (which is only feasible with MC code of course, and requires some decent programming skills if you want to mix PCM channels - Amdrum mixes three virtual PCM channels, it seems, by looking at the code fragment on the Wiki). For LambdaDrum, the programmer only needs to send one byte to trigger a drum / sample. Of course, that's also less flexible, because the drums / samples are fixed then and require reflashing of the ATmega in order to change.

Let's keep it as a goodie for the first update.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:23, 19 February 18
Damn those drums sound great! In the first video I was thinking "eh... why bother?", but it turned out just great!

Thanks Gryzor. The key to success was to read the ATmega 644 data sheet and ignore every post in AVR forums on that topic and other sources on the web  :laugh:   
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 22:08, 19 February 18
Thanks Gryzor. The key to success was to read the ATmega 644 data sheet and ignore every post in AVR forums on that topic and other sources on the web  :laugh:

That's the great weakness of the internet. It's full of information, but only about 10% of the information is correct. :D

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 22:12, 19 February 18
Same with research papers - 20 years after publication.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 15:10, 20 February 18
I wonder if it would be hard to make soundtrakker work with Amdrum then instead of Digiblaster?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 15:16, 20 February 18
It should work, you'd just have to change the address you were sending the data to.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 17:29, 20 February 18
It should work, you'd just have to change the address you were sending the data to.

Bryce.


something to look at when i get a LambdaSpeak... I thought it was using the printer port, with 8 bit patch and likely some funny logic in there?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:29, 20 February 18
something to look at when i get a LambdaSpeak... I thought it was using the printer port, with 8 bit patch and likely some funny logic in there?


No, it is an IO extension - uses expansion port. M4X.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: kawickboy on 10:54, 21 February 18
DK tronics + SSA-1 + Amdrum in only one card, great job. Amdrum wasn't easy to find in France but in AA each week there ware an advertising for DK Tronics and Amdrum.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Gryzor on 12:53, 21 February 18
Thanks Gryzor. The key to success was to read the ATmega 644 data sheet and ignore every post in AVR forums on that topic and other sources on the web  :laugh:   


Got to pave your own path some times :D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 23:36, 01 March 18
Hi there! How is this great project evolving? Is the ATmega644 Code done? Is there a list of commands? How to program it? Tell, tell, tell  :) :) :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:29, 02 March 18
One more prototype - wanted to wrap up the Amdrum emulation and put it in more durable hardware (the breadboard won't last...). The RC and Amdrum audio output is left top next to the Click! Speech daughter board.

https://youtu.be/E63uH6SpzMs (https://youtu.be/E63uH6SpzMs)

Hope you are enjoying the green monitor - a real classic! It is also powering the card, just checking it works fine that way. So you don't need an 8 A / 40 W PSU to use it  :laugh: That's probably the last prototype from my side  :)

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:01, 02 March 18
Here is the latest list of command bytes; new bytes for PCM test and Amdrum mode:

Code: [Select]
  case 0xFF : process_reset(); break;

  case 0xEF : native_mode_epson(); break;
  case 0xEE : native_mode_dectalk(); break;
  case 0xED : ssa1_mode(); break;
  case 0xEC : dktronics_mode(); break;
  case 0xEB : non_blocking(); break;
  case 0xEA : blocking(); break;
  case 0xE9 : confirmations_on(); break; 
  case 0xE8 : confirmations_off(); break;   
  case 0xE7 : english(); break;
  case 0xE6 : spanish(); break;
  case 0xE5 : fast_getters(); break;
  case 0xE4 : slow_getters(); break;
  case 0xE3 : amdrum_mode(); break;

  case 0xDF : stop_command(); break; 
  case 0xDE : flush_command(); break;
 
  case 0xCF : get_mode(); break;
  case 0xCE : get_volume(); break;
  case 0xCD : get_voice(); break;
  case 0xCC : get_rate(); break;
  case 0xCB : get_language(); break;
  case 0xCA : get_delay(); break;
  case 0xC9 : get_version(); break;
  case 0xC8 : speak_copyright_note(); break;
  case 0xC7 : speak_hal9000_quote(); break;
  case 0xC6 : sing_daisy(); break;
  case 0xC5 : echo_test_program(); break;
  case 0xC4 : echo_test_program_dk(); break;
  case 0xC3 : test_message(); break;
  case 0xC2 : pcm_test(); break;

  case 0xB0 : set_voice_default(); break;
  case 0xB1 : set_voice(1); break;
  case 0xB2 : set_voice(2); break;
  case 0xB3 : set_voice(3); break;
  case 0xB4 : set_voice(4); break;
  case 0xB5 : set_voice(5); break;
  case 0xB6 : set_voice(6); break;
  case 0xB7 : set_voice(7); break;
  case 0xB8 : set_voice(8); break;
  case 0xB9 : set_voice(9); break;
  case 0xBA : set_voice(10); break;
  case 0xBB : set_voice(11); break;
  case 0xBC : set_voice(12); break;
  case 0xBD : set_voice(13); break;
  case 0xBE : set_voice(14); break;
  case 0xBF : set_voice(15); break;

  case 0xA0 : set_volume_default(); break;
  case 0xA1 : set_volume(1); break;
  case 0xA2 : set_volume(2); break;
  case 0xA3 : set_volume(3); break;
  case 0xA4 : set_volume(4); break;
  case 0xA5 : set_volume(5); break;
  case 0xA6 : set_volume(6); break;
  case 0xA7 : set_volume(7); break;
  case 0xA8 : set_volume(8); break;
  case 0xA9 : set_volume(9); break;
  case 0xAA : set_volume(10); break;
  case 0xAB : set_volume(11); break;
  case 0xAC : set_volume(12); break;
  case 0xAD : set_volume(13); break;
  case 0xAE : set_volume(14); break;
  case 0xAF : set_volume(15); break;

  case 0x90 : set_rate_default(); break;
  case 0x91 : set_rate(1); break;
  case 0x92 : set_rate(2); break;
  case 0x93 : set_rate(3); break;
  case 0x94 : set_rate(4); break;
  case 0x95 : set_rate(5); break;
  case 0x96 : set_rate(6); break;
  case 0x97 : set_rate(7); break;
  case 0x98 : set_rate(8); break;
  case 0x99 : set_rate(9); break;
  case 0x9A : set_rate(10); break;
  case 0x9B : set_rate(11); break;
  case 0x9C : set_rate(12); break;
  case 0x9D : set_rate(13); break;
  case 0x9E : set_rate(14); break;
  case 0x9F : set_rate(15); break;

  case 0x80 : set_buffer_delay_default(); break;
  case 0x81 : set_buffer_delay(1); break;
  case 0x82 : set_buffer_delay(2); break;
  case 0x83 : set_buffer_delay(3); break;
  case 0x84 : set_buffer_delay(4); break;
  case 0x85 : set_buffer_delay(5); break;
  case 0x86 : set_buffer_delay(6); break;
  case 0x87 : set_buffer_delay(7); break;
  case 0x88 : set_buffer_delay(8); break;
  case 0x89 : set_buffer_delay(9); break;
  case 0x8A : set_buffer_delay(10); break;
  case 0x8B : set_buffer_delay(11); break;
  case 0x8C : set_buffer_delay(12); break;
  case 0x8D : set_buffer_delay(13); break;
  case 0x8E : set_buffer_delay(14); break;
  case 0x8F : set_buffer_delay(15); break;
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:21, 02 March 18
Cool! Thank's! Let's see if we can make something out of it.  :) :) :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:07, 03 March 18
The LambdaSpeak Prototype Gallery, from top left to bottom right: 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: 00WReX on 09:22, 03 March 18
Cool to see how it progressed.  :)

Cheers,
Shane
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: robcfg on 09:54, 03 March 18
It has been quite a journey!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:54, 03 March 18
It has been quite a journey!

Indeed, but very profitable for OshPark  :laugh:
And then, the journey is only about to start...  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 13:40, 03 March 18
To continue the story of this great device with cute AI I took the information from LambdaMikel and created some kind of Beta-RSX-expansion. Please refer to the attached DSK.  8)


- To start the RSX expansion type run"disc

- To use !SPEAKSCREEN please set blocking mode with !BLOCKON before.

- Constructive comments are welcome

- Some kind of !PLAY commend could be added for the Amdrum mode, if needed?

- This is not the final version (which will contain automated relocation and an additional ROM).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:57, 03 March 18
To continue the story of this great device with cute AI I took the information from LambdaMikel and created some kind of Beta-RSX-expansion. Please refer to the attached DSK.  8)

WOW!!!!  :D I can't believe  :o there an RSX extension for LS!!   8) I have to check this out immediately... will post soon. That is great!!! Thanks!!! So cool.  8) I gotta go somewhere now but report back in a couple of hours. Until then!!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 04:39, 05 March 18
I am very impressed by how smoothly GunHead's RSX driver works - out of the box!
I recorded a session such that folks can get an idea about this awesome driver and what it has to offer; the audio in the video is not properly synchronized with the video, sorry for that. I used separate tracks this time and didn't synchronize / cut them corrrectly. Anyhow, should be good enough to get an idea:

https://youtu.be/CsaE9JfhJ20 (https://youtu.be/CsaE9JfhJ20)

Great work, GunHead!!  8) :) Thanks a lot!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 12:55, 06 March 18
It's a wonderful expansion.  :) :) :)  Now, I try to add a !PLAY (for a sample) command. The JavaCPC does provide a Amdrum, so I can test all that.  :)  Will post an update in some time.  :)


EDIT: Here we go... enjoy!  ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:48, 06 March 18
Looking very much forward to that, GunHead!  8)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:47, 10 March 18
GunHed / TFM, your sample player |PLAY command works great!

https://youtu.be/RSu7fPpDmCQ (https://youtu.be/RSu7fPpDmCQ)

Thanks a lot for this, that is fantastic!  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 01:26, 13 March 18
Oh, thanks! Awesome Vid! I'm glad it all works since I don't own an Amdrum.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 19:05, 14 March 18
If there are no additional feature requests I will create a final version of the RSX expansion.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 07:57, 15 March 18
Hi TFM,

right now I can't think of anything - your driver is already awesome! Maybe anybody else?
Relocatable would nice, of course  :) Thanks for all your awesome work, this is great! :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:48, 15 March 18
Too much kind words. Was easy to make some RSX because the wonderful expansion is doing all the work.


So in few days I will post the version 1.0. And after the release of the hardware we can collect some additional ideas too.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:45, 16 March 18
Too much kind words. Was easy to make some RSX because the wonderful expansion is doing all the work.

So in few days I will post the version 1.0. And after the release of the hardware we can collect some additional ideas too.  :)

Thanks, TFM.

Yes, getting the hardware out would be nice at some point... if we should not be able to make it a "real product" (due to time, money, other reasons, ...), then we should at least make the firmware (HEX files) and PCB layouts that I have so far available (GitHub, OshPark), such that the people that want one can build it themselves. Let's face it - we are not going to make money from it anyway - that's not the intent of this project  ;)  Being able to purchase a fully assembled version is more like a "community service" I would say.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 10:41, 19 March 18
The hardware will definitely be available to buy fully built. But patience is required, better to do it properly the first time. The addition of so many new features has obviously moved the goalposts a bit, but be sure, you will be able to buy this in the near future.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 17:47, 19 March 18
It's always good advice to fully test everything before shipping.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:42, 20 March 18
It's always good advice to fully test everything before shipping.  :)

Got to finish designing it first! :D

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 22:40, 28 March 18
Finish! The first release version of the automatic relocatable RSX expansion for the superb LambdaSpeak expansion card is now available.

I hold the DSK image on my homepage http://www.futureos.de (http://www.futureos.de) - See download section and scroll down the page.

Comments and ideas are welcome.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:58, 29 March 18
Perfect! Great to know that your awesome LambdaSpeak driver has a permanent home @ FutureOS  :)
I will try it out this weekend - looking forward to it.

In the meantime, I have experimented with a simple LM741 2 channel summing audio mixer to recover the mixed signals (one from PCM, one from speech chip). Sounds pretty good, and loud enough. I will make one more PCB that will also have the audio mixer and 2 audio jacks.
In the picture below, you can see the LM741 in front.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 14:23, 29 March 18

Very interesting!  :)

So, this does have two auto-exits?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 17:15, 29 March 18
BTW: There is a direct link to the software:
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip

Today I added a first version of a ROM being compatible with everything (except that it needs the usual 4 bytes for RSX chain connection like every background ROM). It doesn't display a sign-on message at the moment, never mind, fancy stuff comes later ;-)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:55, 30 March 18
BTW: There is a direct link to the software:
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip (http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip)

Today I added a first version of a ROM being compatible with everything (except that it needs the usual 4 bytes for RSX chain connection like every background ROM). It doesn't display a sign-on message at the moment, never mind, fancy stuff comes later ;-)

A ROM ?!!  Yeah!!  8) :D That is fantastic!! Can't wait to check it out.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:27, 30 March 18
Very interesting!  :)

So, this does have two auto-exits?

Well, it is a bit weird - the output from the click! speech board gets mixed together with the Amdrum PCM output from the ATMega pin.
Unfortunately, the click! speech board does not have audio out on the pins, only over the jack, so one needs to connect a little 2 inch mono audio cable to the LambdaSpeak audio input. From there it gets mixed with Amdrum output, the mixed signals "recovered" using a summing LM741, and then the mixed mono signal is available for output at the second LambdaSpeak audio jack... I did that because not everybody has an audio mixer, and there was still space on the PCB. Now it is full  :D Despite that, always wanted to learn more about audio.

I did not add a jumper / option to force the mixed audio back onto PIN 1 for CPC internal audio amplifier, see other thread. 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:56, 31 March 18
BTW: There is a direct link to the software:
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip (http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip)

Today I added a first version of a ROM being compatible with everything (except that it needs the usual 4 bytes for RSX chain connection like every background ROM). It doesn't display a sign-on message at the moment, never mind, fancy stuff comes later ;-)

I checked it out, and it worked nicely for me on my 464 with XMem. Great ROM!! :)

Yes, ROM initialization message would be nice. Also, I noticed that it slows down the boot process, because it send the LambdaSpeak initialization control bytes when it fires up it seem (fast getters, 20 ms etc) Maybe it would be better to call the initialization only when the first command is sent, or have a dedicated |init command.

I also tried having the DKtronics ROM in parallel, and that also seemed to work. I could put LambdaSpeak into |dktronics mode using your ROM, and then loaded the |dktronics driver using |speak. I need to do some more testing though. A |lambdahelp would be good, only to list the available commands, without further explanation or options.

Great ROM!  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:57, 31 March 18
I checked it out, and it worked nicely for me on my 464 with XMem. Great ROM!!  :)

Yes, ROM initialization message would be nice. Also, I noticed that it slows down the boot process, because it send the LambdaSpeak initialization control bytes when it fires up it seem (fast getters, 20 ms etc) Maybe it would be better to call the initialization only when the first command is sent, or have a dedicated |init command.

I also tried having the DKtronics ROM in parallel, and that also seemed to work. I could put LambdaSpeak into |dktronics mode using your ROM, and then loaded the |dktronics driver using |speak. I need to do some more testing though. A |lambdahelp would be good, only to list the available commands, without further explanation or options.

Great ROM!  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 23:24, 31 March 18
Will update the ROM soon, but this weekend I have to help some friends with the Maibaumwache ;-)

Title: Re: New &quot;Next Generation Speech Synthesizer&quot; for the CPC 464
Post by: Bryce on 18:08, 01 April 18
Well, it is a bit weird - the output from the click! speech board gets mixed together with the Amdrum PCM output from the ATMega pin.
Unfortunately, the click! speech board does not have audio out on the pins, only over the jack, so one needs to connect a little 2 inch mono audio cable to the LambdaSpeak audio input. From there it gets mixed with Amdrum output, the mixed signals "recovered" using a summing LM741, and then the mixed mono signal is available for output at the second LambdaSpeak audio jack... I did that because not everybody has an audio mixer, and there was still space on the PCB. Now it is full  :D Despite that, always wanted to learn more about audio.

I did not add a jumper / option to force the mixed audio back onto PIN 1 for CPC internal audio amplifier, see other thread.
I'm looking at solutions for this. I'd prefer just one output if possible. As soon as I have had time I'll let you know what the options are.

Bryce.

Gesendet von meinem Motorola DynaTAC 8000x mit Tapatalk

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:04, 09 April 18
Yes, ROM initialization message would be nice. Also, I noticed that it slows down the boot process, because it send the LambdaSpeak initialization control bytes when it fires up it seem (fast getters, 20 ms etc) Maybe it would be better to call the initialization only when the first command is sent, or have a dedicated |init command.
A |lambdahelp would be good, only to list the available commands, without further explanation or options.
Great ROM!  :)


Thanks!  :)  Just starting up... as you suggested, few things were added:
- Initialisation message
- No-init-message on checksum error
- Command |LSHELP added to show list of commands


Still to do: Decide what to do to prevent stalling, maybe switch to "no comments" mode. I will take a look at this problem later the day.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 23:45, 12 April 18
Nice! I am currently traveling but will check it out early next week.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:50, 17 April 18
The PCBs arrived. Final Pre-2.0 Version, now with Audio Mixer for Amdrum + Speech. 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:06, 17 April 18
PS I will probably make the PCB Gerbers, BOM, and firmware HEX / BIN files available on GitHub soon, then people can build their own LS 1.95. Folks can also wait for the LS 2.0 to be released later this year by Bryce. Firmware of ATmega 644 between LS 1.95 and LS 2.0 is - so far - identical. Bryce can also use the GitHub page as reference for his LS 2.0 PCB efforts then, as time permits. We are not going to make money from the project anyway, so why not do it this way.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:47, 18 April 18
I'm finally back from my travels, so hopefully I can start getting the 2.0 Layouts done soon.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 05:28, 20 April 18
Thanks!  :)  Just starting up... as you suggested, few things were added:
- Initialisation message
- No-init-message on checksum error
- Command |LSHELP added to show list of commands

The ROM is getting really good! |lshelp is extremely helpful. Thanks for also adding |amdrum mode by now.
One thing I noticed - when I do Ctrl-Shift-Esc, it puts LambdaSpeak in Epson mode?  I guess this is fine.
Maybe a |reset of LambdaSpeak would be better?

One more idea for |speakscreen - it would be nice if this could be canceled / interrupted, given that it takes a while. Maybe Esc?

Small glitch in demo01.bas in DSK - LINE 60 must change to OUT &FBEE,&EB (non-blocking mdoe). This program was written before the small change / adjustment to the control bytes.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 12:58, 20 April 18
hi, are you ready to take orders yet?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 14:14, 20 April 18
As soon as all hardware tweaking and testing is complete I will be making a new (much smaller) layout for production. Only then can I say exactly what the final price will be. At the moment we are looking at leaving the "Clickspeech" module as a seperate plugin. I am trying to work out a deal to get these cheaper than the standard price and we can then supply the unit with the module in place. Alternatively, the user would need to order this module themselves.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 15:18, 20 April 18
The ROM is getting really good! |lshelp is extremely helpful. Thanks for also adding |amdrum mode by now.
One thing I noticed - when I do Ctrl-Shift-Esc, it puts LambdaSpeak in Epson mode?  I guess this is fine.
Maybe a |reset of LambdaSpeak would be better?

One more idea for |speakscreen - it would be nice if this could be canceled / interrupted, given that it takes a while. Maybe Esc?

Small glitch in demo01.bas in DSK - LINE 60 must change to OUT &FBEE,&EB (non-blocking mdoe). This program was written before the small change / adjustment to the control bytes.

Thank's for the great advice. Will keep this in mind :-)

Yesterday I started working at !SPEAKFILE, but now.... oh well, the sun is sooo nice outside ;-)

Will post an update after I know that it all works :-)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:59, 21 April 18
I am trying to work out a deal to get these cheaper than the standard price and we can then supply the unit with the module in place.

That'll be cool, wondering how many of these we would need to buy in order to get a good discount. :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:00, 21 April 18
PS I will probably make the PCB Gerbers, BOM, and firmware HEX / BIN files available on GitHub soon, then people can build their own LS 1.95. Folks can also wait for the LS 2.0 to be released later this year by Bryce. Firmware of ATmega 644 between LS 1.95 and LS 2.0 is - so far - identical. Bryce can also use the GitHub page as reference for his LS 2.0 PCB efforts then, as time permits. We are not going to make money from the project anyway, so why not do it this way.

All right, the GitHub page is here:
https://github.com/lambdamikel/LambdaSpeak
Some content still missing. Working on it.
Please excuse impoverished English. I will polish it soon.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:14, 22 April 18
All right, the GitHub page is here:
https://github.com/lambdamikel/LambdaSpeak (https://github.com/lambdamikel/LambdaSpeak)

Hey TFM and Bryce, you guys can also add to this Git if you like!
Just do a pull request and I can review and integrate it. Or, send
me you markdown content directly and I'll put it in.


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:28, 23 April 18
That'll be cool, wondering how many of these we would need to buy in order to get a good discount. :)

The price I have at the moment is €32 each, which is already not bad. Usually anything more than 10 will start getting you a discount.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:56, 23 April 18
@TFM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=179) / @Gunhed, can you write a small paragraph in Markdown about your ROM and RSX driver, including a screenshot of |lshelp that I can integrate into the README.md on GitHub? Also, a link to your homepage and where the master copy of the software is housed.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 17:09, 24 April 18
Yes, I will try to create a kind of manual and send you the text. Which kind of file do you prefer (ASCII, Word, PDF?).  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:38, 24 April 18
Yes, I will try to create a kind of manual and send you the text. Which kind of file do you prefer (ASCII, Word, PDF?).  :)


ASCII in .md = markdown syntax for the markup. 
Don't need to put the whole manual, only overall high-level description and pointer to the readme on your disk and homepage. But screenshot and links would be nice.


Thanks!

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 21:44, 25 April 18
The pointer to the "readme" is:

http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip

This will not change.

As part of the archive I will add an manual and of course it will always contain the newest update.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:27, 26 April 18
The pointer to the "readme" is:

http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip (http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip)

This will not change.

As part of the archive I will add an manual and of course it will always contain the newest update.

Thanks. I have added a high-level overwiew / description to the GitHub now.
Please have a look and let me know if it looks good to you or whether you would like anything changed.

https://github.com/lambdamikel/LambdaSpeak
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 15:20, 26 April 18
That looks really good!  :)  Instead of the picture with RSX listed you can use the ROM version and it's !LSHELP command, because it also contains the !SPEAKFILE command, but this has lots of time. Because maybe we are going to add one or two commands.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:26, 26 April 18
  Instead of the picture with RSX listed you can use the ROM version and it's !LSHELP command, because it also contains the !SPEAKFILE command, but this has lots of time. Because maybe we are going to add one or two commands.  :)

Right, just not quite sure how to get a screenshot of the ROM... I am mostly using CPC Box these days "on the run with my ChromeBook", and it has DSK loading, but no ROM AFAIK.

What's a good emulator that has ROM support? I can also do Windows 10 instead of the ChromeBook.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: EgoTrip on 00:17, 27 April 18
Right, just not quite sure how to get a screenshot of the ROM... I am mostly using CPC Box these days "on the run with my ChromeBook", and it has DSK loading, but no ROM AFAIK.

What's a good emulator that has ROM support? I can also do Windows 10 instead of the ChromeBook.

Try installing Linux, then you can use Wine to use almost any Windows CPC emulator.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 04:12, 27 April 18
Try installing Linux, then you can use Wine to use almost any Windows CPC emulator.
That would be too easy.  I run a VMWare Linux on my Windows which then runs a VMWare Windows XP for the CPC Emulator.  On my Macintosh  ;D

I once had Crouton on my Chromebook, with Ubuntu. However, the installation broke due to a ChromeOS update, and I had to reinstall Crouton basically, as well as the Ubuntu Linux. I am now longer doing this, too much work...   and Google doesn't care for Crouton, it breaks a lot with their software updates. I guess they don't really like that people are able to install a "real" OS on their ChromeBooks.

And, I also have a "real" Laptop which has both Windows 10 and Ubuntu Linux.

My question was more along the line - which Windows CPC Emulators support to load .ROM images?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 11:20, 27 April 18
I use WinApe which has a quite good ROM implementation.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:19, 27 April 18
In case of WinCPC you just click on a ROM and it will be used for ROM slot 1  :)
Here two examples:

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 00:49, 28 April 18
Thanks, 2nd picture is now on the GitHub.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 07:25, 30 April 18
Hi TFM,
tried |speakfile today, and it seems it is missing some words?
I put
It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way – in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.
in a .txt file, and I only heard "insisted on its being received, for good of for evil, ..." (til the end).
It seems it is not portioning / segmenting the text yet?



Actually, that's probably not your fault. The firmware should be preventing this when the string buffer overflows and no CR has been sent yet, it should just block the CPC and speak the porition of the string that it has. Will change / update the firmware to do so. I though I already handled that case.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 14:22, 30 April 18
Did you use !BLOCKON before !SPEAKFILE ?

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:56, 30 April 18
Yes, I think so. Notice that this is one very long string though that overflows the input buffer probably.
I will have a look.

Btw, I still have one LS 1.95 PCB - would you like one, assembled of course? (For free of course)
Maybe it would be helpful to figure out why |play sounds a bit grainy? (I must say I still haven't tested
|eplay, with higher sample rates.. will get to it at some point).

I think it is either the samples, or the |play command. Because Amdrum emulation does not sound grainy.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 21:37, 30 April 18
Today I added to !SPEAKSCREEN and !SPEAKFILE the feature to stop them by pressing down ESC (for a while). Both commands work fine. I used an ASCII file which is terminated every line (well, like they are on CPC).

The only problem which could occur is if a file has words only separated by one (!) single space each word and is bigger than the buffer of the LS (512 B IIRC), which should never happen in reality. If you email me the text file I can check if it works here.

At the moment I don't need an hardware update, but will have a look at the sample play commands. Real hardware of course is not an emulator, they all have sound filters and already show big differences when playing AY samples or regular CPC music.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:36, 01 May 18
Hi TFM,
yes I suspected that (it is just one very long string, shown above)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 13:58, 02 May 18
Should we care about this situation? I guess usually strings aren't that long. I will try to add some "checkpoints" later, but I have to look up the hardware behaviour in more detail. Well, I just don't want to have a situation in which the RSX command does not return (crash), therefore to wait is such a thing.
But with BLOCKON it should all work - I hope.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:27, 02 May 18
Yes, it is kind of a corner case.
I don't think you have to change anything.
I will just pause the driver by pulling READY when the buffer overflows in BLOCKON mode.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:49, 02 May 18
Nice. btw. Added !LSINIC which is like !LSINIT, but sets up Spanish language.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 21:56, 02 May 18
Nice. btw. Added !LSINIC which is like !LSINIT, but sets up Spanish language.  :)

Because you're saying C (Si) to Spanish ?? :D

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:24, 05 May 18
... and back to the roots... LambdaSpeak&Retro - coming soon ;) This edition will have 2 more modes....

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:00, 06 May 18
WoW!  :) :) :)  Two more modes! Tell us more!!!  :) :) :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:29, 06 May 18
Well, nothing spectacular really. It's just that I found 2 more SPO256-AL2 in my stock and want to use them. I am trying to do a more authentic SSA-1 and DK'tronics emulation with these, and real time (not buffering), hence the 2 new modes. If it works with the breadboard, I will make one more PCB that will have an optional socket for an SPO256-AL2. Unfortunately, it requires 3 more chips in order to do that in the non-CPLD version. It could be added more easily to LambdaSpeak 2, but I don't think we are going to do it there because this device is supposed to be inexpensive. For my proof-of-concept prototypes it doesn't really matter, just curious. There is yet another speech chip which I might also want to add, the SpeakJet. https://www.sparkfun.com/products/9578 (https://www.sparkfun.com/products/9578)  That'll sound pretty old and robotic, too. Maybe not as weird as the SPO.

So, in the end, LambdaSpeak 1.99 might have Epson IC, SPO256-AL2, and SpeakJet sockets (all optional of course).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:40, 13 May 18
SPO256-AL2 has been fully integrated - basically, a re-implementation of the original SSA-1 and the DK'tronics Speech synthesizer:

https://youtu.be/Og3qyQo9nfw (https://youtu.be/Og3qyQo9nfw)

Next steps - do a PCB with SPO256-AL2 socket. This is a bit more tricky than with the CPLD-based breadboard version shown in the video. I need some more glue / support chips to achieve the same. I really need to learn how to do SMD PCBs... 

@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) - no worries, I don't think we will need a SPO socket on the LS 2.0 PCB ;) They are hard to come by, anyway, so it won't be a product, really - and there is no more source for these old chips it seems. The only source that sells "new" "Microchip SPO256-AL2"'s on Ebay is in China, and the chips are counterfeits. I bought 2, for a couple dollars, and they don't work.  :-X And original SPO256-AL2 are almost impossible to get, it seems.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:32, 17 May 18
SPO256-AL2-augmented version is at OshPark now.
U6 is the SPO256-AL2. The 74LS244 has been replaced with another GAL22V10.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:18, 26 May 18
Last one (guess I said that before..)  :)
I could have gone with the 4 MHz from the CPC instead of adding another oscillator for the SPO256-AL2, but it sounds better with the 3.12 MHz clock.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 01:24, 27 May 18
The LS 1.99 gerbers are shared here: 

https://oshpark.com/shared_projects/JyRKoPdz (https://oshpark.com/shared_projects/JyRKoPdz)
In case somebody wants to build one, I can offer to send pre-programmed GALs and ATmega 644's (but not for for free). PM if you are interested. Shipping from the US to Europe is expensive though (~ 14 $).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:57, 27 May 18
Github description was updated

https://github.com/lambdamikel/LambdaSpeak (https://github.com/lambdamikel/LambdaSpeak)
@TFM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=179) - 2 new RSX commands would be neat- maybe |spossa and |spodk ?  :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 14:35, 30 May 18
Yup, it's on the new ROM since a week (didn't check in here before). I didn't update the RSX extension for RAM though.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:44, 03 June 18
Yup, it's on the new ROM since a week (didn't check in here before). I didn't update the RSX extension for RAM though.
Tested the new ROM commands, and works great - thanks!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 20:31, 03 June 18
Thanks for testing  :) 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 04:46, 23 July 18
Some customers / buyers had asked how to get started with that - here is a screenshot.
I had some problems with the combination of M4 and TFM's LS.ROM
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip (http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip)

 at some point, but now it is working just fine.TFM's ROM also works prefectly with XMem and RomboRedux.
The LS.ROM is loaded into M4 slot 4 here.
Screenshot shows how to get started with that.

At some point I had the effect that |ls,"some text" would not return to BASIC.
Not sure what caused it, and I haven't been able to reproduce it since then.

This is using MotherX4 with "Diode Hack":http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/mother-x4-and-ddi3-mods/  (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/mother-x4-and-ddi3-mods/)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Duke on 09:48, 23 July 18
Fwiw. |LS is also a M4 RSX command, so probably not the best choice.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:15, 23 July 18
Fwiw. |LS is also a M4 RSX command, so probably not the best choice.
Wow, I had no idea! Thanks for the hint, @Duke (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1624)

@TFM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=179) / @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) maybe let's remove that then, AFAIK it is a synonym for |lambdaspeak,"...." ?
Or, maybe just rename it to speak (|say is already taken by DKtronics speech synth ROM software)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:26, 26 July 18
Will be sone for next update.  :)


Any idea which "tools" / "apps" should come with the LambdaSpeak ROM, it still got plenty of space in it.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: HAL 6128 on 20:28, 26 July 18
You can play samples with it. Would it possible to change the frequency of the samples?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 22:38, 26 July 18
You can play samples with it. Would it possible to change the frequency of the samples?

Yes, see RSX documentation or use !LSHELP

!PLAY, address, lenght, delay (for up to 64 KB samples) or
!EPLAY, address, length / 64, delay, Expansion-RAM (&C4, &C5... &FF)  for up to 512 KB samples
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: HAL 6128 on 23:21, 26 July 18
Could the LambdaSpeak board act as a midi player?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:29, 27 July 18
Could the LambdaSpeak board act as a midi player?


No, that would be a completely different interface.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:18, 28 July 18

The RSX command !LS was replaced by the RSX command !SP (for speak), so all shall work fine with M4 board.  :)

Please download your new ROM update for the great LambdaSpeak here:
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip (http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip)


EDIT: Recent version is 2018.07.30.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 21:57, 15 August 18
New update uploaded, English manual added.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: number-one on 10:16, 25 August 18
Hello I seen your video LambdaSpeak meets BASIC Eliza on the CPC 464 (https://www.youtube.com/watch?v=ckCTHi5_2f8) It's impressive !

I am french and I have a CPC 6128 old with M4 wifi board, X-Mem/Z-Mem and no LambdaSpeak.
Do LambdaSpeak required for runing Elisa english program ?

Can you send me the english version Elisa program for play with my CPC ?
Thanks
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 01:23, 26 August 18
It needs LambdaSpeak or an older Speech Synthesizer. But I suggest the LS, because it can emulate lot's of other hardware.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:50, 26 August 18
Hello I seen your video LambdaSpeak meets BASIC Eliza on the CPC 464 (https://www.youtube.com/watch?v=ckCTHi5_2f8) It's impressive !

I am french and I have a CPC 6128 old with M4 wifi board, X-Mem/Z-Mem and no LambdaSpeak.
Do LambdaSpeak required for runing Elisa english program ?

Can you send me the english version Elisa program for play with my CPC ?
Thanks
Hi, I had modified this Eliza program, it is on the LS195.dsk here, you can probably just remove the speech code.
https://github.com/lambdamikel/LambdaSpeak/blob/master/cpc/lambda/LS195.dsk

There are 2 versions on that disk. One that I had typed in from a book in 1986 (the German Eliza), and the English Eliza is from some French CPC site, you can probably find if you google for it  ;)


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 07:52, 12 September 18
Alright, since the SMD layout is not going to happen, but I still wanted to go CPLD, I was prototyping with PLCC-84 XC9572. They are pretty obsolete and hard to get these days, but I managed to get a stock of them for not so much money. I'll use that to assemble a couple of LambdaSpeak 2.5 boards. The protoype shown below is working.

The price is not going to be so much cheaper than LS 1.95, but it's a nicer and cleaner design with only 3 chips + daughterboard instead of 5 chips + daughterboard. And of course easier to assemble as well.
 I will probably also add a socket for the SPO256-AL2 option, like in LS 1.99. That way, users that manage to find one can simply plug it in and have the authentic SSA-1 and DKtronics speech sound as well. Otherwise, functionality is same as for LS 1.95 and LS 1.99.

With the CPLD thing of my plate it seems that I can (finally!) put the project to rest soon.


 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:51, 12 September 18
Btw, finding a prototyping socket for PLCC-84 was challenging! Whereas TQFP adapter are easy to find even on ebay, that is not the case for PLCC. I found this one which is great for prototyping, the only disadvantage is that the pins are facing down. Upwards facing pins would be more useful. However, a piece of double sided scotch glue pads can be used to simply glue the CPLD to the board, and then the socket snatches / latches on top, as shown in the picture. Here is the socket:

http://www.proto-advantage.com/store/images/PRODUCTS/PA0111SOCKET_0.JPG
Btw, does anybody have any recommendation for more modern and less obsolete CPLDs in PLCC 84 package?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:50, 15 September 18
SPO256-AL2 and OpAmp are on board. Ready for the PCB now.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 02:25, 24 September 18
Who likes blue LEDs? And LOTS of them?

https://youtu.be/n9J54v1USwo
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 02:44, 24 September 18
... and Amdrum - visualizing PCM sample bytes makes a good light show:

https://youtu.be/VLRJbIvIBPY
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 07:53, 24 September 18
https://youtu.be/09xEWBEMHK0
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:11, 25 September 18
LambdaSpeak 3 willl 8 have digital General Purpose Digital Input / Output (GPIO) channels, which will be available as simple pin headers, and corresponding bar segment LEDs for bit status display. Good enough to switch a couple of relays - here is proof of concept with a 10 $ 4-Relay Module. That is good enough to switch 10 A 250 VAC such as lamps and even toaster ovens...

https://youtu.be/FM8kbuwGmSI
Home automation anyone? How about the CPC making coffee and toast in the morning for you?

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 15:14, 25 September 18
That's really cool for a Speech Synthesizer. So using 8 relays can also allow us to make something like "drive music"  ;D ;D ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 16:12, 25 September 18
The relay clicking would be louder than the drives. I assume Mikel is just populating the unused i/o pins (good idea), drive music can be done with the printer port if you really wanted.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:19, 25 September 18
The relay clicking would be louder than the drives. I assume Mikel is just populating the unused i/o pins (good idea), drive music can be done with the printer port if you really wanted.
Yeah, that's right, the final setup is loosley inspired by this one:

https://youtu.be/WjX1jU9pQeY
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:43, 24 January 19
I have added 128 KB of SPI EEPROM to LambdaSpeak 3.0 - check out this simple "CPC-PCM-Synthesizer" written in BASIC:

https://youtu.be/9VoMoj8Qr0s (https://youtu.be/9VoMoj8Qr0s)
PCM bit rates / sample quality can of course be *much* higher than with LambdaSpeak's Amdrum PCM mode that way. I will try to add as many PCM channels as possible - I believe that the SPI EEPROM should be fast enough to allow for ~ 4 PCM channels. The device is mono, but it will then be a polyphonic PCM sample player - good for playing chords on the keyboard (the BASIC demo above is monophonic).

When LS 3.0 is ready, it will offer:
The design has 4 chips - ATMega 644, Xilinx XC9572, SPO256-AL2, SPI EEPROM 25LC1024, and an OP Amp for mixing. Plus the Epson daughter board.

Still have to design the PCB...

And here is a question - does anybody have a recommendation for a high quality *audio* op amp that already has "summing" from different source build in such that I don't need to wire the summing with resistors and feedback and such? 

Ideally, the audio op amp (or preamp mixer) should have 3 or 4 inputs, and just ONE output for the mix... I am not so satisfied with the audio quality of the UA741CN that I am using.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 19:37, 24 January 19
Very wonderful! Of course I will update the RSX library and the LambdaSpeak ROM.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:07, 27 January 19
Polyphonic PCM by now, and demo of PCM sample upload:

https://youtu.be/BKLnTiDfbk8

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:22, 16 February 19
Thank you @chinnyhill10 (http://www.cpcwiki.eu/forum/index.php?action=profile;u=984) for the awesome review!  :)

https://youtu.be/yAZAAMu1DfA
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 10:30, 17 February 19
I purchased oneLambdaSpeak Speech Synthesizer from Michael Wessel, my CPC will come alive  :P :P
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 13:17, 18 February 19
About the Video. Just one comment: Before using !speakscreen please switch blocking mode on.  :)  IIRC it's written somewhere in the doc. For reasons it's not doing it automatically. But we can negotiate this.  :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 02:56, 19 February 19
I purchased oneLambdaSpeak Speech Synthesizer from Michael Wessel, my CPC will come alive  :P :P
Finished assembly, tested, and will be in the mail tomorrow! Thanks again for the purchase!Pictures of your LS 1.95 attached.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:58, 21 February 19
Who said LambdaSpeak and its DecTalk capabilites are too expensive?
Get the real thing if you like (and have the cash $$$)  ;)

https://www.ebay.com/itm/Digital-Equipment-DecTalk-DTC01-Speech-Synthesizer/352548214950?epid=1624617255&hash=item521582d8a6:g:kQcAAOSwUpFcGShp:sc:FedExHomeDelivery!94306!US!-1:rk:6:pf:0 (https://www.ebay.com/itm/Digital-Equipment-DecTalk-DTC01-Speech-Synthesizer/352548214950?epid=1624617255&hash=item521582d8a6:g:kQcAAOSwUpFcGShp:sc:FedExHomeDelivery!94306!US!-1:rk:6:pf:0)
... and another nice piece:
https://www.ebay.com/itm/AICOM-Corporation-Text-To-Speech-Synthesizer-FS64VIP02/183353817903?hash=item2ab0bd3b2f:g:j1IAAOSwefRbYHKB:rk:33:pf:0


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: TotO on 09:37, 21 February 19
eBay collector prices!  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:23, 21 February 19
eBay collector prices!  ;D
Right, although I am tempted to get the DECTalk... but I will have to resist.
I found this an interesting read, it puts different historical speech chips into perspective, and also mentions modern chips such as SpeakJet:

http://www.redcedar.com/sc01.htm
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 16:59, 26 February 19
Hi again LambdaMike.. is there another some demos like LS195.dsk software ?
and how is to play sample ? ok , i know thx  :P
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:13, 26 February 19

Hi again LambdaMike.. is there another some demos like LS195.dsk software ?



All the software is in the Github:


https://github.com/lambdamikel/LambdaSpeak (https://github.com/lambdamikel/LambdaSpeak)

(in CPC directory - SSA1 RSX software, DKtronics RSX software, Amdrum, TFM's LambdaSpeak driver, some games - there are probably some more applications / games that support DKtronics / SSA1, which I am not aware of).

For DecTalk, there are a lot of songs:

http://theflameofhope.co/device/ (http://theflameofhope.co/device/)

You can just alter the "demo01.bas" to make it sing any of these.


And then, there are of course the DecTalk manuals. Hope that helps!


Glad your LS 1.95 arrived, thanks for the purchase, and enjoy!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:40, 26 February 19

For DecTalk, there are a lot of songs:

http://theflameofhope.co/device/ (http://theflameofhope.co/device/)

You can just alter the "demo01.bas" to make it sing any of these.

PS Rather than writing the ASCII characters to the &FBEE port like in demo01.bas, it is of course much better to simply pass the string to TFM's RSX command,

Code: [Select]
|SP,@text$      

or


Code: [Select]
|LAMBDASPEAK,@text$

(I think they are equivalent, right @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) ?)

So, text$ can just be the DecTalk song (or simply plain ASCII for English or Spanish).

The $text$ buffer has a maximum size of 400 characters if I remember correctly; in case of a long phoneme / DecTalk string sequence (i.e., for the DecTalk songs), you might have to "split" into portions.


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 23:20, 26 February 19
Yes they are. However in firmware a string can only be 255 bytes long.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:17, 27 February 19
Talking about DecTalk songs as found on the internet - because of the long strings, it is a bit tedious to play them; usually, it requires breaking them down into portions. For some songs that is easy, for others not so much. And, then there is also a slight delay between segments, especially if BASIC is used for transmission. With machine code, the delay should be almost not noticeable.

I am working on a "DecTalk Song Player" which makes this process easier, i.e., play a song TXT file from the archive

http://theflameofhope.co/device/SONGS.zip (http://theflameofhope.co/device/SONGS.zip)
directly from disk. First in BASIC, then in MC - @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029)   ;) ? The |ls,@string command is not so great for this, because of the 256 byte string limit. And if you cut the DecTalk phoneme string in bad places, it won't play. I was thinking of a |playsong,"filename.txt" command  ;)


Ideally, the speak text file function should work for this, but I think the TXT songs from that archive contain some problematic characters. For example, the "." seems to cause a hick up. So it is likely that some "on the fly" massaging of the file content has to happen. Maybe that was for a different version of DecTalk. However, most of these should work with little modifications.


@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) , have you ever tried to put these into two TXT files and play them via speak file function? That should work with little to no modification, in case LS is in DecTalk mode of course (and probably blocking too):


Code: [Select]
Singing “Happy Birthday”


[:phone arpa speak on][:rate 200][:n0][hxae<300,10>piy<300,10> brrrx<600,12>th<100>dey<600,10>tuw<600,15> yu<1200,14>_<300> hxae<300,10>piy<300,10> brrrx<600,12>th<100>dey<600,10> tuw<600,17>yu<1200,15>_<300> hxae<300,10>piy<300,10> brrrx<600,22>th<100>dey<600,19> dih<600,15>r eh<600,14>m<100,12>ih<350,12>k_<120>_<300> hxae<300,20>piy<300,20> brrrx<600,19>th<100>dey<600,15> tuw<600,17> yu<1200,15>][:n0]


Singing “The Star-Spangled Banner” (The  text  exceeds  the  maximum  allowable  1023  characters  per  message,  so  it  must  be  split  into  two  messages)


[:phone arpa speak on][:rate 100][:n0][ow<200,18>ow<200,15> sey<400,11> kae<400,15>n yu<400,18>w siy<600,23> _<300> bay<350,27> dhah<50,25> dao<400,23>nz rr<400,15>ll iy<400,17> llay<600,18>t _<300> wah<200>t sow<200> praw<600,27>dlliy<200,25> wiy<400,23> hxey<400,22>eld _<300> ae<300,20>t dhah<100,22> tway<400,23> llay<400>ts llae<400,18>st glliy<400,15>m iy<200,11>nx _<300> hxuw<300,18>z brao<100,15>d stray<400,11>ps ae<400,15>nd bray<400,18>t stah<600,23>rz _<300> thruw<300,27> dhah<100,25> peh<400,23> rrel<400,15> ah<400,17>s fay<600,18>t _<300> ow<200,18>r dhah<200,18> rrae<600,27>mpah<200,25>rts wiy<400,23> waa<600,22>cht wrr<300,20> sow<100,22> gae<400,23>llah<400>ent lliy<400,18> striy<400,15>miy<200,11>nx _<300>][:n0][:phone arpa speak on][:rate 100][:n0][ae<300,27>nd dhah<100> raa<400> keh<400,28>ts r eh<400,30>d glley<700>r _<300> dhah<100,28> baa<400,27>mz brr<400,25>stih<400,27>nx ih<400,28>n ey<600>r _<300> gey<400>v pruw<600,27>f thruw<200,25> dhah<400,23> nay<900,22>t dhae<300,20>d aw<100,22>rr fllae<400,23>g wah<400,15> stih<400,17>ll dheh<600,18>r _<300> ow<400> sey<400,23> dah<400>z dhae<200,23>ae<200,22>t stah<400,20>r spae<400>ngel<400>d bae<400,25>nrr<200,28>rr<200,27> yxeh<200,25>eh<200,23>t wey<800,23>ey<150,25>ey<150,23>ey<1200,22>v _<900> fow<300,18>rdhah<300> llae<900,23>ae<400,25>nd ah<300,27>v dhah<300,28> friy<1000,30>iy<1000,35> _<900> ae<300,23>nd dhah<300,25> hxow<1000,27>m _<600> ah<300,28>v dhah<1000,25> brrey<1500,23>v _<900>][:n0]


Also notice, for the Star Sprangeled Banner, since the string is too long, it was cut into 2, and each segment needs to start with the preamble


Code: [Select]
[:n0][:phone arpa speak on][:rate 100][:n0][ ..... phonem content here .... ] [:n0]



Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 20:38, 27 February 19
Waiting for that "DecTalk Song Player"  :o
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:42, 27 February 19
And, one more comment - looking through the LambdaSpeak 1.95 source code, the max LambdaSpeak buffer size is actually 382 characters. So, RETURN (13) must be send before the buffer is full; otherwise it will be sent to DecTalk, and if the string is malformed, i.e., does not have the proper format

Code: [Select]
[:n0][:phone arpa speak on][:rate 100][:n0][ ..... phonem content here .... ] [:n0]
 


then you won't hear anything.

Hence, it is best to create string of this form

Code: [Select]
[:n0][:phone arpa speak on][:rate 100][:n0][ ..... phonem content here .... ] [:n0] RETURN


(CR 13 at the end), such that this string is of length AT MOST 382 characters. Otherwise, buffer overflow happens, string sent to DecTalk is malformed, and you won't hear anything.


@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) , that is actually something that would also happen for speak file function if you overflow the buffer; you want to make sure that words are not "cut in the middle" i.e. long words such as

   antidisestablishmentarianism 

should not be cut in the middle  ;)


Is speak file already making sure that this does not happen?


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 21:13, 27 February 19
Guess you're right. The secret is to divide into the right strings. Anything else it (IIRC) done by the blocking-mode of the LS.  :)  Have to look at the downloaded files...
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:20, 27 February 19
Guess you're right. The secret is to divide into the right strings. Anything else it (IIRC) done by the blocking-mode of the LS.  :)  Have to look at the downloaded files...


Right, and blocking / non-blocking mode doesn't make a big difference anyway. Since there is only one thread in LS, if DecTalk / Epson IC is speaking, nothing else can be buffered by LS in parallel unfortunately (it would be nice if one could already send the next string portion while it is singing / speaking, but that is not possible).


The only thing that non-blocking mode allows you to do is - you can stop the speech at any time. But nothing else will have the desired effect until DecTalk finished speaking, because I don't have threads, as just mentioned.


So, blocking or not, blocking is nice because then your program is halted automatically until DecTalk has finished. But you can't stop / interrupt the speech. Otherwise, use non-blocking, then the Z80 is not halted, but you need to poll &FBEE if it is <> 32. Only when it get 32 again (= IDLE) DecTalk is ready to receive more content.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 21:24, 27 February 19
Sorry, for a stupid question. I should know by now...but... :P


Is there a way to "ask" the LS if the current sentence was sung completely? In this case the application can just use polling to wait until it will send the next sentence. Else the application can wait a number of interrupts until it will send the next string. Between two strings a number can be placed indicating how long (1/50 seconds) to wait.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:41, 27 February 19
Sorry, for a stupid question. I should know by now...but... :P


Is there a way to "ask" the LS if the current sentence was sung completely? In this case the application can just use polling to wait until it will send the next sentence. Else the application can wait a number of interrupts until it will send the next string. Between two strings a number can be placed indicating how long (1/50 seconds) to wait.  :)


Right, like in demo01.bas 

When LS is ready to accept data in DecTalk mode (is idle again), in non-blocking mode, it puts 32 on the bus
(actually, it always does that in DecTalk or Epson mode, no matter if blocking or not, but of course you will only need it in non-blocking mode):


WAIT &FBEE,32



Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:30, 28 February 19
The attached ZIP contains a first attempt at a BASIC program which can play DECTalk songs in ARPABET format from disk.
There are only 2 such songs currently, "BANNER.TXT" and "BDAY.TXT".

Unfortunately, with BASIC involved, there is a pause between segments when the program has to break up the strings. Maybe this program is an inspiration though for a fast MC program that doesn't have that problem  ;)

Also, the DECTalk songs from the archive

http://theflameofhope.co/dectalk%20speak%20window/ (http://theflameofhope.co/dectalk%20speak%20window/)
are for an older version of DECTalk, and will require conversion. And that is not so straightforward... first of, one needs to use the ARPABET poneme set. The allowed phonemes are documented

http://www.grandideastudio.com/wp-content/uploads/EpsonDECtalk501.pdf (http://www.grandideastudio.com/wp-content/uploads/EpsonDECtalk501.pdf)

from page 44 (48 in PDF viewer). I tried to convert "like a virgin", and it is on the DSK in the attached archieve, but there are still bad phonemes which I haven't translated right, so this gives "Command Error in Phoneme". Some more work required there.

I am wondering if there is an automatic translator that converts into ARPABET.

I also found the following "conversion hints" on a website somewhere:

Quote
Note that the Emic 2 uses DECtalk version 5.0.E1. The Flame of Hope web site has a heap of DECtalk songs but they are for earlier versions of the DECtalk parser and require tweaking to work with the EMIC 2. Thanks to Ron on the Parallax forum for these tips on converting the text files:

    you often have to change an "L" to "LL"
    sometimes you need a space between any character preceding the "ey" phonetic symbol.
That's only part of the story though.
Anyhow, 2 songs are working fine (BDAY and BANNER), and VIRGIN is work in progress. Enjoy.

PS @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029)  another thing I found is that apprently, eventhough LS has a buffer of 382 bytes, the Epson chip can probably only buffer 256 max. It seems that whenever I go above > 200 characters or so before sending CR, there are problems. Also, that's not caused by BASIC, because I am sending characters one by one.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 21:11, 28 February 19
My amstrad singing the American hinmo, what a laugh  :laugh: :laugh: :laugh: :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:05, 28 February 19
My amstrad singing the American hinmo, what a laugh  :laugh: :laugh: :laugh: :laugh:


Surely you don't object to a little bit of US propaganda from good old cowboy LambdaMikel, right?  :laugh: 
Next version will have picture of Donald Trump, watch out!  :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 06:10, 01 March 19
I have added one more demo, "test1.bas". Demonstrates EPSON mode (easier than DECTalk mode, and also supports pitch change, different voices, different speak rates). 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:25, 02 March 19
I had only tried this on LS3... timing on LS195 is a bit different.Hence, one more version  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:04, 02 March 19
Here is a video of the Spanish speaking mode and DecTalk singing (would be good if somebody tried Spanish singing on DecTalk  :D )

https://youtu.be/1TDAy5C5mJA (https://youtu.be/1TDAy5C5mJA)

Since I don't speak Spanish I don't if this is accurate or not. What do you think?

PS Btw, I had a firmware bug in LS 195 which results in test2.bas (Spanish demo) not working on the devices out there. It had to do with non-ASCII characters required, such as ~ etc. There is a firmware update in the Github. People interested in updating the ATMega but can't do it on their own can send in their device if they care for Spanish. @XeNoMoRPH (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1952)  if you care for the update I will send you an ATMega with the new firmware, since you just bought it 2 weeks ago.  Please let me know.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 19:58, 02 March 19
yeah , very nice work LambdaMikel !!! , yes .. please send me ATMega chip :)  :D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:03, 02 March 19
Will do. Is the quality of the Spanish understandable?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 09:27, 03 March 19
Will do. Is the quality of the Spanish understandable?
affirmative  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:20, 04 March 19
Three more shipping tomorrow - thanks guys!
Seems the now fully working Spanish speaking mode is a sales argument  ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 20:32, 04 March 19
Very pretty!  :) :) :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:15, 05 March 19
yeah , very nice work LambdaMikel !!! , yes .. please send me ATMega chip :) :D


It is in the mail since yesterday. Please let me know when it arrived.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:22, 05 March 19
PS If anybody else wants the LS 195 firmware update (-> Github) and cannot flash it her/himself, feel free to send in the chip to me. The update is mostly for Spanish mode. Just ignore if you don't care for Spanish. However, I'll have to charge 15 $ for returning the updated chip to Europe (USPS postage).
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 21:34, 05 March 19

It is in the mail since yesterday. Please let me know when it arrived.
Ok, big thx  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:38, 06 March 19
PS If anybody else wants the LS 195 firmware update (-> Github) and cannot flash it her/himself, feel free to send in the chip to me. The update is mostly for Spanish mode. Just ignore if you don't care for Spanish. However, I'll have to charge 15 $ for returning the updated chip to Europe (USPS postage).

A new firmware update for the 1.95? Can you please give a direct link, I don't find it in your git-hub (it's interface is not intuitive at all).

What's the changelog?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:41, 06 March 19
https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644 (https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644)

Changelog:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 15:11, 07 March 19
https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644 (https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644)

This is a link to a directory, which contains confusing content. There is nothing I can burn on the ATMEGA644 MPU. Not helpful. Can you please attach a file which can be burnt in the CPU?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 15:58, 07 March 19
There are two (well labelled) directories: ls195-and-ls20 (https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644/ls195-and-ls20) and ls199-and-ls21-with-spo256-al2 (https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644/ls199-and-ls21-with-spo256-al2) , both directories contain firmware HEX files for programming the AVR.The other two files are a TXT file (that stands for TEXT) and a jpg file (that's a picture). Where's the confusion?

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 17:09, 07 March 19
There are two (well labelled) directories: ls195-and-ls20 (https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644/ls195-and-ls20) and ls199-and-ls21-with-spo256-al2 (https://github.com/lambdamikel/LambdaSpeak/tree/master/firmware/atmega644/ls199-and-ls21-with-spo256-al2) , both directories contain firmware HEX files for programming the AVR.The other two files are a TXT file (that stands for TEXT) and a jpg file (that's a picture). Where's the confusion?

Bryce.

Yes, that's cool for hardware experts, but not for the regular CPC user. What's so hard in just posting a file which can be burnt? In addition, even after browsing through all this directories, I found nothing working. I had to click at several icons to get some RAW format which maybe(!) is an intel hex file. I burnt it and the LS provides 18 blinking signals, so probably it was wrong. Again: Please post the file-update itself. Anything else is super tedious and only for the experts of hardware - means less that 1% of the users. We (99%) just need a file that works.

EDIT: to make this clear, the firmware hex file you say is in the directory, can't be used by the programmer. It gave an error message. I needed to convert it by hand - not funny and sadly not working.

During these days I was never that frustrated by CPC hardware, it's lots of projects not working.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:22, 07 March 19
Yes, that's cool for hardware experts, but not for the regular CPC user. What's so hard in just posting a file which can be burnt? In addition, even after browsing through all this directories, I found nothing working. I had to click at several icons to get some RAW format which maybe(!) is an intel hex file. I burnt it and the LS provides 18 blinking signals, so probably it was wrong. Again: Please post the file-update itself. Anything else is super tedious and only for the experts of hardware - means less that 1% of the users. We (99%) just need a file that works.

EDIT: to make this clear, the firmware hex file you say is in the directory, can't be used by the programmer. It gave an error message. I needed to convert it by hand - not funny and sadly not working.

During these days I was never that frustrated by CPC hardware, it's lots of projects not working.
What programmer are you using? Unfortunately, I only know the MinPro v6.60 and G540 softwares.
I can post instructions for these. Did you change the fuses of the AVR by any chance?

As for the HEX file, yes it is just standard intel HEX, but it needs to be downloaded from Github as "raw", or you need to check out the whole projects ("clone / download as zip"). Save as will give you a HTML page.
Both the MiniPro and G540 software take the HEX files as they are, no conversion required...

Attached is the archive.

I can also work out a procedure for people that neither have an AVR programmer nor an EEPROMER. It is possible to update the firmware using an Arduino.

https://riktronics.wordpress.com/2016/07/26/program-avr-using-arduino-simplest-way/#more-621 (https://riktronics.wordpress.com/2016/07/26/program-avr-using-arduino-simplest-way/#more-621)

But it is a bit tedious. I need to try this myself first, then I can write something about this process.
I belive @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) already has an Arduino (nano) for Dandanator update, right?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:28, 07 March 19
Couple of screenshots.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:32, 07 March 19
It is important to either set the FUSE BITS etc. correctly, OR if you flash / program it, MAKE SURE that ONLY THE CODE MEMORY is getting flahsed, otherwise you might BRICK the AVR.

Check the checkboxes - unfortunately, I don't know your programmer software, so I can't give advice there.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:48, 07 March 19
Hang on, I just tried this myself and ran into a problem... I also got some blinking.   :( >:( Let me see what's going on... appologies if the files indeed should have become corrupted. Will know soon!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:24, 07 March 19
No, the firmware files are fine... I just flashed a brand new ATMega 644PA-20PU.
In the MiniPro, I can both selecte 644A, or 644PA, both work (depending on the chip you have!)In any case, I can use unselect "Check ID", and I can flash either with the 644A or 644PA
selected with the same settings.

These settings also work for updating the old chip.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:09, 07 March 19
Yes, that's cool for hardware experts, but not for the regular CPC user. What's so hard in just posting a file which can be burnt? In addition, even after browsing through all this directories, I found nothing working. I had to click at several icons to get some RAW format which maybe(!) is an intel hex file. I burnt it and the LS provides 18 blinking signals, so probably it was wrong.
That is a good sign - your programmer succeeded, but messed up the Low Fuse Bytes for the clock settings!See screenshot of MiniPro... all Low Fuse Bytes must be unchecked, otherwise the ATMega uses a 4 or 1 MHz clock setting, and that results in visible blinking (compared to the 20 MHz) So, that is a good sign, you are on the right track! You only need to figure out how to change the Clock Fuse Byte Settings in your Programmer. As I said, I don't know the software you are using, so I cannot give advice there. But the procedure / flash itself is succeeding, so good news!
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 01:20, 08 March 19
Eventually it all works fine. Thanks a lot!  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 01:28, 08 March 19
Eventually it all works fine. Thanks a lot!  :)


Great, you're welcome - if you hear Spanish for test2.bas then you are good.
The copyright message should also have changed and such.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: remax on 22:19, 10 March 19
Three more shipping tomorrow - thanks guys!
Seems the now fully working Spanish speaking mode is a sales argument  ;)


So i guess i have Spanish working ^_^
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:58, 10 March 19
Yes yo're good to go for Spanish  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 06:49, 12 March 19
... almost done...


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:30, 12 March 19
for the record

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 08:36, 12 March 19
I am using freeRouting.jar for the first time instead of the KiCAD internal auto router... WOW that thing is so much more capable! I am in awe of that program. Very impressive.


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:18, 12 March 19
After a night of routing, this is how it looks like. Have to check it now.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 17:08, 12 March 19
You need to add some more copper to those power traces, but otherwise looking good.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:18, 12 March 19
You need to add some more copper to those power traces, but otherwise looking good.

Bryce.
Right, I will do this by hand now... I couldn't find a way to instruct freeRoute.jar to have a "netclass" for certain traces. But it is easy enough to do by hand now, for GND and VCC, and also for the audio signals I suppose. I still haven't figured out the "ground copper" thing yet, but I hope it'll be fine regardless (the other PCBs worked without as well). One day I will learn  ;)
I was impressed that freeRouting.jar figured that out. KiCAD router didn't work at all this time... and not a single unconnected pin and no design violations at all! I had to stop the "optimizer" by hand though... it ran all night, and was at pass 48 or something this morning. I figured the layout was good enough by then. Otherwise it seems it tries optimizing and improving forever. Not sure when it would have stopped. Well, I have an older laptop as well...

 
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 17:48, 12 March 19
Well, would it be possible to "redesign" the PCB to fit in the Amsdap?
At the end of the MX4 socket the Amsdap provides about 9mm space (guessing by locking)

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:25, 12 March 19
Well, would it be possible to "redesign" the PCB to fit in the Amsdap?
At the end of the MX4 socket the Amsdap provides about 9mm space (guessing by locking)


So you are saying it is too wide? Well, in that case it would be very tall... like the tower of LambdaSpeak  :D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:32, 12 March 19
Damn! Why does this poor universe only provide 3 dimensions in space!  :picard: :picard2:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:33, 12 March 19
Damn! Why does this poor universe only provide 3 dimensions in space!  :picard: :picard2:


You sure about that? After all, M-theory might be right...  ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:42, 12 March 19
Put that in Epoy-Harz  :P


Fun byside, yes the Y need to be increased. Probably it's to much effort to redesign anyway. So for Amsdap we can put an adapter before it to carry the LambdaSpeak, because the Amsdap is last in line anyway (Rattenschwanzende - undnurweillangeWortefaszinieren).

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:29, 12 March 19
Well, I can try. I'll save this one after finishing it up just in case I fail with the LambdaSpeak Tower Edition.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:38, 12 March 19
Or, I could make it into a


-----------
|         |
|         |
|__     __|
  x|   |
   ----


shape... do you have an idea for the "x" height required?


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 23:59, 12 March 19
This _IS_ a great idea ... wait a moment.... (measuring, watching Nockerberg...).. and...

The height need to be about... 2,1 cm :-)

This brings me to another idea. Is there some kind of adapter in the net which makes the MX4 socket about 1-1,5 cm higher? That would help too.  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 02:17, 13 March 19
This _IS_ a great idea ... wait a moment.... (measuring, watching Nockerberg...).. and...

The height need to be about... 2,1 cm :-)


Well, in any way... LambdaSpeak will be towering over all other expansion cards, so that seems to be a quite acceptable solution right?  :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 07:36, 13 March 19
I hope your measurements are correct, @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) - the gap is now 21.3 mm...

I let it route over night now. Let's see if this is doable. I am a bit skeptical.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: TotO on 09:00, 13 March 19
After plugging it, can you see the screen?  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:33, 13 March 19
I'll be needing a taller chair then.

The ground fill you're talking about is usually called copper pour. A quick search will tell you how to do it. As for optimisation runs, you usually specify how many cycles it does. 48 is crazy though, I usually only do 5 or 6 the rest is then manually cleaned up.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: TotO on 09:55, 13 March 19
I don't know if the autorooting is efficient on this software.
Using Eagle, my MegaSound PCB root with around 120 via... Doing by hand, I got 33 via with a better power trace and ground plane.  :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 10:09, 13 March 19
Manual routing will always get a better result than autoroute. I use auto just to speed things up on bigger projects, but the end result always needs manual tweaking and improvement.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 15:13, 13 March 19
I hope your measurements are correct, @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) - the gap is now 21.3 mm...
I let it route over night now. Let's see if this is doable. I am a bit skeptical.
Send me a PDF of the "Umrisse" then I will print it out on paper, and see if it fits.

After plugging it, can you see the screen?  ;D
Actually no! Because the VDP9990 (and soon SF3) is in the way.  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:24, 13 March 19
I don't know if the autorooting is efficient on this software.
Using Eagle, my MegaSound PCB root with around 120 via... Doing by hand, I got 33 via with a better power trace and ground plane.  :laugh:
Of course manual routing is better. But infeasible on larger / more complex projects (at least if you are doing it as a hobby)  ;)
What's the largest PCB / projects you have routed by hand?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:32, 13 March 19
I'll be needing a taller chair then.
Maybe get a bademeister sitz  8) Attached.

Quote
The ground fill you're talking about is usually called copper pour. A quick search will tell you how to do it. As for optimisation runs, you usually specify how many cycles it does. 48 is crazy though, I usually only do 5 or 6 the rest is then manually cleaned up.
Ah cool, yes there are some brief and succient explanations online for KiCAD: I had watched a video once and the guy was making it a very complicated black magic kind of process, but it seems it is actually not that difficult.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:34, 13 March 19
https://wp.josh.com/2017/10/23/adventures-in-autorouting/ (https://wp.josh.com/2017/10/23/adventures-in-autorouting/)
As always, you get what you pay... freeRouting.jar is free.
It is certainly much better than the build in router in KiCAD.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 16:37, 13 March 19
Of course manual routing is better. But infeasible on larger / more complex projects (at least if you are doing it as a hobby)  ;)
What's the largest PCB / projects you have routed by hand?

About the equivalent of a PC Mainboard, but a team of people work on routing of this size, each responsible for certain functions such as buses, power rails, matched pairs (SPI, I2C), etc and usually they're assigned layers for their content. But it's all done manually.


Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:44, 13 March 19
About the equivalent of a PC Mainboard, but a team of people work on routing of this size, each responsible for certain functions such as buses, power rails, matched pairs (SPI, I2C), etc and usually they're assigned layers for their content. But it's all done manually.

Bryce.
Intereseting. How many teams, how many people per team. Time requirements for such a PC mainboard?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 18:12, 13 March 19
That depends on so many things - ASIL level, complexity, types of systems involved. An average team would be 4 or 5 people just for placement and layout, but obviously there are many other engineers involved - Systems, comms, thermal, mounting and housing, etc.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 16:44, 14 March 19
i have now atmega644 chip updated ,  ... I have been able to replace it without problems  ;) , thx LambdaMikel
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:25, 14 March 19
i have now atmega644 chip uptaded ,  ... I have been able to replace it without problems  ;) , thx LambdaMikel


Great, thanks for the update, good to hear!
Hope you enjoy it speaking in your native language  ;)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:35, 14 March 19
Alright, just for the record - there is exactly one LS 1.95 left on sellmyretro, and I won't be making them any longer (LS 3.0 will be for sale in June or so, IF I can get the routing problems sorted out), so this one is the last one ever (I am also out of click! text to speech boards):


https://www.sellmyretro.com/offer/details/lambdaspeak-speech-synthesizer--_--all-cpc-models-36231 (https://www.sellmyretro.com/offer/details/lambdaspeak-speech-synthesizer--_--all-cpc-models-36231)

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 05:25, 15 March 19
Alright, the first PCB batch is in production.
@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) , does the copper pour look right to you? Are all these "holes" normal?
If these PCBs work, I can start selling LambdaSpeak 3 in April it seems.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 09:39, 15 March 19
The "holes" are islands with no direct connection to ground. Putting "floating" copper there would have no effect so it's left out. On extremely sensitive circuits (high frequency, low voltage) systems vias are manually added to ground these islands, but on a 5V, low frequency CPC circuit it would be pointless.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 12:35, 15 March 19
Ah, these pictures are awesome!  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 16:04, 15 March 19
I am still impressed by the freeRouting.jar auto router... the first design had about 320 vias.
After a night of optimizations, it got it down to 69, and much reduced wire length.
Also, the copper pour looks much better now. I could not have routed that by hand.
I added special design rules for the "net classes" VCC, GND, and AUDIO, resulting in slightly
wider tracks. PLLC socket routing is tricky though... the first 2 days auto-routing was not successful, because the VCC and GND tracks were now *too* wide, and the router got stuck at the socket.

You can compare the number of vias (little circles) with the first version above...
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:00, 15 March 19
Attaching a closer view of the layouts.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: TotO on 23:12, 15 March 19
Sorry, but looking your pictures, the power line is too thin, the ground is week and the circuits decoupling looks not ok.
I think that you have to take care about that by hand before asking the software to autoroot something.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 01:47, 16 March 19
I used this one to calculate VCC width - I am not drawing more than 600 mA  ;)

http://circuitcalculator.com/wordpress/?p=25/ (http://circuitcalculator.com/wordpress/?p=25/)

What tool are you using?


So, just for the record - with the Oshpark 1 oz/ft^2 copper weight for the 2 layer prototype board, I can draw 850 mA of current and still be under the VCC width of the 9.84 mils... (this would be for 0,25 mm - I even used 0,30 mm). I appreciate your concern though.

In general, I must say that I trust the autorouting of a tool that is aware of the design rules (rather than guessing constraints) more than the hand layout of a hobbyist. Sure, Bryce's team is a different story (those are professionals, I am not).

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 06:33, 16 March 19
One thing I could try is fill also the front with copper - for VCC.Two negative things I read related to that are: Well I ordered 3 of them by now and I believe if they should not work, then this is probably caused by issues unrelated to VCC, GND, or capacitors (after all, the breadboard prototype had MUCH WORSE electrical properties, and was working fine). We will see.

Sure thing, I can add the VCC copper pour. Or make the traces even wider by hand, even if that should not really be necessary. For the next batch.

But then, I also don't know how much I can trust these websites (see above) that do the trace / track width calculation for you.
So, what is wrong with the decoupling capacitors? Not close enough to the chips in your opinion?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 16:51, 16 March 19
I used this one to calculate VCC width - I am not drawing more than 600 mA  ;)

http://circuitcalculator.com/wordpress/?p=25/ (http://circuitcalculator.com/wordpress/?p=25/)

What tool are you using?


So, just for the record - with the Oshpark 1 oz/ft^2 copper weight for the 2 layer prototype board, I can draw 850 mA of current and still be under the VCC width of the 9.84 mils... (this would be for 0,25 mm - I even used 0,30 mm). I appreciate your concern though.

In general, I must say that I trust the autorouting of a tool that is aware of the design rules (rather than guessing constraints) more than the hand layout of a hobbyist. Sure, Bryce's team is a different story (those are professionals, I am not).



IPC-2152 (the industry standard guidelines) says that a 0,3mm trace can carry 630mA with a trace length up to 250mm, so you should be fine.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 17:00, 16 March 19
Use this for your calculations: http://www.saturnpcb.com/pcb_toolkit/

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:32, 16 March 19
Use this for your calculations: http://www.saturnpcb.com/pcb_toolkit/ (http://www.saturnpcb.com/pcb_toolkit/)

Bryce.
Thanks for the link! Will check it out.

One more question - do you recommend VCC copper fill, or not worth the hassle?
(Heat absorb -> difficult soldering, chances of incidental shorts increased)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: Bryce on 18:32, 16 March 19
No, a VCC plane is pointless on a device this small and with only two layers. VCC planes only make sense on devices that have regular big and sudden current changes and a free layer for VCC alone.

Bryce.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:51, 22 March 19
Just got mail from OshPark - the first batch is already on the way!
Will know on Sunday if the design works  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 05:08, 24 March 19
Happy Birthday, LambdaSpeak 3!
Happy to say (and a bit proud too, I must admit  :) ) that it worked out of the box, first time!

A couple more firmware updates, and it is ready to ship. I'll post a video soon.

So, after all, this project is FINALLY coming to an end, after 2 years of work.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: robcfg on 10:16, 24 March 19
Nice!


Can it change the lights as it speaks Knight Rider style?  ;D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 19:47, 24 March 19
That's not possible unfortunately... the right bar is just databus latched, and the left status display is controlled by the CPLD, not the MCU.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: XeNoMoRPH on 22:16, 24 March 19
I Love that lights  :o
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 20:27, 01 April 19
Thank you all!

I have the parts and capacity to build ~6 of these
(4 are already promised / allocated to other people).

In case anybody is interested in purchasing LS 3.0:
Please PM me if you are interested.


I will also publish the firmware and Gerbers for those that miss this opportunity. 

I will also assemble a DSK file that contains all the LS 3.0 and LambdaDrum programs shown in the videos, including the PCM samples for the drums etc.

With that being said, this is the end of this thread and also the end of the other threads about LambdaSpeak. Hope you don't mind that I'll also post this info in the other thread.

Thanks for your interest and CU in another thread,

Yours

LambdaMikel

PS No, not an April Fools' Day joke  :D
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:49, 11 April 19
Small update:

LS 3.0 now also has a serial interface on board, and new control bytes / commands have been added to the firmware, for high speed buffered serial communication. Different baud rates up to 250 k baud, parity, width, stop bits, all configurable. Easy to program, non-blocking IO. Tested with Emic 2 USART speech synthesizer; more tests to come tonight.

The new LS comes with a 4-pin serial header (VCC, GND, TX, RX) to which any standards serial USART device can be connected.

Shipping starts in 2 weeks (provided the redesigned PCB works).

The ATmega is almost full now... of the 64 KBs Flash ROM, I have like 512 bytes or the like left, so this project is finally *really* coming to an end  :D  (Compare this to the Mega Booster, which had 2/3rds of the ATmega flash ROM free... not saying that this makes it "better", but the reason for this is mainly that > 32 KBs are already consumed by the DECtalk / Epson firmware image for the speech synthesizer chip).


Another update to the board is - possibility to route audio output back into the CPC, for internal speaker. 2 more DIP switches for left / right channel routing.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:13, 12 April 19
Small update:

LS 3.0 now also has a serial interface on board, and new control bytes / commands have been added to the firmware, for high speed buffered serial communication. Different baud rates up to 250 k baud, parity, width, stop bits, all configurable. Easy to program, non-blocking IO. Tested with Emic 2 USART speech synthesizer; more tests to come tonight.
Here is the bi-directional USART / serial test with the Emic 2 and BASIC terminal program:
https://youtu.be/ZLmwrpQ0wn8
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 10:03, 12 April 19
... and a last test, this time with Amstrad NC100 Terminal:

https://youtu.be/uKeZEkyIqtg

This is using the

https://www.amazon.com/gp/product/B07GP9SLCH/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1

that had arrived in the meantime. Signal quality is good; the standard DB9 serial cable is 10 foot, and not glitches.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 18:05, 15 April 19
Can they be used too?


https://www.ebay.de/itm/MAX3232-RS232-3V-5V-Serial-Port-To-TTL-Converter-Module-Female-DB9-MAX232/263891823855?hash=item3d712dacef:g:5WsAAOSwNgNbfDAY (https://www.ebay.de/itm/MAX3232-RS232-3V-5V-Serial-Port-To-TTL-Converter-Module-Female-DB9-MAX232/263891823855?hash=item3d712dacef:g:5WsAAOSwNgNbfDAY)

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 18:54, 15 April 19
Can they be used too?


https://www.ebay.de/itm/MAX3232-RS232-3V-5V-Serial-Port-To-TTL-Converter-Module-Female-DB9-MAX232/263891823855?hash=item3d712dacef:g:5WsAAOSwNgNbfDAY (https://www.ebay.de/itm/MAX3232-RS232-3V-5V-Serial-Port-To-TTL-Converter-Module-Female-DB9-MAX232/263891823855?hash=item3d712dacef:g:5WsAAOSwNgNbfDAY)


Haven't tried them yet, but I don't see why not.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 21:33, 17 April 19
Happy to announce that LS 3.0 will also come with RTC support - the 4 $


DS3231 module


https://www.ebay.com/itm/DS3231-AT24C32-IIC-Precision-Real-Time-Clock-RTC-Memory-Module-for-Arduino-USA/382781644430?epid=10014451982&hash=item591f905e8e:g:UiEAAOSwUnJcYdme (https://www.ebay.com/itm/DS3231-AT24C32-IIC-Precision-Real-Time-Clock-RTC-Memory-Module-for-Arduino-USA/382781644430?epid=10014451982&hash=item591f905e8e:g:UiEAAOSwUnJcYdme)


can be plugged in at the back.


This gives you a battery buffered RTC with calendar, temperature sensor, and of course the ability to get and set date and time from the CPC, in addition to a speaking clock function. Alarms are not supported.


I'll post a video tonight.

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 22:17, 17 April 19
WoW! Now LS3 is a real multi-expansion!  :) :) :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 22:18, 17 April 19
... I promise that was the last feature. The ATmega is full now.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: zhulien on 12:27, 18 April 19
Happy to announce that LS 3.0 will also come with RTC support - the 4 $


I think I will pick the mp3 though over the clock. They both go in the same port right?  Which I wonder is this possible...  Aside from setting the time, it is mostly read.  To play mp3 it is always written.  If the clock can be set with commands that are ignored by the mp3, can they both exist together somehow?
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 16:28, 18 April 19
Actually time for a multi-RTC management tool for CP/M Plus.  :P
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:28, 18 April 19

I think I will pick the mp3 though over the clock. They both go in the same port right?  Which I wonder is this possible...  Aside from setting the time, it is mostly read.  To play mp3 it is always written.  If the clock can be set with commands that are ignored by the mp3, can they both exist together somehow?
No, they don't - you can have MP3 and RTC at the same time.
MP3 is UART, and RTC + Calendar + Temperature Sensor is I2C. So they don't clash.

Here is the video:

https://youtu.be/5vfmYaa_OPY (https://youtu.be/5vfmYaa_OPY)
The video only shows the "talking clock" and how to read the temperature via INP; obviously, you can also retrieve hours, minutes, seconds, and year, month, day, and weekyday in a similar way. And the calendar data can also be set in the same way as shown for the time.

So, for applications - yes, you can write an alarm clock that wakes you up to MP3 music. With the caveat that the CPC needs to stay on which is probably not what you want.
It would be nice if LS 3 could "bootstrap" the CPC - the RTC module has an alarm pin. Upon alarm it sets the pin high. This closes a relay. The relay turns on the CPC. The CPC has a ROM that then checks if the Alarm condition is met - and sends the "MP3 play music" command over UART...  :D You know: 

https://youtu.be/WjX1jU9pQeY (https://youtu.be/WjX1jU9pQeY)
I am not going for this currently though  ;D


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 17:37, 18 April 19
Temperature sensor is great, then we can see when to take a break  :laugh:
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:53, 18 April 19
Temperature sensor is great, then we can see when to take a break  :laugh:
My break starts right now... one more edit to the PCB and done  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 09:37, 19 April 19
The headers for I2C and UART are on board.
The MP3 and RTC boards will be mounted on the back of the LS.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 17:26, 19 April 19
Updated software. "RTC.BAS" on LS300.dsk shows how to set and use the RTC / calendar / temperature sensor.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 04:32, 20 April 19
Next PCB.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 04:07, 21 April 19
Here is a demo of the Talking Clock for the CPC (a BASIC program on the LambdaSpeak 3 Software Distribution DSK that uses the RTC):

https://youtu.be/Dsok873zTjM

Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 06:56, 21 April 19
Here is the last of the test videos - this time 115200 serial over FTDI with Linux PC:

https://youtu.be/8MZMzynYyxI
This completes the LambdaSpeak 3.0 tests.


Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 23:52, 21 April 19
One more update to RTC.bas and SERIAL.bas.
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: LambdaMikel on 04:17, 22 April 19
... this is how your "final prototype / final product" looks like after you listened to the feature requests from  potential users / buyers  ;)   
Thanks for that, @zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58) ! The serial interface / MP3 board option, RTC, and loop back audio into CPC speaker should make a big difference in value for money, glad you suggested it  :)
Title: Re: New "Next Generation Speech Synthesizer" for the CPC 464
Post by: GUNHED on 15:30, 25 April 19
Now, it's a comprehensive expansion card like the SF3. And both actually fit together very well.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:50, 25 April 19
Thanks @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) , but it doesn't have storage facility or RAM / ROM expansion, and I am not going to add this either. Maybe the little EEPROM could be used to store some data. But the ATmega firmware is full.

I have changed the title of this thread btw to reflect the fact that it is for all CPCs, and more than just a Speech Synth by now.

Somebody suggested though to open up the I2C and SPI capability such that it support arbitrary I2C and SPI devices. The hardware is capable of doing this, but it is not clear to me how a high level API for the CPC to I2C and SPI should look like (maybe similar to UART? send message blocks, buffer them, transmit them). Anyhow, this ATmega is full.

I can offer an alternative firmware for opening up I2C and SPI with a new API at some point though, using the same hardware.

But originally I had though this to be a different project,

http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-hardware-tinkering-platform/ (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-hardware-tinkering-platform/)
but nobody seems to be interrested in such a device.

I still think the little click! boards are extremely ingenious and if we can find a generic way of leveraging them for the CPC, it could mean the end of all CPC hardware development  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:53, 27 April 19
Therefore I like the idea of the combination of SF3 and LambdaSpeak 3. Guess 3 is a good number  ;) :) :) :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:17, 30 April 19
Happy to say that LambdaSpeak 3 reached its final form and the new version passed all tests  :)
@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) @Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) @zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58) I will start making them for you now.

If somebody else would like one, please drop me a PM for details. The MP3 and RTC module and the SPO256-AL2 are optional, and they add to the price. I can also solder in pin headers instead of the modules, then one can use DuPont cables to use the serial interface.

Thanks again to all who provided ideas and helped shape the final product, especially @zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58) @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) @bryce.



Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 19:50, 30 April 19
Excellent! Now is also the time for the wishlist of the community. A 16 KB ROM has quite some space and YOU can tell now what you like to be part of the LambdaSpeak III software RSX library.  :) :) :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 08:35, 01 May 19
OK, here is the cost breakdown for LS 3.0

Basic LS 3.0 - no SPO256-AL2, no MP3, no RTC, no LambdaDrum, no Epson board:
Sum: 50 $.

To this, you can add the following options:
So, a "deluxe LS 3.0 with everything" (shown in the pictures) will cost you

50 + 39 + 35 + 5 + 6 + 4 = 139 $.

If someone finds cheaper options for, for example, SPO256-AL2, let me know. The cheapest I found was 35 $ (including shipping).

If you already own a SPO256-AL2 and the click Epson speech board, then it is not too expensive - 65 $.







Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:13, 02 May 19
My personal suggested configuration:
50 + 39 + 5 + 6 + 4 = 93 $.

But let's ship a bunch of them from USA to Europe, then the price will drop further to about 93$, which is about 84 Euros. That's a decent price for all the functionality.

Now I would volunteer to send LS3 to you all over in Germany/Europe if case LambdaMikel is fine with that.
Maybe it's time to start a list of potential buyers, or is it to early?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:30, 02 May 19
Thanks for the initiative and enthusiasm, @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) !!

It has to be small batches though, because I do not have the capacity to produce a lot of these in a small period of time (and there might not be that many buyers anyhow). But I will publish the Gerbers and Firmware such that others could also build it. I will need to work on the Github site with the info also.

But I guess if we could send over batches of 5 to Germany and then dispatch / distribute from there, that would already reduce postage significantly.

Currently, I am assembling a batch of 6. I would also like to hear from these first customers first before assembling more. Every CPC is different. So @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) and @Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) and @zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58) and 2 other members will get theirs soon.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 07:29, 03 May 19
Gerbers:
https://www.seeedstudio.io/LambdaSpeak-3-g-1230571 (https://www.seeedstudio.io/LambdaSpeak-3-g-1230571)
Project GitHub / firmware:
https://github.com/lambdamikel/LambdaSpeak3
Readme.md still pending.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:09, 03 May 19
Very well, guys if you use Gerbers work together to save money.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 08:51, 05 May 19
Board explanations


Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:34, 05 May 19
Great picture! Perfect for the manual.  :)  Ehm... I will do some day.  ;)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 19:14, 05 May 19
Great picture! Perfect for the manual.  :)  Ehm... I will do some day.  ;)
I think the |help command will be perfect for that... with picture of course  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 21:47, 05 May 19
Or a schematic of it...
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 10:23, 09 May 19
Getting there... first batch going to be tested tomorrow, shipping probably on Friday if tests go well.
A new era of CPC speech+PCM sound+MP3 begins  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 19:10, 09 May 19
The world will never be the same! This is so great for game development!  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 01:26, 10 May 19
The world will never be the same! This is so great for game development!  :)


I gladly accept the offer for world leadership, thanks!  ;) :laugh:
Glad I am not getting more likes, otherwise I would have to spend all my evenings soldering these things.
Thank god nobody is interested in it, now I can move on to the next project (hello, TRS-80...)  :D
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 01:35, 10 May 19
@XeNoMoRPH (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1952) , I have parts for exactly 1 LS 3 left - are you interested? Since you just bought LS 1.95, your price will be reduced.



Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Audronic on 02:13, 10 May 19
I can move on to the next project (hello, TRS-80...)  :D


Which TRS-80 ? Model 1/3/4 CoCo ?


Ray
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 03:12, 10 May 19

Which TRS-80 ? Model 1/3/4 CoCo ?


Ray


Yes, I have a Model 4 and a CoCo 2. The speech synth will be for TRS 80 Model 1 / 3 / 4.  (2 is different AFAIK).
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 17:44, 10 May 19
@XeNoMoRPH (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1952) , I have parts for exactly 1 LS 3 left - are you interested? Since you just bought LS 1.95, your price will be reduced.
yes , i'm interested  8)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 01:01, 11 May 19
Alright, offer sent!


The first batch is gone and almost ready to ship.

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 20:30, 15 May 19

Yes, I have a Model 4 and a CoCo 2. The speech synth will be for TRS 80 Model 1 / 3 / 4.  (2 is different AFAIK).


Well, I got a Genie IIIs at home (from TCS, IIRC TRS-compatible). Would the LS run there too? That would be fun!  :laugh:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 21:08, 15 May 19

Well, I got a Genie IIIs at home (from TCS, IIRC TRS-compatible). Would the LS run there too? That would be fun!  :laugh:


This one?

https://www.classic-computers.org.nz/system-80/promotions_flyer_genie3s.pdf (http://www.cpcwiki.eu/forum/chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/https://www.classic-computers.org.nz/system-80/promotions_flyer_genie3s.pdf)


Made by Siemens... wow  :)


It even has expansion slots inside... no idea whether these are compatible with any TRS80 Model 3, 4, 4p.... the TRS computers did not have internal "PC-like" expansion slots. It was possible to upgrade the RAM, put in a Serial Interface, and Graphics Card, but they all had "predefined" places on the motherboard, so no universal expansion slot mechanism existed.


However, there is an expansion port of course. If the TRS IIIs has the same expansion port and pin out like the TRS 80 Model 3 & 4, then sure, it will work!


EDIT - that was a great time when German companies were still building computers... sad to see that the TRS IIIs had no market share whatsoever. I had a Siemens PC in 1998 - 2002 (but that was already Fujitsu Siemens, and the MOBO was really ACER...)

TFM, please post a video of this beauty, with some nice CP/M graphics!!
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 21:21, 15 May 19

Link is broken...

No, not Siemens, TCS :-) It is more like this one: (see attachment). However mine has some military medical upgrades:

- Z80 runs with 8 MHz
- 2nd Z80 with also 8 MHz and own 64 KB RAM
- Piezo sound data transfer systems (mind control, measurement of bones)
- Bullet proof steel casing
- way too big keyboard

At the end of the day I work with the CPC though ;-)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 21:25, 15 May 19
Link is broken...

No, not Siemens, TCS :-) It is more like this one: (see attachment). However mine has some military medical upgrades:

- Z80 runs with 8 MHz
- 2nd Z80 with also 8 MHz and own 64 KB RAM
- Piezo sound data transfer systems (mind control, measurement of bones)
- Bullet proof steel casing
- way too big keyboard

At the end of the day I work with the CPC though ;-)


Yes, that's the same thing as the link I posted. It was manufactured by Siemens for TCS... flyer attached.

TCS only purchased stuff and put a sticker on top / rebranded them. Same business model like Schneider had.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 21:30, 15 May 19
Yes, that's it. A killer machine, sadly no sound was planned ever. Oh, well it got three 8 bit parallel I/O ports, that could be a digiblaster.... better I go with the LS3. 
I will be able to stream from 1,6 MB 8" floppy drives.  :)  No, just kidding, I will use the 0.7 MB 5,25" floppies of course.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 22:21, 15 May 19
At the end of the day I work with the CPC though ;-)


Well, you can use the Genie IIIs in the morning hours then though  :D
(Don't we all need a little bit of Genie inside from time to time )
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 11:41, 16 May 19
I can't wait for my Lamdaspeak - I want to see if i can patch a commercial game to have an MP3 soundtrack and speech!
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 12:15, 16 May 19
btw, did you see Robotic Liberation yet?


https://www.youtube.com/watch?v=2SdGkkp1aq8 (https://www.youtube.com/watch?v=2SdGkkp1aq8)


You can imagine it is singing.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 14:56, 16 May 19
Anybody got the source code of this ?


https://www.youtube.com/watch?v=ELE24jchei4 (https://www.youtube.com/watch?v=ELE24jchei4)

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:30, 16 May 19
Anybody got the source code of this ?


https://www.youtube.com/watch?v=ELE24jchei4 (https://www.youtube.com/watch?v=ELE24jchei4)
You play it here, with speech :

https://archive.org/details/arcade_berzerk#
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:31, 16 May 19
btw, did you see Robotic Liberation yet?
https://www.youtube.com/watch?v=2SdGkkp1aq8 (https://www.youtube.com/watch?v=2SdGkkp1aq8)
You can imagine it is singing.
Wow, that's impresse for unexpanded VIC-20... no I haven't! Thanks for sharing!

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:47, 16 May 19
I can't wait for my Lamdaspeak - I want to see if i can patch a commercial game to have an MP3 soundtrack and speech!
Sounds good! Switching modes and such might require some firmware changes though, we will see... we can work together on this. Do you have an EPROMER? 

https://www.ebay.com/itm/Mini-TL866II-Pro-USB-BIOS-Universal-Programmer-Kit-with-9pcs-Adapter-W1A1/401757767419?epid=25018582478&hash=item5d8aa106fb:g:ZmkAAOSwa1NcxGq1 (https://www.ebay.com/itm/Mini-TL866II-Pro-USB-BIOS-Universal-Programmer-Kit-with-9pcs-Adapter-W1A1/401757767419?epid=25018582478&hash=item5d8aa106fb:g:ZmkAAOSwa1NcxGq1)

USB TL866II

https://github.com/lambdamikel/LambdaSpeak3 (https://github.com/lambdamikel/LambdaSpeak3)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 02:43, 17 May 19
Maybe I can do a "quick and dirty" Berzerk and put it into the LS3 ROM. However if would be great to have the original source and a description of the arcade machine. This way we could do an emulation on CPC. Anybody else working on this?  :-\
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 03:43, 17 May 19
Oh, that'll be awesome!
It should be possible to get the samples from the YouTube videos.
And 128 KB of PCM memory should also suffice for them.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 22:42, 17 May 19
Sounds good! Switching modes and such might require some firmware changes though, we will see... we can work together on this. Do you have an EPROMER? 

https://www.ebay.com/itm/Mini-TL866II-Pro-USB-BIOS-Universal-Programmer-Kit-with-9pcs-Adapter-W1A1/401757767419?epid=25018582478&hash=item5d8aa106fb:g:ZmkAAOSwa1NcxGq1 (https://www.ebay.com/itm/Mini-TL866II-Pro-USB-BIOS-Universal-Programmer-Kit-with-9pcs-Adapter-W1A1/401757767419?epid=25018582478&hash=item5d8aa106fb:g:ZmkAAOSwa1NcxGq1)

USB TL866II

https://github.com/lambdamikel/LambdaSpeak3 (https://github.com/lambdamikel/LambdaSpeak3)


I don't have one at the moment.  Does the lamdaspeak have a non-CPC ROM onboard?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 03:19, 18 May 19
Yes, the LS3 firmware running on the ATmega... well, hopefully nothing needs to change.

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 15:35, 18 May 19
LS 1.95 works on CPC464 ?  :D
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:33, 18 May 19
Of course, they work with all CPCs and Plus.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 20:47, 23 May 19
LS3 received, and posted... here a picture of the hypno lights... Two are off, I assume they are spare for a firmware update?

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 21:34, 23 May 19
LS3 received, and posted... here a picture of the hypno lights... Two are off, I assume they are spare for a firmware update?
I also have my unit ;D
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 22:19, 23 May 19
Cool! You've been 1st I guess!  ;D


Now I'm supposed to make an RSX expansion, but nonsense is more fun for tonite ;-)

https://youtu.be/zmBOmZLTOAk
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 22:38, 23 May 19
I can see a new RSX command there:
 
|cylon


 :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 22:39, 23 May 19
LS3 received, and posted... here a picture of the hypno lights... Two are off, I assume they are spare for a firmware update?


Lights are explained here:


https://github.com/lambdamikel/LambdaSpeak3 (https://github.com/lambdamikel/LambdaSpeak3)



Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 05:06, 24 May 19
Ah! Great! Lots of information. Everybody should take a closer look!  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 07:21, 24 May 19
Quote from: GUNHED 
Cool! You've been 1st I guess!  ;D


Now I'm supposed to make an RSX expansion, but nonsense is more fun for tonite ;-)

https://youtu.be/zmBOmZLTOAk (https://youtu.be/zmBOmZLTOAk)
I want that  :o :o
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:28, 24 May 19
The 8 lights correspond to the bits you send to port &FBEE. So it's a little BASIC program (on CPC, not on my laptop here) which sends values 1, 2, 4, 8, 16, 32, 64, 128 and then 64, 32, 12, 8, 4, 2 and then starts again. Between sending the values you put FRAME:FRAME:FRAME and that's it. :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 20:09, 24 May 19
The 8 lights correspond to the bits you send to port &FBEE. So it's a little BASIC program (on CPC, not on my laptop here) which sends values 1, 2, 4, 8, 16, 32, 64, 128 and then 64, 32, 12, 8, 4, 2 and then starts again. Between sending the values you put FRAME:FRAME:FRAME and that's it. :)
Can you put me program basic here ? , thx  :o
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 20:17, 25 May 19
Can you put me program basic here ? , thx  :o
Ok, I just need to get it from CPC to PC....
Here you go...

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 05:05, 27 May 19
To the guys with a LambdaSpeak 3 - I just found that one of the BASIC demo programs doesn't work when M4 firmware / ROM is enabled. The DRUMLOAD.BAS program loads the Boss DR 660 Drum Computer samples into EEPROM from DSK and uses the Amsdos header information to figure out the file size. This gets messed up with M4 ROM enabled, so program only works on plain 464 and 6128 with Amsdos or Parados.

So, if you want to play with LambdaDrum BASIC programs, please make sure to have ordinary Amsdos or Parados etc. It seems M4 patches these.

https://github.com/lambdamikel/LambdaSpeak3
 (https://github.com/lambdamikel/LambdaSpeak3)
I have update the DSK images there also with a note regarding that.

EDIT: JUST learned from @Rennert (http://www.cpcwiki.eu/forum/index.php?action=profile;u=992) that you can just use lM4ROMOFF to disable the M4 ROM. 
 
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 10:46, 27 May 19
Mine just arrived. Fabulous piece of hardware @LambdaMikel (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2172) ! Will play more with it at the weekend when I have time. Thanks also to @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) for forwarding it on to me :)


Bryce.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 18:25, 27 May 19
Mine just arrived. Fabulous piece of hardware @LambdaMikel (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2172) ! Will play more with it at the weekend when I have time. Thanks also to @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) for forwarding it on to me :)
Thanks for the kind words, Bryce - and for all the help  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 20:56, 27 May 19
Mine just arrived. Fabulous piece of hardware @LambdaMikel (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2172) ! Will play more with it at the weekend when I have time. Thanks also to @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) for forwarding it on to me :)
Good to see it arrived. Working on RSX-ROM for LS3 now... work in well progress...  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 22:16, 27 May 19
@TFM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=179) / @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029)  without your RSX / ROM, LS would only be half as usable!! Thumbs up!!
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 00:53, 28 May 19
@TFM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=179) / @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029)  without your RSX / ROM, LS would only be half as usable!! Thumbs up!!
Oh well. FutureOS support is already there.  ;D ;D ;D ;D ;D ;D
Implemented PCM Sample upload today. (Couldn't do more, needed to rescue laptop).
Missing: Sample Play and MP3 stuff.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 02:48, 28 May 19
Oh well. FutureOS support is already there.  ;D ;D ;D ;D ;D ;D
Implemented PCM Sample upload today. (Couldn't do more, needed to rescue laptop).
Missing: Sample Play and MP3 stuff.
Wow! You are a Z80 Wizzard  :o
Yes, you can synchronize PCM upload by checking "ready for next byte" in upload stream &20.

How fast can you upload? Curious! My BASIC program needs 15 mins for ~120 KBs.

PS Regarding FOS - seems you already have the RTC support in... by default, it goes to M4 clock though, so I need to burn some "real" Eproms now with new FOS such that I can run it from RomboRedux
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 03:51, 28 May 19
Forgot that I also have the XMem - and FOS even has an installer for it!

So, here is FOS with LambdaSpeak 3 RTC support. It works  :)

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 08:27, 28 May 19
@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029)  another thing I forgot to ask - now that you got your LS3, does it actually fit in the Amsdap? Remember I changed the PCB design according to your suggestion  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 19:00, 28 May 19
I have to look...
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 12:02, 29 May 19
Forgot that I also have the XMem - and FOS even has an installer for it!
So, here is FOS with LambdaSpeak 3 RTC support. It works  :)
Ah great! Thank you for confirming.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 16:22, 29 May 19
https://vimeo.com/339107491  :laugh: :laugh: :laugh: :laugh:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:51, 29 May 19
The LS3 ROM advances... I just have troubles with |PCMPLAY... but hope to find out what's the problem on software side. This is how far I got till today...
(Also MP3 things and temperature are still missing. Temp-Sensor added.)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 19:22, 29 May 19
The LS3 ROM advances... I just have troubles with |PCMPLAY... but hope to find out what's the problem on software side. This is how far I got till today...
(Also MP3 things and temperature are still missing)


Great progress, excellent!!!
Looking forward to testing it tonight.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 23:48, 02 June 19
Last update of the LambdaSpeak III RSX ROM before my annual vacation... just click at the link in my signature (from now on and again). Comments are welcome as usual.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 09:00, 03 June 19
is there any RSX command to play mp3 files ?  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 10:08, 03 June 19
Can't check at this time, but will soon! Awesome job so far, as usual!  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 14:50, 03 June 19
Thank you very much! Awesome hardware, can't wait until my vacation is over. I'll take off tomorrow, but few hours are left, so I already dive into MP3 commandos. They will be added during this month.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 21:51, 03 June 19
Little update in documentation. No new commands, but explanations.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 21:52, 03 June 19
is there any RSX command to play mp3 files ?  :)
They will come! And they will be easy.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 03:01, 09 June 19
Alright, |pcmup is working now! And indeed much faster than the BASIC version  :)
|pcmplay also works fine, but we would need RSX commands to enable the PCM EEPROM playing mode. These are not there yet, right?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 01:43, 11 June 19
Hi Mikel,


Playing with the mp3 and speech, and at the same time, i think either i am doing something wrong (likely) in the way I am reading statuses. 


I have artifical delays in lines 40 and 110 (using after) to force a delay, is there a status that can be read to know when the current command is finished processing?
line 30 configures a track to play.  The silencing at the start is not reliable (I have randomly tried different combinations of mode changes to experiment), since... if a game was playing an mp3 and it is reset, the mp3 will continue to play, however, switching to serial mode, then silencing the mp3 seems to be logical (if run again or a silence command is created). 
There is a lot of speech relating to changing modes, is there a command to silence mode changes?
In the below example, 'ideally', the behaviour would be... speak a single sentence (Now, let us listen to some music) then play the mp3 immediately after (without an artifical delay) - as the music is playing if you break (or end), running again should silence it before speaking again...  when the music is playing, manually gosubbing to the various subroutines, you can of course change modes and cause speech to come out - which proves in principle, that speech and mp3 playback is possible at the same time.


Below is an example:


Code: [Select]
10 MODE 2
20 WINDOW #2,1,80,20,25
30 t%=4'current track
40 PRINT"silence..";:GOSUB 230:GOSUB 140:GOSUB 160:GOSUB 180:GOSUB 210:AFTER 150 GOSUB 60
50 GOTO 50
60 GOSUB 270:GOSUB 230:PRINT"done"
70 PRINT"reset..";:GOSUB 140:PRINT"done"
80 PRINT"enter epson mode..";:GOSUB 160:PRINT"done"
90 PRINT"enter echo mode..";:GOSUB 180:PRINT"done"
100 a$="Now, let us listen to some music.":PRINT a$:GOSUB 200
110 GOSUB 210:GOSUB 270:AFTER 150 GOSUB 130'artificial delay
120 RETURN
130 GOSUB 300:RETURN
140 'reset to default ssa1 mode
150 OUT &FBEE,&FF:GOSUB 450:RETURN
160 'enter epson mode
170 OUT &FBEE,&EF:GOSUB 450:RETURN
180 'echo mode
190 OUT &FBEE,&EF:GOSUB 450:OUT &FBEE,&EB:GOSUB 450:RETURN
200 FOR i%=1 TO LEN(a$):c$=MID$(a$,i%,1):OUT &FBEE,ASC(c$):NEXT:OUT &FBEE,13:GOSUB 450:RETURN
210 'enter serial mode
220 OUT &FBEE,&F1:GOSUB 450:RETURN
230 'exit serial mode
240 OUT &FBEE,&FF:OUT &FBEE,&14:GOSUB 450:RETURN
250 'send serial command
260 OUT &FBEE,&7E:OUT &FBEE,&FF:OUT &FBEE,&FF:OUT &FBEE,&6:OUT &FBEE,a%:OUT &FBEE,&0:OUT &FBEE,b%:OUT &FBEE,c%:OUT &FBEE,&EF:OUT &FBEE,255:OUT &FBEE,2:RETURN
270 'reset mp3 player
280 a%=&C:b%=0:c%=0:GOSUB 250:RETURN
290 'play track
300 a%=&F:b%=1:c%=t%:GOSUB 250:RETURN
310 'increase volume
320 a%=4:b%=0:c%=0:GOSUB 250:RETURN
330 'decrease volume
340 a%=5:b%=0:c%=0:GOSUB 250:RETURN
350 'silence
360 a%=6:b%=0:c%=0:GOSUB 250:RETURN
370 'half volume
380 a%=6:b%=0:c%=15:GOSUB 250:RETURN
390 'max volume
400 a%=6:b%=0:c%=30:GOSUB 250:RETURN
410 'pause
420 a%=&E:b%=0:c%=0:GOSUB 250:RETURN
430 'continue
440 a%=&D:b%=0:c%=0:GOSUB 250:RETURN
450 'wait
460 a%=INP(&FBEE):IF a%=0 THEN GOTO 460 ELSE PRINT #2,a%
470 RETURN
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 02:56, 11 June 19
hi @zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58)


it should not be necessary to write delay loops.
All modes have some kind of "ready" indicator that you can wait for on port &fbee.


For example, here is a piece of Z80 that resets LS 3 and then waits until it is ready to receive commands (as the reset takes about half a second or so):


Code: [Select]

org #8000
.start
LD BC,#FBEE
LD A,#FF
OUT (C),A
.loop1
IN A,(C)
CP 128
JP NZ,loop1
RET


There is also a version of this program on the LS300.dsk


https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/LS300.dsk (https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/LS300.dsk)


Wrt to the MP3 serial module, I will have to check... I have not tried reading back the UART responses from it that are being generated as responses to the "play MP3 file" commands and similar. I believe it does generate return messages, but I haven't written code for that. In principle, if it does, it should just be possible after each command to read the return message; maybe have a look at the "serial.bas" program on the LS300.dsk above to see how to read back the received serial data (you can query / poll for the number of bytes in the receive buffer after the serial command has been sent - if the MP3 module acknolwedges a command by sending back a return string, then you can just repeatedly check if an answer is available in the buffer, and if so, retrieve it).


I can also try this and post the result here. 


And yes, it is also possible "to silent" the acknowledgement messages such that mode switching should be "silent"; try out &fbee,&e8 ("confirmations off"). Table of command bytes is here:

https://github.com/lambdamikel/LambdaSpeak3 (https://github.com/lambdamikel/LambdaSpeak3)

(search for "&e8" in this page)


I think speech and MP3 should be possible at the same time, but I think you would need to start the MP3 first, and then do the speech. Otherwise I am afraid that you will only be able to start the MP3 AFTER the speech has finished; I have to try this for myself. Will post the results here.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 03:24, 11 June 19
PS Let me run your program and see if I can tweak it a bit...
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 10:22, 11 June 19
OK, I have looked at this, and with the current LS 3 firmware, there is no solution which is entirely satisfying. It wasn't really designed with that in mind. This code is the best I could come up with for the current firmware - annoyingly, it always anounces "LambdaSpeak initialized, SSA-1 mode" after each "exit serial mode" command.

We need to change the "exit serial mode" command such that it can exit "silently", then this should work (I mean, it works, but it speaks this unwanted stuff as well).

Also, I did not manage to get any confirmation for MP3 commands from the module, maybe it doesn't send any. In that case, one needs to wait a little bit before sending the next MP3 command... see the for loop.

So, it is constant switching back and forth between Epson mode and Serial Mode / Exit Serial mode, and the latter one needs to be changed such that it can be done silently, without acknowledgements. In principle, it is possible though.
Code: [Select]
10 MODE 2
20 WINDOW #2,1,80,20,25
30 GOSUB 130 
40 FOR t%=1 TO 8
50 a$="Now, let us listen to some music. How about track "+CHR$(48+t%)+".":PRINT a$:GOSUB 170
60 GOSUB 460
70 GOSUB 180
80 GOSUB 260
90 GOSUB 150
100 a$=INKEY$:IF a$="" THEN 100
110 NEXT
120 halt
130 'reset to default ssa1 mode
140 OUT &FBEE,&FF:GOSUB 430:OUT &FBEE,&E8:GOSUB 430:OUT &FBEE,&EF:GOSUB 450:OUT &FBEE,&EB:GOSUB 450:RETURN
150 'exit serial
160 OUT &FBEE,&FF:OUT &FBEE,&14:GOSUB 420:OUT &FBEE,&E8:GOSUB 420:OUT &FBEE,&EF:GOSUB 450:OUT &FBEE,&EB:GOSUB 450:RETURN     
170 FOR i%=1 TO LEN(a$):c$=MID$(a$,i%,1):OUT &FBEE,ASC(c$):NEXT:OUT &FBEE,13:RETURN
180 'enter serial mode
190 OUT &FBEE,&F1:GOSUB 450:RETURN
200 'send serial command
210 OUT &FBEE,&7E:OUT &FBEE,&FF:OUT &FBEE,&FF:OUT &FBEE,&6:OUT &FBEE,a%:OUT &FBEE,&0:OUT &FBEE,b%:OUT &FBEE,c%:OUT &FBEE,&EF:OUT &FBEE,255:OUT &FBEE,2
220 FOR i=1 TO 100:NEXT
230 RETURN
240 'reset mp3 player
250 a%=&C:b%=0:c%=0:GOSUB 200:RETURN
260 'play track
270 a%=&F:b%=1:c%=t%:GOSUB 200:RETURN
280 'increase volume
290 a%=4:b%=0:c%=0:GOSUB 200:RETURN
300 'decrease volume
310 a%=5:b%=0:c%=0:GOSUB 200:RETURN
320 'silence
330 a%=6:b%=0:c%=0:GOSUB 200:RETURN
340 'half volume
350 a%=6:b%=0:c%=15:GOSUB 200:RETURN
360 'max volume
370 a%=6:b%=0:c%=30:GOSUB 200:RETURN
380 'pause
390 a%=&E:b%=0:c%=0:GOSUB 200:RETURN
400 'continue
410 a%=&D:b%=0:c%=0:GOSUB 200:RETURN
420 'wait
430 a%=INP(&FBEE):IF a%<>128 THEN GOTO 430
440 RETURN
450 'wait2
460 a%=INP(&FBEE):IF a%<>32 THEN GOTO 460
470 RETURN
Btw, the 2 different wait / wait2 subprocedures are necessary, because of SSA-1 compatibility, a "READY" has to be announced as 128 (the SSA-1 does it so!), but to distinguish the modes, I am using 128 to signal "READY" in the "native" modes (Epson, ...). If I used 32 for Epson, then this might trap and trick existing SSA-1 software into thinking that it is dealing with an SSA-1 (even though LS 3 is in Native / DECtalk / Epson mode), and that won't work obviously.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 13:16, 11 June 19
Just saw the first LambdaSpeak III Review:


https://auamstrad.es/2019/05/review-del-nuevo-lambdaspeak-3/ (https://auamstrad.es/2019/05/review-del-nuevo-lambdaspeak-3/)

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 13:39, 11 June 19
Alright, |pcmup is working now! And indeed much faster than the BASIC version  :)
|pcmplay also works fine, but we would need RSX commands to enable the PCM EEPROM playing mode. These are not there yet, right?


Do you mean this one: |pcmmode, number_of_channels
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:29, 11 June 19

Do you mean this one: |pcmmode, number_of_channels
Right! Oh, it exists? Maybe it doesn't show up in the |lshelp?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:41, 11 June 19
Right! Oh, it exists? Maybe it doesn't show up in the |lshelp?
Of course it does, take a look at the picture I posted quite a while ago. Probably, the commands are getting too much. But we're not done yet.  ;)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 19:12, 11 June 19
Of course it does, take a look at the picture I posted quite a while ago. Probably, the commands are getting too much. But we're not done yet.  ;)
Gosh, it is 100 degrees F here... I guess I didn't see it because of heat  :D
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 04:14, 12 June 19
@zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58)  are you capable of flashing the firmware by now? Do you have a

https://www.amazon.com/Programmer-Programmable-Circuits-Adapters-Extractor/dp/B07CDD9PGT/ref=sr_1_1?keywords=TL866&qid=1560302073&s=gateway&sr=8-1 (https://www.amazon.com/Programmer-Programmable-Circuits-Adapters-Extractor/dp/B07CDD9PGT/ref=sr_1_1?keywords=TL866&qid=1560302073&s=gateway&sr=8-1)

https://www.ebay.com/itm/Mini-TL866II-Pro-USB-BIOS-Universal-Programmer-Kit-with-9pcs-Adapter-W1A1/401757767419?_trkparms=ispr%3D1&hash=item5d8aa106fb:g:ZmkAAOSwa1NcxGq1&enc=AQADAAAB0KX%2FKt4E1xf3SDqEdBclaYY3Cia0NKfqWGMNYycya3bgt8VPrmcO8hb6yEFPaqEJlD3CHeOGMBNfukei3dRjO9STjx%2FC6y6Ci96Zt7wOgI2NlTO4YK9%2BTeIfCLdmcIZyt9l4DXj5CcIbo8mvbR2b0mWZ1rrYaMADmyqSMHZtKjJ2yb1vuiL9b0cz9fgLdVLvKO736qd%2B1K1RTb51fOlxxVl3dbscnt7jhYA2PhPBDVeyC4GcYffUWssXFPOZpnVTfYsosrx%2B8GokCskeNFN3YRxoTprhwj%2F5r9VGbh%2BW0%2FHqEEkfCNy58zsxRdbJ0lDKRIpDdeasGO3wp8BAr0iAGcnQBTRTXiI%2F9lrq%2BqGpskS1ELYtASy%2B6sRaUb9wDRGXMjacD%2FLoR0%2BVXCb8Y1nRdlDLVyyrzdcPy2AJXZsNkUIzFaNZ9FFKnEe71LXdN%2FUH3rvARpoRasihzmEx%2BZ7nHxMhCkHGhWeO3oWcoLnIqck6dAnUP%2BfzoQ9VWFgiUc16g%2FYA0iJLSgkWScPqzzF%2FqL4pHOA7umi2Mp%2FY6G4JuFpbBOyeo6ntrLVAUgexeUw58kuPNxEGI8AEi8%2FHvR5fgvJEEYy42vr7K33ouUQ%2BP88w&checksum=40175776741993c4dd7dd6fa4af3bd135663be1b0e0a
or similar?

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 04:17, 12 June 19
Just saw the first LambdaSpeak III Review:


https://auamstrad.es/2019/05/review-del-nuevo-lambdaspeak-3/ (https://auamstrad.es/2019/05/review-del-nuevo-lambdaspeak-3/)
Ah, written by our friend @XeNoMoRPH (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1952)   :D Thanks!!
Google translate does an amazing job translating this into English btw.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 06:58, 12 June 19
@zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58)  are you capable of flashing the firmware by now?


i will order an eprom programmer soon.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 08:04, 12 June 19

i will order an eprom programmer soon.
Make sure I does AVR / ATmega ...
OK, let me know, and you can get an updated firmware.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 21:29, 12 June 19
Today I decided what to use for MP3 RSX commands, that should be:


MP3PLAY,song(1-99)
MP3XPLAY,folder(1-99), song(1-99)
MP3PLAYC,song(1-99)
MP3PLAYF,folder(1-99)

MP3VOL,volume(0-30)

MP3STOP
MP3HOLD
MP3CONT

MP3RES



Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 21:32, 12 June 19
Excellent! I would suggest to also have some serial mode commands, e.g.,
|serial, |exitserial,
|serialsend,a$
|serialreceive,@a$
|setbaud
|setwidth,...
etc.  ;)


I know, it's a lot...
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 21:35, 12 June 19
That's a good idea for post-MP3 work.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 12:24, 13 June 19
@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029)  another thing I forgot to ask - now that you got your LS3, does it actually fit in the Amsdap? Remember I changed the PCB design according to your suggestion  :)


Well, let's see. Here some pictures I could make today...


Finally slot 3 seems to suitable the best. But I think to go for slot 4, even if I have to flatten the connector a bit. The fully enhanced LS3 need some space in the back and also the SD card needs to be inserted there. So slot 4 may be the best option. Take a look for yourself.


In brief: It works!  ;D

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 12:34, 13 June 19
And some more... (few missing, forum does see a security problem  :-X )
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 06:58, 14 June 19
Today I decided what to use for MP3 RSX commands, that should be:


MP3PLAY,song(1-99)
MP3XPLAY,folder(1-99), song(1-99)
MP3PLAYC,song(1-99)
MP3PLAYF,folder(1-99)

MP3VOL,volume(0-30)

MP3STOP
MP3HOLD
MP3CONT

MP3RES


Playing with BASIC and using outs, I think best to use Lambdaspeak in default mode most of the time but switch to mp3 very briefly then back to control it, so there isn't any complicated stuff happening.


If it isn't too difficult, put the following... note: i am yet to try 999 to see if we can in fact play 999 tracks. but... my suggestion

MP3PLAY,song(1-99),optionalfadeinfromvolume,optionalfadeintovolume,optionalfadeoutfromvolume,optionalfadeintovolume,optionalsonglength

the songlength provided so you can work out when to start fading out, since the CPC isn't really playing mp3.  However, I would think there needs to be a little smarts to know if speech is playing already at the time an interrupt comes in (if speech is the main mode).  Wait for speech buffer to be filled (can speak asyncrhonously too)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:01, 14 June 19
Fade in and fade out would require interrupt usage, that's possible. But only fading out would make sense IMHO since most songs are fading in by themselves.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:05, 14 June 19
In brief: It works!  ;D
Good to know! Since I could never test it with Amsdap (don't own one). Thanks for sharing  :) What does not work is probably Amdrum mode with Amsdap, right? Because Amsdap is claiming the FFxx address space if I remember correctly.

 
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:46, 14 June 19
Only if MSX cartridges are connected.  :) 
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 18:12, 16 June 19
Fade in and fade out would require interrupt usage, that's possible. But only fading out would make sense IMHO since most songs are fading in by themselves.


I agree on that.  You can even edit the mp3 if you want the fade out to be at the end, but there are situations where you might in a game like to fade out early rather than just cut off the music.  So fade out as an option would be awesome as it would help BASIC game developers.


On the Wii, it is possible to substitute the in-game music with your own mp3's for some games.  I wonder if developers on CPC if they do start using mp3s might like to consider standardising on the allocations.   Eg: 01 title music, 02 gameover music, 03 highscore music, (04..20 reserved for specific musics), 21 start life ditty, 22 die dity, (23..29 reserved for specific dities), 51..x level music - that way you could be lazy to change your musics if you don't want to and at least have some sense in the structure.  Any thoughts?


I hope if game developers do support mp3, they do have AY CPC music as an option too.


With developing my front end for 8bitology, i have put everything in an 8bit folder, inside that an INI file to configure stuff. If everyone was to follow a standard for configuration, that would be cool too, eg: a m4 folder hardware/lambda.ini, where people configured how they want their hardware to work or be used, then games could default to those settings.  of course they don't need to use folders, users could have an ini file in each game folder perhaps.  In the case of 8bit API, i need to store the credentials that are returned from the server, you could call it a form of a cookie as browsers would use, but there are other things that benefit from it.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 18:16, 16 June 19
Rather than fadein or fadeout as part of the playing of the mp3 itself, perhaps just a fade rsx, |fade,startvol,endvol,fadespeed,increment/decrement, eg: fade 30,0,10,-2, would go from 30 to 0 volume at the time it is called in steps of -2 10/50ths of a second apart?  That would only be used if you wanted to fade in or out programatically.  A full song fadein or fadeout, let the developer edit the mp3 files to suit.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 20:21, 17 June 19
Back from my weekend trip. I can start working on the firmware upgrade tonight.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:21, 18 June 19
On the Wii, it is possible to substitute the in-game music with your own mp3's for some games.  I wonder if developers on CPC if they do start using mp3s might like to consider standardising on the allocations.   Eg: 01 title music, 02 gameover music, 03 highscore music, (04..20 reserved for specific musics), 21 start life ditty, 22 die dity, (23..29 reserved for specific dities), 51..x level music - that way you could be lazy to change your musics if you don't want to and at least have some sense in the structure.  Any thoughts?
Yes and Yes!!! Very cool idea! The way we use MP3's is to tell the device: Play #xxx from folder #yyy. So yes, you can exchange / hack in your own music.
And yes, it would be great to have some definition which number shall be used for something.
Great idea!!!  :) :) :)

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 09:00, 19 June 19
I have uploaded a new firmware (still experimental, but should do):

https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak-firmware-alternative.hex (https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak-firmware-alternative.hex)

Changes:
Also:
check out program "JULIAN.BAS" to use with this new firmware for seemless speaking and MP3 playing
https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/LS300.dsk (https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/LS300.dsk)

Also:
check out programs "DRUMLD2.BAS" and "DRUMMER2.BAS" for TFM-based PCM sample loading and drumming:
https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/midefseq2.dsk (https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/midefseq2.dsk)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 09:42, 19 June 19
Is there a manual to update the firmware?  :o
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:02, 19 June 19
Is there a manual to update the firmware?  :o


Well, from memory...


- Pull carefully out the ATMega CPU
- Position the CPU in your Burner
- Load the file to be updated, how this works is different from burner-software to burner-software
- Set the fuses if they are different. Check carefully. I will try to put pictures on this post.
- Burn new firmware
- Verify new firmware

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 19:24, 19 June 19
For the old firmware I just released the new update of the LS3 ROM, see my homepage. Most of the desired MP3 commands are added and working. If not try a 2nd time. I'm working hard with LambdaMikel to enhance performance.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 07:55, 20 June 19
Great job adding all these MP3 commands, @GUNHED  :)  (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029)

Unfortunately, with the current "alternative" firmware that I had posted, it hangs for me. The old BASIC programs for MP3.BAS and RTC.BAS from the LS300.DSK work fine though, also with the new alternative firmware. So I guess the RSX commands are having a timinig / synchronization issue because I changed the ready / busy confirmation in the new Serial Mode in the alternative firmware?

For example, I have my MP3 files in a folder "01/001xxx.mp3" etc. So if I just do |mp3playf,"01", or |mp3playf,1, the RSX hangs and does not return, and I don't hear any music.
Do I need to send another command first? Haven't tried with the old firmware yet. I guess we 2 need to sort out the firmware issue first, and we are already working on this (offline). Maybe some synchronization issue. I guess this is my fault of changing the firmware, but in a sense, you really also want these changes (see Julian discussion), so let's work on this together to sort that out  :)   
So if possible, let's make this work with old and new "alternative" firmware, because I think we would want the "alternative" firmware to become the next version of the LS 3 firmware (minus outstanding bugs and plus some improvments of course). 

Also, are you initializing the MP3 module? If I remember correctly, it needs some initialization command (see MP3.BAS) for it to work.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:06, 20 June 19
So I guess the RSX commands are having a timinig / synchronization issue because I changed the ready / busy confirmation in the new Serial Mode in the alternative firmware?

To issue and MP3 command one needs to send a number of bytes to port &fbee. What I do is:
- Confirmations OFF
- Serial Mode on
- send MP3 command code
- Serial Mode OFF
That's it.

How do I synchronize? Well, after sending a byte to port &FBEE, I do wait until LS3 provides value &20 on port &FBEE to tell me it's ready.  Maybe it does set the port to &20 to early?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 11:03, 21 June 19
... another update to the alternative / experimantal firmware has been posted in the GitHub.
Making sure now that BUSY / READY signal is set correctly in UART / Serial Mode, HOWEVER:
- |mp3play and friends still does not return from serial mode
- |mp3play sometimes STILL needs a second invocation for MP3 music playing to start.
Please notice that I do not know when the MP3 module is ready for the next command. So even if LS3 Serial Mode sends "READY" indicator, that does NOT mean that the MP3 module is ready. I don't know that, since I am not getting any handshaking signal / confirmation for the commands that are being sent. The TX line of the MP3 module is connected, but it seems it never sends anything. So, the only thing that helps is making sure that commands are not being sent to quickly... that should fix it.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:23, 21 June 19
New firmware works well!

- Use !MP3RES before any other MP3 command
- To wait 1/50 of a second allows to exit serial mode, but in a programs life that's an eternity... sooo
- Commands !SERIAL and !SEROFF added
- "How to update firmware" manual added (I'm the DAU regarding this anyway)

The LS3 is playing (again) all Captain Future Songs since hours here. Happy weekend!  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 07:06, 24 June 19
Execellent work @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) ! All MP3 commands work now with the latest firmware and no longer block.

I have hence made the "alternative" firmware the "official" one, and deleted the "alternative" one. Please upgrade your firmware to the latest official one:

https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware.hex (https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware.hex)

Changes there:
Please check out SERIAL.BAS on the updated LS300.DSK for how to communicate and read serial data. For example, to read a byte from the input receive buffer:

Code: [Select]
10 rem wait for ready:
20 wait &fbee,32
30 rem send get byte at cursor position in serial receive buffer command
40 out &fbee,255
50 out &fbee,9
60 rem read byte - notice that in BASIC that will only suceed if "slow getters" are enabled; in MC, it doesn't matter
70 byte=inp(&fbee)
80 if inp(&fbee)=0 then 80
90 if inp(&fbee)<>32 then 90
100 print "Received: ", byte
@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) I have checked again and the MP3 module does not return any confirmations, so waiting a little bit in between commands is the only way of making sure that commands are not skipped. Your MP3 commands are working great with the latest firmware that has these changes, no changes required. The biggest change in this firmware is:So, @zhulien (http://www.cpcwiki.eu/forum/index.php?action=profile;u=58) it is time to upgrade the firmware now. See the program "JULIAN.BAS" for simultaneous speech and MP3 playing.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 07:34, 24 June 19
Here are ideas for the next version:
All serial settings other than baud rate are not important IMHO (and don't require a dedicated RSX command - they can be used directly using out &fbee,<command>).
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:05, 24 June 19

Here are ideas for the next version:
  • |pcmupfile - EEPROM PCM upload directly from WAV file
  • |BLOW,@string - send string over serial interface
  • |SUCK,@rec - receive string from serial interface
  • |serbauds,baudrate
  • |decsing,songfile

Good ideas! And one question, for the |decsing command: Are there rules which blocks of bytes / characters I need to send to the LS3? Since I do read a file sequential - byte by byte - sometimes it needs to stop to read more bytes from disc to the RAM buffer. When do I "wait". Sorry, I'm not sure if I can explain what I mean. :-X
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 18:01, 24 June 19
Good question... well the input buffer is being flushed automatically to the Epson chip at character 254 if no CR had been received. 

After that, one needs to send the "preamble / header" again, which sets the right mode for singing which each "line" you are going to send in that way.

Please have a look at the DECSING.BAS program on the LS300.DSK. The tricky part is how to compute and extract the "preamble / header" again. I could imaging a DECsing song format which first declares the overall settings (line 1), then declares the header / preamble (second line), and then each subsequent line is implicitly  being prefixed with the header / preamble. That way you don't need to compute it from the standard DECTalk song format.

There are lot of songs on the "Flame of Hope" website:
http://theflameofhope.co/dectalk%20speak%20window/ (http://theflameofhope.co/dectalk%20speak%20window/)

However, most of these only work for DECtalk V2, and LambdaSpeak uses DECTalk v5. So most (if not all of them) don't work out the box, without editing. But I have 2 songs converted on the LS300.DSK that do work with DECtalk v5.

See also
https://forums.parallax.com/discussion/141536/zip-file-of-emic-2-songs (https://forums.parallax.com/discussion/141536/zip-file-of-emic-2-songs)
Ideally, the song is broken up at position which have pauses, "_<....>".
 
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:06, 24 June 19
Ok, so this has to be more complex and a command like !speakfile would not work for DEC songs.


It's sad that v5 doen't "eat" the older v2 songs.  :-\
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 21:05, 24 June 19
Right, that one is not so easy...


Wrt ideas:
Maybe at some point we could explore other use cases for the EEPROM, now that we can upload 128 KBs within 3 or 4 seconds. It could be used as a simple drive. Not sure how difficult it would be to patch AMSDOS or similar for it though. And 128 KBs are not that much. Wish they made larger 25LC.... EEPROMs (well, maybe they do, but I couldn't get any in that DIP package).

 
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:38, 25 June 19
Other usages are 'in principle' good ideas. IMHO they should stay connected with LS though. Because we have X-MEM, SF2, SF3, RAM and ROM expansions without an end.


I could imagine some (stupid) things like:
- Data for sentences (transfer a number to the LS instead of a full sentence)
- aehm... apps to be temporarily load into LS3
- aaaaeeeeehmmmmmmm ... going to sleep over it  ;D
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 20:23, 25 June 19
In any case, I will add a function that allows the CPC to read the EEPROM contents per page. It can then be used to store up to 128 KBs of arbitrary data, and can be used for anything we like, not only PCM data. Maybe we can store alarms for the RTC or what have you. Or a couple BASIC Welcome programs. In that regard, I would find a RSX function |eeprom2ram,<startpage>,<number of pages>,<cpc start address> useful.


It won't turn into a ROM / RAM expansion though, because the board doesn't support the extra control lines.


How about a |hibernate and |resume for the CPC?  :)  That could be a good use case.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 00:58, 26 June 19
Ok, usually one can use 127,5 KB (because page 0 can't be accessed). How to get 128 KB?

Maybe upload 2 pages starting at page 255?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 01:27, 26 June 19
Ok, usually one can use 127,5 KB (because page 0 can't be accessed). How to get 128 KB?

Maybe upload 2 pages starting at page 255?


THat's a good idea... so page 255 will be 1024 bytes (= 4 EEPROM pages) and all other pages 512 bytes (= 2 EEPROM pages).


Hmm, thinking about why this was necessary in the first place... actually, that problem did only arise because I needed a way to trigger PCM sample playing without halting the firmware (it needs to continue sample playing WHILE accepting new arguments for the next PCMPLAY command, and I couldn't use an interrupt based solution because I need max performance for PCM sample playing). Hence, I figured I will use the "0" as a separator byte (or "clock" byte) for the arguments of the |pcmplay command. Hence, I could not allow the 0 as an argument since it was used as a separator / clock byte. That was the only reason.


However, for the EEPROM as data storage application, this 0-based synchronisation for sending arguments to |pcmplay is not required. We can just use 0 as the start page. Only |PCMPLAY is not allowed to use 0. But |eeprom2ram can use page 0 as an argument / address, why not. Here, it is ok if the firmware waits until the page number argument has been supplied.


So let me change this tonight.   
 
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 16:53, 27 June 19
btw, i got an eprom programmer - hopefully a working one.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:13, 27 June 19
Great! Maybe still wait a couple of days with firmware update... TFM and I are still working on some things. We'll give you a green light soon.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:55, 27 June 19
Yes, we do. Days and nights... new commands: !SAYTEMP, !EEUP, !EEGET... more to come...
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 10:38, 28 June 19
The instruction manual for your EPROM is going to end up being bigger than the CPC Manual :D

Bryce.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 19:35, 01 July 19

New firmware seems to be working OK so far:
https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v22-06-30-19.hex (https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v22-06-30-19.hex)

(Unless @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) finds something else  ;) )

It is not impossible that there might be one more version though.

A major new feature is to use the EEPROM for arbitrary (persistent) data storage (storing and retrieving 64 KBs in about 3 seconds).
@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) is working on some very nice features to incorporate into his RSX LS3 ROM. Stay tuned!  8)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 22:03, 01 July 19
OK, and with this I do update the LS3 ROM... download see my signature...  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 16:49, 02 July 19
@GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) is working on some very nice features to incorporate into his RSX LS3 ROM. Stay tuned!  8)


you mean like using the LEDs as a progress indicator? 0% to 100% ?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:17, 02 July 19

you mean like using the LEDs as a progress indicator? 0% to 100% ?
LS3 Progress is already at 100 %  8)

But seriously - progress for what?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 17:44, 02 July 19
Thanks to LambdaMikel for the great new firmware (v23, yes from today!).  :)
New RSX ROM uploaded right now.  :)

Progress? Well, in ROM there is half the space left, wait for funny new features.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 18:12, 02 July 19
LS3 Progress is already at 100 %  8)

But seriously - progress for what?


I guess we can already do that per application, using outs.  like loading progress, game progress... database capacity used so far.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:20, 02 July 19
Right send value like &80, &40, &20, &10, &08, &04, &02, &01 and then begin again, of course with a couple of FRAME commands in between. Before a command like !CONFOFF can help.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 04:46, 03 July 19
Right send value like &80, &40, &20, &10, &08, &04, &02, &01 and then begin again, of course with a couple of FRAME commands in between. Before a command like !CONFOFF can help.
Right... but it depends a bit on the mode... these bytes are buffered for speech output and some of them might produce some phonemes... maybe we should better add one more "mode" whose only purpose is to set the LEDs...

Edit: just to be on the safe side, I have added one more control byte for this purpose. The sequence &f0, <byte> shows <byte> on the LEDs and has no other effects, in all speech modes (does not work in PCM Sample Playing or Amdrum mode).
This is in version 25 of the firmware:
https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v25-07-02-19.hex (https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v25-07-02-19.hex)
Now, the &f0 is also visible on the LEDs, but in MC you can send that really fast and then only <byte> should be visible with a little bit of flicker maybe before <byte> from &f0.
 
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 09:28, 03 July 19
If you are going to use the LEDs for anything new, then it should be a VU Meter :)

Bryce.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 09:47, 03 July 19
Cool idea! Just not sure how to realize this.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 09:55, 03 July 19
In the meantime, we have a new MIDI interface for the CPC:

https://ubld.it/products/midi-breakout-board/ (https://ubld.it/products/midi-breakout-board/)
The latest (and finally final?) firmware v26 supports the required MIDI BAUD rate: 31250 BAUDs.
A demo program on the LS300.DSK on the Github is working.

The ubld.it Breakout Board is a nice inexpensive (10 $) board which comes as a kit! Highly recommended, works like a charme and is not so bulky as many Arduino shields.

https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v26-07-02-19.hex

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 10:00, 03 July 19
Cool idea! Just not sure how to realize this.

Assuming the LEDs are connected to one of the µP ports, you could send the PWM duty cycle values to this port which would at least simulate a VU meter. For speech, where you are sending commands it would be rather difficult as there is no feedback loop.


Bryce.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 10:30, 03 July 19
Assuming the LEDs are connected to one of the µP ports, you could send the PWM duty cycle values to this port which would at least simulate a VU meter. For speech, where you are sending commands it would be rather difficult as there is no feedback loop.


Bryce.
Good idea, but the LEDs is just the latched IOREQ WR &FBEE from the CPLD, so the uC is not in charge of controlling the LEDs unfortunately.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 10:39, 03 July 19
Then there's not a lot you can do with them without serious changes.

Bryce.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:12, 03 July 19
Then there's not a lot you can do with them without serious changes.

Bryce.
Right, and I don't have free pins on the ATmega or CPLD. I guess it is good enough if the CPC can control them; and certain things the CPC cannot now about (i.e., MP3 music player level or PCM related), since this is not communicated back (and cannot be communicated back).  For VU meter, people have to buy Symbiface 3  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:28, 03 July 19
Right... but it depends a bit on the mode... these bytes are buffered for speech output and some of them might produce some phonemes... maybe we should better add one more "mode" whose only purpose is to set the LEDs...


Or set volume to 1 (nothing to hear).  ;) :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 18:30, 03 July 19

Or set volume to 1 (nothing to hear).  ;) :)


Right... is this what CYLON.DSK does?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:33, 03 July 19
Then there's not a lot you can do with them without serious changes.

Bryce.


Well, put some relais on them and control a robot maybe?

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:34, 03 July 19

Right... is this what CYLON.DSK does?


No, just puts values to LS3, nothing else :-)

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 18:56, 03 July 19

Well, put some relais on them and control a robot maybe?


Right, I am working on this Robot in my garage that looks like a Chrome Toaster from the 1950s.
In the middle it has a red LED light that goes from left to right and back and forth  :D
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 20:15, 03 July 19
While you polish the DECtalk "Exterminate!" I'll do the GFX...
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 07:05, 04 July 19
While you polish the DECtalk "Exterminate!" I'll do the GFX...
Not polish, english!  :D :laugh:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 09:31, 04 July 19
Here is another idea that can be implemented with LS 3 + MIDI + SPO256-AL2 - I guess a simple BASIC program suffices for that:

http://rarewaves.net/products/midi-narrator/ (http://rarewaves.net/products/midi-narrator/)
OK, the pitch bend is not possible....
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:55, 04 July 19
Off-Topic:
https://www.homebrewaudio.com/doctor-dalek-voice/ (https://www.homebrewaudio.com/doctor-dalek-voice/)
Off-Topic:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 00:42, 09 July 19
interesting video if you haven't seen it. Speech synths from 1939 to present...


https://www.youtube.com/watch?v=OVr8gnQcGoI


and


https://www.youtube.com/watch?v=wQjTgvUEOrY
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 05:55, 12 July 19
Nice video, but the most important Retro Speech Synth is missing - DECtalk  :picard2:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 12:30, 12 July 19
Yes, and I still don't know if I prefer Epson mode or DECtalk mode. They are both great.  :laugh:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 18:49, 12 July 19
Hackaday picked up my DECtalk Xanadu singing hack with the TRS-80 Model 100:
 
https://hackaday.com/2019/06/11/vintage-speech-synthesizer-croons-the-oldies/ (https://hackaday.com/2019/06/11/vintage-speech-synthesizer-croons-the-oldies/)



Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 00:10, 17 July 19
LambdaSpeak III RSX ROM Update available. Powered by FutureOS know how. Enjoy new commands like  |BIGWATCH

If something doesn't work? Please read the manual. Some commands can only be used in certain circumstances. This is because the LS3 can emulate lots of other hardware.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 09:34, 17 July 19
Thanks as always, @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) - |BIGWATCH is great, but the CPC with monitor is too big for my wrist - maybe I need |BIGCLOCK instead  ;) :D Love the big digits, really cool!  8)

Please find the links to the newest firmware and LS300.DSK below.
With this latest firmware, I believe that BIGWATCH will probably need the following sequence:
Code: [Select]
|lambda: out &fbee,&e0: |bigwatch

to run correctly. Would be nice if another RSX command could be added, for "medium getters" (&E0), which is new.

There are some changes on the LS300.DSK as well. Instead of RTC.BAS which never really worked, the real "read clock registers protocol" is now shown in ASMCLOCK.BAS (MAXAM Z80).

https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v39-07-16-19.hex (https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v39-07-16-19.hex)

https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/LS300.dsk (https://github.com/lambdamikel/LambdaSpeak3/blob/master/cpc/lambda/LS300.dsk)

From a firmware point of view, I believe that this is it for a while...
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 15:58, 17 July 19
With this latest firmware, I believe that BIGWATCH will probably need the following sequence:
Code: [Select]
|lambda: out &fbee,&e0: |bigwatch
This works fine here (like indicated in the manual):
Code: [Select]
|lambda:|bigwatch Next update will contain checking for Epson/DEC and switching it on if needed.  :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 16:05, 17 July 19
This works fine here (like indicated in the manual):

Ah, found it! Page 17,438 of the manual! :D

Bryce.


Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:06, 17 July 19
 :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 16:07, 17 July 19
Surely you have beaten the record at this stage for the most RSX's ever fit into one ROM?

Bryce.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 16:37, 17 July 19
Ah, found it! Page 17,438 of the manual! :D

Bryce.
Right, that must be the manual in binary format though  :laugh:
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 17:13, 17 July 19
Wonderful that BIGWATCH now has temperature and date as well... would be nice if a keypress would trigger speech though  ;)

Good to see that |hibernate,0 and |resume,0 indeed seem to to work by now! We will still have to figure out why |lsinit is required before |resume,0 though for it to work.... that is still a bit of a mystery.

RTC.BAS on LS300.DSK seems completely broken by now (I did it...) But with |gettime, |getdate, |gettemp as well as @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) 's wonderful bigwatch, there isn't really a need for it either. Will repair it just for the record a little bit later anyhow; it really requires some Z80 to read out the clock registers reliably. Not possible in BASIC.

Great progress overall, @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) !!
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:20, 17 July 19
New ROM update:
- !BIGWATCH does switch to Epson mode if no Epson or DECtalk mode is active
- !GETMED command added
- Manual split, German and English separated (other languages can be added if somebody likes to translate)

Have fun!  :) :) :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 04:55, 18 July 19
RSX Manual in CPC-Wiki:
http://www.cpcwiki.eu/index.php/LambdaSpeak_III_ROM (http://www.cpcwiki.eu/index.php/LambdaSpeak_III_ROM)


Sorry for some server problems, here is the newest update...

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 08:15, 18 July 19
RSX Manual in CPC-Wiki:
http://www.cpcwiki.eu/index.php/LambdaSpeak_III_ROM (http://www.cpcwiki.eu/index.php/LambdaSpeak_III_ROM)
WOW, nice... that was a lot of work!!  8)
I'll set a link to this one on the GitHub page!!
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 12:21, 18 July 19
Very nice updates !!!  8)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 13:17, 19 July 19
I just picked up a couple of hero jr robots last week. Do you know type of speech synth they have?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: Bryce on 13:30, 19 July 19
I just picked up a couple of hero jr robots last week. Do you know type of speech synth they have?

The Hero Jr. used a Votrax SC-01 synthesiser. Good luck finding a replacement for one of those these days! https://vocal-synthesis.fandom.com/wiki/Votrax_SC-01

Bryce.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 18:09, 19 July 19
WOW, nice... that was a lot of work!!  8)
I'll set a link to this one on the GitHub page!!
- No  ;D
- Thanks!  :) :) :)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 19:02, 19 July 19
I just picked up a couple of hero jr robots last week. Do you know type of speech synth they have?


Nice! Pull the Votrax and make a CPC speech synth from it - the Votrax-based retro synths go for 300 $ and more on Ebay


https://www.ebay.com/itm/Votrax-Type-N-Talk-interface-power-docs-speaker-for-Commodore-EUC/293112824458?hash=item443ee2c28a:g:KvMAAOSw~odc-HeI (https://www.ebay.com/itm/Votrax-Type-N-Talk-interface-power-docs-speaker-for-Commodore-EUC/293112824458?hash=item443ee2c28a:g:KvMAAOSw~odc-HeI)


https://www.ebay.com/itm/Votrax-TypeN-Talk-Speech-Synthesizer-Sprach-SC-01-A-Text-to-Speech/333253970627?hash=item4d977c0ac3:g:xWAAAOSwIYpdGlis (https://www.ebay.com/itm/Votrax-TypeN-Talk-Speech-Synthesizer-Sprach-SC-01-A-Text-to-Speech/333253970627?hash=item4d977c0ac3:g:xWAAAOSwIYpdGlis)

Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: zhulien on 21:52, 20 July 19
Actually looking at other votrax examples on YouTube i am wondering if numbers 1 to 4 in short circuit used a votrax?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 00:56, 25 July 19
Dear LS3 users, please do a simple test for me and please report via PM if you can. Thank you!  :)

- Switch CPC off (for at last 10 seconds!).

- Switch CPC (and LS3) on. (It should be without power for 10 seconds at least).

- Enter command: OUT &FBEE,&DF

What happens?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 23:47, 02 August 19
This |STOP bug was fixed, and also another one -> v41 firmware.


Currently working on MIDI IN such that one can play the AY with a MIDI keyboard.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:02, 04 August 19
Great! The v41 firmware runs very well.  ;)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 07:04, 08 August 19
MIDI IN CPC Synthesizer using LambdaSpeak 3 Serial Interface working now - sound comes from the CPC, the Akai Miniak is only used as a keyboard / MIDI controller:

https://youtu.be/RRG1JTxKXD8 (https://youtu.be/RRG1JTxKXD8)
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: kawickboy on 14:38, 08 August 19
So what will be next step ?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 16:04, 08 August 19
Buy it! Use it! Enjoy it! Music and Speech like never seen before on the good old CPC and Plus computers.  :-*


If enough customers are interested I will support this great hardware with desired software.  :)


Now, what would you like to do with it today?  :'(
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: XeNoMoRPH on 18:29, 08 August 19
I want that midi interface  :o :o :o
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 18:32, 08 August 19
Good news - it is back in stock at Amazon - but it requires soldering:

https://www.amazon.com/ubld-it-MIDI-Breakout-Board/dp/B00YDLVLVO/ref=sr_1_2?keywords=midi+breakout&qid=1565278291&s=gateway&sr=8-2 (https://www.amazon.com/ubld-it-MIDI-Breakout-Board/dp/B00YDLVLVO/ref=sr_1_2?keywords=midi+breakout&qid=1565278291&s=gateway&sr=8-2)

In your case, you would need to disconnect the MP3 module first though... other than that, only a firmware update to v47 is required on the LS 3 side.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 00:34, 09 August 19
The MP3 module can be put to sleep. Maybe both can be used in the same time. I would try it, but got no MIDI things here at all.
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: LambdaMikel on 03:28, 09 August 19
I will try that. Did you already add the |mp3sleep command to the LS3 RSX ROM?
Title: Re: LambdaSpeak CPC Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface
Post by: GUNHED on 15:54, 09 August 19
Yes.  :)  They are called:
- |MP3SLEEP
- |MP3WAKE
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 07:18, 14 August 19
Two more sets shipping tomorrow - pictures for the owner (can't attach images to the PM function here):



Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 19:59, 14 August 19
Welcome to the speech and sounds club!  :)


Look at my signature for software support.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 22:52, 14 August 19
New LS3 RSX ROM uploaded, adapted to new firmware v47.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 06:22, 18 August 19
Two more shipping on Monday... picture for the owner.

For the time being, I have exactly ONE more DELUXE VERSION to sell (MP3 + RTC + SP0256-AL2), then I am out of parts - see 2nd picture.

PM if you want it! This is going to be the last one until November or so. Especially SP0256-AL2's are hard to get and cost me a fortune (~ 30 $ each). 

Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: TotO on 10:59, 18 August 19
30$ ?  :o


What about that: https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-MICROCHIP-DIP-28-SP0256A-AL2/162779229313?epid=16010546217&hash=item25e665ec81:g:MkgAAOSwk1haHjqY (https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-MICROCHIP-DIP-28-SP0256A-AL2/162779229313?epid=16010546217&hash=item25e665ec81:g:MkgAAOSwk1haHjqY)
They are many other links about tham for less than 5$ inculding shipping fees.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: Bryce on 11:14, 18 August 19
30$ ?  :o


What about that: https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-MICROCHIP-DIP-28-SP0256A-AL2/162779229313?epid=16010546217&hash=item25e665ec81:g:MkgAAOSwk1haHjqY (https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-MICROCHIP-DIP-28-SP0256A-AL2/162779229313?epid=16010546217&hash=item25e665ec81:g:MkgAAOSwk1haHjqY)
They are many other links about tham for less than 5$ inculding shipping fees.

Great find! I haven't seen them this cheap for a long time.

Bryce.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 11:20, 18 August 19
No, not a great find - I tried them and they are fake!!
I couldn't believe this story until I could verify it myself, but it IS true: they don't work:
http://www.smbaker.com/counterfeitfakejustplainbad-sp0256a-al2-chips (http://www.smbaker.com/counterfeitfakejustplainbad-sp0256a-al2-chips)
From this link, wrt to the Microchip chips:
Quote
The second set of bad chipsI decided to order more (Fool me once, shame on you. Fool me twice, shame on me). This time I chose a different seller, with chips that had a different manufacturer printed on them.

Here’s a picture:

Unlike the previous ones, these ones don’t output any speech at all. There is some noise that comes out of the output pin, and that noise varies according to what is on the address and data buses, even when the chip select input is not triggered. So it kinda makes annoying noise all the time.  It also glitched my RC2014 so that it wouldn’t run (probably by outputting signals to the address, data, or control buses).

I suspect these are just some random 28-pin IC that someone reprinted. I suppose it would be an interested exercise to apply to signals to the fake chips and use a logic analyzer to try to figure out what it’s actually doing, and determine that the chips actually are.

 Also:
https://www.eevblog.com/forum/projects/where-to-buy-an-sp0256-al2-speech-synthesizer-chip/ (https://www.eevblog.com/forum/projects/where-to-buy-an-sp0256-al2-speech-synthesizer-chip/)
The only reliable source I have is this one - they are genuine GI and work.

http://www.speechchips.com/shop/item.aspx?itemid=7 (http://www.speechchips.com/shop/item.aspx?itemid=7)
If you don't believe it, buy one of the Ebay ones yourself and be amazed - they don't do anything. They don't even get warm.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: gerald on 11:21, 18 August 19
Great find! I haven't seen them this cheap for a long time.

Bryce.
2014 date code is highly suspicious !
Repackaged ones, emulated ones ?
Who knows ?
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 11:22, 18 August 19
2014 date code is highly suspicious !
Repackaged ones, emulated ones ?
Who knows ?
Indeed. They are fake. Don't buy them. See stories above. I tried them!
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: gerald on 11:25, 18 August 19
Indeed. They are fake. Don't buy them. See stories above.
Time to make our own fake, emulating them on a STM32 or like.
I think there is C source and ROM dump somewhere.
 ;D
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 11:26, 18 August 19
30$ ?  :o


What about that: https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-MICROCHIP-DIP-28-SP0256A-AL2/162779229313?epid=16010546217&hash=item25e665ec81:g:MkgAAOSwk1haHjqY (https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-MICROCHIP-DIP-28-SP0256A-AL2/162779229313?epid=16010546217&hash=item25e665ec81:g:MkgAAOSwk1haHjqY)
They are many other links about tham for less than 5$ inculding shipping fees.

@ToTO, before recommending these, at least check the negative feedback mentioning all the FAKE CHIPS:

https://feedback.ebay.com/ws/eBayISAPI.dll?ViewFeedback2&userid=5hk1584&iid=162779229313&de=off&items=25&searchInterval=30&which=negative&interval=180&_trkparms=negative_180 (https://feedback.ebay.com/ws/eBayISAPI.dll?ViewFeedback2&userid=5hk1584&iid=162779229313&de=off&items=25&searchInterval=30&which=negative&interval=180&_trkparms=negative_180)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: Bryce on 11:34, 18 August 19
Oops, didn't notice the dodgy date code, although I'd read that as Week 14, 2002 (which would still be questionable).

Bryce.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: TotO on 14:06, 18 August 19
2004 was 15 years ago... Microchip produced many IC clones from GI as AY3-89xx too. (And works fine as I know)
I do not see the problem. It they are fakes or not OK for your usage, you just have to open ark a refund of open a PayPal dispute to got your money back.
When you see the quantities sold and no negative feedbacks on their eBay profile, I imagine that are OK or peoples are dumbs.  :-\

Is this better (it came from China too) ?
https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-GI-SOUND-DIP-28-SP0256A-AL2/401500438139?epid=16010546217&hash=item5d7b4a7e7b:g:FTcAAOSww3tY50Rs (https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-GI-SOUND-DIP-28-SP0256A-AL2/401500438139?epid=16010546217&hash=item5d7b4a7e7b:g:FTcAAOSww3tY50Rs)

As I have read on forums, most IC sold is USA came from China too, but more expensives. So, how looks your 30$ versions?
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: Bryce on 15:28, 18 August 19
The $30 dollar ones are from GI and have a 1986 date code. I have one here.

I think the fakes I've read about weren't an AY clone fake, just some random chip with the same pin count, they don't function at all.Also, thanks to evilbays biased tactics, as soon as you open a case you can no longer give any feedback which could explain the lack of negativefeedback.


Bryce.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: TotO on 15:40, 18 August 19
I have not ordered SPO-2 IC, but some other video and sound chips w/o any issues for really low cost.
Now, I don't said to buy 10pcs of them and pray... But I will not buy 1pcs for 30$ too.  ;D

Selling relabeled wrong IC is a 100% fail tacticle through eBay as sellers can't won any money with the PayPal protection.
Next, I have currently into my eBay an item (game box) refunt because damaged and I can left a feedback on it if I wish.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: gerald on 16:11, 18 August 19
Microchip produced many IC clones from GI as AY3-89xx too. (And works fine as I know)
Microchip IS GI semicoductor unit spinout. These are not clones.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: TotO on 16:38, 18 August 19
Microchip IS GI semicoductor unit spinout. These are not clones.
I know... Clone are not always illegal products.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 16:44, 18 August 19
ToTO saying it for the third time, hope the message gets through - I BOUGHT TWO SETS OF MICROCHIP SP0256-AL2 CHIPS FROM THE EXACT EBAY SELLER YOU QUOTED AND THEY ARE FAKES AND DO NOT WORK.

Having said that, I AM interested in an inexpensive source of WORKING GI SP0256-AL2 chips. Please post your links here.
I find it weird that you guys just ignored what was quoted above regarding the Microchip GI SP0256-AL2 chips. I am not saying there are NO working Microchip SP0's, but I don't have a source. My source is 30 $.

If anybody has a reliable source of working Microchip SP0256-AL2 I want to know the source and then we can table the discussion and go back to the facts.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 16:59, 18 August 19
@ToTO these ones I don't know:

https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-GI-SOUND-DIP-28-SP0256A-AL2/401500438139?epid=16010546217&hash=item5d7b4a7e7b:g:FTcAAOSww3tY50Rs (https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-GI-SOUND-DIP-28-SP0256A-AL2/401500438139?epid=16010546217&hash=item5d7b4a7e7b:g:FTcAAOSww3tY50Rs)

There are "fake complaints" as well though:
https://feedback.ebay.com/ws/eBayISAPI.dll?ViewFeedback2&userid=polida2008&iid=401500438139&de=off&items=25&searchInterval=30&which=negative&interval=30&_trkparms=negative_30
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 17:03, 18 August 19
Is this better (it came from China too) ?
https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-GI-SOUND-DIP-28-SP0256A-AL2/401500438139?epid=16010546217&hash=item5d7b4a7e7b:g:FTcAAOSww3tY50Rs (https://www.ebay.com/itm/1PCS-VOICE-SYNTHESIZER-IC-GI-SOUND-DIP-28-SP0256A-AL2/401500438139?epid=16010546217&hash=item5d7b4a7e7b:g:FTcAAOSww3tY50Rs)
This one has plenty of "fake chip complaints" too:

https://feedback.ebay.com/ws/eBayISAPI.dll?ViewFeedback2&userid=polida2008&iid=401500438139&de=off&items=25&searchInterval=30&which=negative&interval=365&_trkparms=negative_365

Not sure. Have you tried any of these? As I said, the Microchip ones you cited first are NOT working.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 17:07, 18 August 19
Just repeating this I guess it must not have been read:

http://www.smbaker.com/counterfeitfakejustplainbad-sp0256a-al2-chips (http://www.smbaker.com/counterfeitfakejustplainbad-sp0256a-al2-chips)
From this link, wrt to (one source of) the Microchip chips (maybe the ones that I had bought):

Quote

The second set of bad chipsI decided to order more (Fool me once, shame on you. Fool me twice, shame on me). This time I chose a different seller, with chips that had a different manufacturer printed on them.
Here’s a picture: (showing a Microchip SP0256-AL2)

Unlike the previous ones, these ones don’t output any speech at all. There is some noise that comes out of the output pin, and that noise varies according to what is on the address and data buses, even when the chip select input is not triggered. So it kinda makes annoying noise all the time.  It also glitched my RC2014 so that it wouldn’t run (probably by outputting signals to the address, data, or control buses).

I suspect these are just some random 28-pin IC that someone reprinted. I suppose it would be an interested exercise to apply to signals to the fake chips and use a logic analyzer to try to figure out what it’s actually doing, and determine that the chips actually are.
So, wrt the 2nd Ebay link, it seems this chip might also be suspicious (it is shown as the first source of bad chips - "MURA / CKA" in the linked article above).
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: TotO on 17:49, 18 August 19
I have not seen your edited posts. May be red is not a color that I can see...  :-\ 

I have checked the links before posting. The first one do not have any negative feedback. (you said bought two fakes from him)
The second as only a negative feedback about too long shipping delay (stupid) and fake or defective transistors bought not the SPO-2.

By the way, I have already bought many working IC from Polida. So, if yours don't works, it is nice to know but I'm surprised? Thank you, I will not buy SPO-2 from him so.
Have a good luck to find a better source with a good price!  8)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 17:54, 18 August 19
I have not seen your edited posts. May be red is not a color that I can see...  :-\ 

I have checked the links before posting. The first one do not have any negative feedback. (you said bought two fakes from him)
The second as only a negative feedback about too long shipping delay (stupid) and fake or defective transistors bought not the SPO-2.

By the way, I have already bought many working IC from Polida. So, if yours don't works, it is nice to know but I'm surprised? Thank you, I will not buy SPO-2 from him so.
Have a good luck to find a better source with a good price!  8)

Yes, I removed the red glowing from my other replies - edited them  :D

Thanks - curently I am very suspicious of any Ebay sources for the SP0 given my bad luck so far.

 I would only try again from a source other than the good Speechchips.com if the acquired SP0256-AL2 was confirmed working by the buyer. If you happen to be in that position, please post the link.


Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: gerald on 18:29, 18 August 19
I know... Clone are not always illegal products.
These are not clones, these are manufactured in the same factory by the same guys, just the brand name changed because of a company activity split.
Would you consider a Keysight E3642A PSU clones the Agilent E3642A which clones the Hewlett Packard E3642A ?
Mostek and ST Z80 are licensed clones.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: TotO on 19:48, 18 August 19

These are not clones, these are manufactured in the same factory by the same guys, just the brand name changed because of a company activity split.
As said, I know the microelectronics division of General Instrument has been reorganized to create Microchips. But... Same circuits, not the same factory (moved to new production sites for "a best future" in Taiwan and I imagine not with the same guys ^^), surely not the same industrial process and definitiveny not the same brand label = clone. You can't said that Microchips products are GI products because Microchips was part of GI. Obviously, they not require to be licenced. If you can found many old MicroChip IC in China and GI in USA, it is not a hasard.

By the way, that do not deserve the topic. I have a PM and an email for those kinds of discutions. ;)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 18:52, 20 August 19
Coming back on the topic please...

With LambdaSpeak III nobody need these SPO chips any longer! Because it's emulated and even better emulated than the original hardware ever was.

The LS3 only has a socket for "sentimental" reasons or people with bat like hearing abilities, who just "want" to have that chip "on board".

LS3 can do so much more and it quite cheap without these needless SPO chips. Please refer to the GitHub and resources if you want one.

Also we can make a kind of list for EU here to get a batch of LS3 together for cheap. Also I can help with burning CPUs and stuff like this.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 20:10, 20 August 19
Coming back on the topic please...

With LambdaSpeak III nobody need these SPO chips any longer! Because it's emulated and even better emulated than the original hardware ever was.

The LS3 only has a socket for "sentimental" reasons or people with bat like hearing abilities, who just "want" to have that chip "on board".

LS3 can do so much more and it quite cheap without these needless SPO chips. Please refer to the GitHub and resources if you want one.

Also we can make a kind of list for EU here to get a batch of LS3 together for cheap. Also I can help with burning CPUs and stuff like this.

I second that, thanks @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) - thanks for continuing to be a key member of the LS3 development team...
Wrt the SP0, I guess many people here are a bit nostalgic... I must say I kind of like the old SP0 and find it really cool,  but it is true that is completely optional and that the Epson chip sounds much better. But I figured it could also be a 'sales argument' given that people are still paying > 80 EUR for an old DKtronics or SSA-1 on Ebay, but anyhow.

For the time being, I am kind of happy if not so many people buy a LS3, because it takes me about 3 hours to assemble it by hand! However, if there was a larger list of potential buyers, I would look again into Seeed assembly service. I got an offer for 5 free assemblies the other day, but I let it expire because I didn't have enough potential buyers.

In general, even partial assembly by Seeed will greatly reduce assembly time. They could put in all the resistors and capacitors and DIP sockets, and I could hand solder in the rest or so, that would reduce the assembly and testing time to about 30 minutes for me.

But I have to look into prices for Seeed assembly of that kind. In general, the prices have gone down significantly since I started this project, so I am optimistic that this could be cost and time efficient if it needed to be. For the time being, there is no need for assembly service.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 18:48, 22 August 19
Upcoming MP3 player for the LS3...
https://youtu.be/t1YHsYCP2a4
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 19:29, 22 August 19
Upcoming MP3 player for the LS3...
https://youtu.be/t1YHsYCP2a4 (https://youtu.be/t1YHsYCP2a4)


Nice!! Have to have that one... is it part of Future OS?
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 19:42, 22 August 19
Awesome @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) !!! , looking forward to trying it  :o :o :o
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 02:36, 23 August 19
Awesome @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) !!! , looking forward to trying it  :o :o :o
Try to get it a bit better, will post here when the litte thing is done.  :) :) :)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 21:18, 24 August 19
Play your LS3 SP0256-AL2 with USIfAC MIDI IN

https://youtu.be/MVEXi7fGHyc

LS3 has a hardware limitation - currently, SP0256-AL2 and MIDI / UART cannot be used simultaneously. So will need USIfAC to achieve that currently. Maybe will fix that for a new PCB hardware revision of LS3.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 22:48, 28 August 19
New RSX ROM update for LS3 uploaded.


Please report errors!!!  :o
Title: LambdaSpeak III MP3 Player
Post by: GUNHED on 18:56, 05 September 19
Now the LambdaSpeak III with MP3 module can simply play MP3s and VOCs:

Here the first release of the MP3 player, which was presented at the XzentriX meeting 2019.

Since the payer comes with some sample songs the download is at Megaupload, including everything ist about 432 MB in size...

Download:
https://mega.nz/#!Sxcj3aAR!9ZKUidqZJQZJaMFczbLhTS0Aja8LnWoDhNATX1Ce3gk

The Archive is Password protected, it is: "Lambda"

If you have questions, just let me know.

Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 22:31, 05 September 19
Nice! What is a VOC? It seems some form of compressed PCM sample? Is it being decompressed by the CPC and played in Amdrum mode, or how does this work?
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 22:43, 05 September 19
Well, the Catalex docs tell that the MP3 unit can handel it. Basically it's a data stream which reflects the position of the speaker membrane, something like a sample. Yes, like a PCM sample, but no compression, direct data, like you can use for a Digiblaster f.e. Just space consuming data.  :D
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 01:32, 06 September 19
Well, the Catalex docs tell that the MP3 unit can handel it.


TFM telling me to RTFM  ;D
I should have, ideed!  :laugh:
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 01:47, 06 September 19
New LS3 firmware v53 is out.
New in this one:
- full duplex MIDI IN/OUT realtime mode
  (see MIDISYNX.BAS on LS300.DSK)


I have used this to demonstrate a SOFT MIDI Through. The CPC echoes back all RX (Serial / MIDI In) Messages immediately to TX (Serial / MIDI) Out, and also plays the note on the CPC. Will post a video shortly with 2 synths connected (one for IN, one for OUT). 
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 10:30, 06 September 19
TFM telling me to RTFM  ;D
I should have, ideed!  :laugh:
Since it was updated this year, yes you can Read The FutureOS Manual. But the RTCM is more important in this case.  :laugh: :)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 22:46, 06 September 19
Hi @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) , MP3 player , does not work for me.

I copied to the root of the miscroSD card of my lambaspeak 3, the mega files
Then, I copy the LS3_MP3_Player.dsk file to my M4 board and run the file in basic
the screen remains black and the system freezes.
the screen freezes, from line 17 of the program list in basic

Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 00:09, 07 September 19
Hi @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) , MP3 player , does not work for me.

I copied to the root of the miscroSD card of my lambaspeak 3, the mega files
Then, I copy the LS3_MP3_Player.dsk file to my M4 board and run the file in basic
the screen remains black and the system freezes.
the screen freezes, from line 17 of the program list in basic


What's your LS3 firmware version? Have you upgraded it recently?
See |getver

EDIT: Had the same effect. After upgrading to latest LS3 RSX ROM from TFM it worked.

Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 10:11, 07 September 19

What's your LS3 firmware version? Have you upgraded it recently?
See |getver

EDIT: Had the same effect. After upgrading to latest LS3 RSX ROM from TFM it worked.
Hi !!! @LambdaMikel (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2172) ,I have never updated the firmware, I have the latest version of the RSX command ROM installed
(https://i.ibb.co/XDsRNvH/photo-2019-09-07-09-05-13.png)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 16:57, 07 September 19
Please update the firmware if you can. If not, email / PM me and I can do that for you for free of course.  :)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 17:57, 07 September 19
@XeNoMoRPH (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1952)  updating is easy with a standard EPROMER
https://www.amazon.com/ARCELI-TL866II-Performance-EEPROM-Programmer/dp/B07CQQBGVK/ref=sr_1_1?keywords=tl+866+eprom&qid=1567868207&s=gateway&sr=8-1 (https://www.amazon.com/ARCELI-TL866II-Performance-EEPROM-Programmer/dp/B07CQQBGVK/ref=sr_1_1?keywords=tl+866+eprom&qid=1567868207&s=gateway&sr=8-1)

I would do it too (updating it for free if you send it in), but TFM / Gunhed is on the same continent as you  ;)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 10:05, 08 September 19
thanks, I will see if I find it in a nearby online store
EDIT: here it is: , I'll update tomorrow  :P
(https://i.ibb.co/9V80QtG/232332.png)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 18:41, 10 September 19
Looking good! That should be a good buy, useful for a variety of things, not only LS3 firmware.
Here is a screenshot for settings:
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 13:15, 12 September 19
Hi again !! , i can't view model ATmega644AP ... i'm confused  :doh:

(https://i.ibb.co/3TBTWmP/111.png)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: Bryce on 13:41, 12 September 19
You don't need the exact type, A or PA will do.

Bryce.
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 16:07, 12 September 19
Should I remove the Check ID box?  :o
(https://i.ibb.co/hCJv5MQ/222.png)
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 16:59, 12 September 19
That should not be necessary, but sometimes it is.
Can you try with the other ATMega 644 you have?
One of them should have matching IDs...
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 18:00, 12 September 19
That should not be necessary, but sometimes it is.
Can you try with the other ATMega 644 you have?
One of them should have matching IDs...
firmware updated successfully !!! , thx fo @LambdaMikel (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2172) , @GUNHED (http://www.cpcwiki.eu/forum/index.php?action=profile;u=2029) and @Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) for support !!!
MP3 Player now it works perfect, i'm very happy  ;D ;D ;D
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: LambdaMikel on 23:01, 12 September 19
Congrats!

Now you can offer the firmware update service to other users in spain...  ;D ;)

PS Curious - was the TL866 expensive for you? Prices seem to vary from between 20 $ to 70 $....
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: XeNoMoRPH on 08:55, 13 September 19
Congrats!

Now you can offer the firmware update service to other users in spain...  ;D ;)

PS Curious - was the TL866 expensive for you? Prices seem to vary from between 20 $ to 70 $....
53,99 € with amazon prime  :D
Title: Re: LambdaSpeak Speech Synthesizer, Sample Player, RTC, MP3, Serial Interface, MIDI
Post by: GUNHED on 16:03, 13 September 19
Glad you made it XeNoMoRPH!!!