Jump to content


New Members
  • Content Count

  • Joined

  • Last visited

Community Reputation

11 Good

About cph1776

  • Rank
    Space Invader

Recent Profile Visitors

1,862 profile views
  1. I just tried it now. It works fine. (I had difficulties getting some of the programs to load last night for some reason....) This is a jump ahead for me (I was preparing to disassemble the TI programs to find out where the LPC codes were stored!) I might try adding a feature where it saves the LPC strings to a disk file, or even BASIC program lines in MERGE format.... I am currently using MESS .0159. (I have MAME .216, installed, but I haven't tried to run TI99/4a emulation there yet) Talkie looks like source code for the Arduino, which I haven't played with yet. The algorithms in the source code might be handy for another project, though.
  2. Hi. I downloaded the tts2lpc disk and played around with it. One issue is I'm not quite sure when to turn the buffer on/off before extracting the lpc codes. I thought I got something from CALL LINK("LPC") but when I ran it through CALL SAY, it sounded garbled... The talkie source code looks *very* interesting. Seems easier to follow than the source code in SOX, for one thing. I'll see if it gets me closer to the "holy grail" of converting WAV files to TMS5220 LPC...
  3. Hello all, In early 2016 I was discussing various ways to use the TI Speech Synthesizer. My goal was to (eventually) be able to convert a .WAV file into a format that could be read by the TMS5220. (Like QBOX, but with less hassle). Lots of discussion on SPEECODER, STANAGs, and SOX. The thread is at https://atariage.com/forums/topic/251554-speecoder-on-win994a/ Not too long after that, I picked up another part-time job, and ended up writing three (non-computer related) journal/magazine articles, taking up much of my time and brainspace. TI speech, unfortunately, got shunted off to a siding. Now that things have quieted down a bit, I'm revisiting my investigation into the speech synthesizer. One project, if anyone hasn't beat me to it yet, is to extract speech data from TI's text to speech programs ("SPEAK", "XLAT", etc), and save it to a file. (Note that the input expected by "CALL SAY" is different than the output of XLAT--CALL SAY wants TI-LPC data, XLAT produces a coded phoneme string.) There will be other studies in LPC formats, bit manipulation, phonemes, formants, and I may even tackle the math that generates the reflection coefficients. But for now, enjoy this Extended Basic program that makes the TI sing! (feel free to scroll ahead to about 1:30 to hear the actual singing...) Let me know what you think. twinkle2.mp4
  4. In 1986, there were several consoles used as part of an interactive exhibit at the Chicago Museum of Science and Industry. Each console was running its own program (modified so that people couldn't break into BASIC. There were no cartridges being used, the consoles were internally modified?) One program played a musical tone, and the user had to guess the frequency (in Hz). There were several other science-related programs as well, but I forgot what they were...
  5. Hello all, Does anyone have the German book "Musik mit dem TI-99/4A"? If so, what do you think of it? Does it go beyond just basic CALL SOUND usage? (Part of it is available at Google Books: https://books.google.com/books?id=dO7QBgAAQBAJ&printsec=frontcover&dq=musik+mit++dem+ti+99/4a&hl=en&sa=X&ved=0ahUKEwj496LkocPTAhVoslQKHTbmAGAQ6AEIKjAA#v=onepage&q=musik%20mit%20%20dem%20ti%2099%2F4a&f=false ) A used copy on Amazon currently costs about $40 US, the e-book is even more expensive! http://www.springer.com/gp/book/9783528042776 Thanks...
  6. I had the opportunity to buy an MBX system all the way back in 1993, at a computer show in Salt Lake City....I think the guy selling it wanted too much (I offered $100, he wanted $300 or thereabouts...) Oh well.
  7. Back in 1987 I used a TI (and the TE II cartridge) to connect to a couple of Fidonets. I don't recall a TI-Echo, though. By the time I had "rediscovered" the TI (around 1990), I was using TELCO to download files off a few BBSs (Don't recall if they were Fidonet though)
  8. Hello all. Anyone ever try to connect a video signal to the "External VDP Input" (Pin 35) to the 9918A VDP? I could imagine using the TI 99/4A as a video titling system, if this actually worked....
  9. Hello, all. I'm currently developing a perl script to convert the LPC-10 files from SOX into the format used by the TI chip. I want to do a bit more testing before I turn it loose on the world, though. Maybe in a week or so, depending on other obligations... Meanwhile, I did move a couple of the speech demo files made with QBOX from Win99/4A to MESS. They sound much better--more bass in the MESS speech synthesizer.
  10. >BTW, I wrote SPEECODER during my basic military service 1988 / 89. Not much to do in the evenings. I think my last serious programming (not just games or telecomm) was probably in 1983, then I "rediscovered" the TI in 1990 and wrote a few more programs for it until 1995 or 1996....then I discovered the emulators in early 1997....
  11. Well, folks, I just wrote an Extended BASIC program that can generate arbitrary speech sounds. Right now it just generates 21 frames (about 1/2 second) of the "EEE" sound (as in the word "meet") Here is the source. It could probably be optimized to run a bit faster, but it does work... 600 !SPEECHLAB = TRY TO CREATE A SPEECH SOUND 605 ! "eee" SOUND 610 EN$="1100" ! ENERGY=12 620 RP$="0" ! NOT A REPEAT FRAME 630 PT$="101000" ! PITCH=41 640 K1$="10100" ! K1=20 641 K2$="10000" ! K2=16 642 K3$="0011" !K2=3 643 K4$="0010" !K3=2 644 K5$="0101" !K4=5 645 K6$="1101" !K6=13 646 K7$="1011" !K7=11 647 K8$="101" !K8=5 648 K9$="010" !K9=2 649 K10$="011" !K10=3 650 X1$=EN$&RP$&PT$&K1$&K2$&K3$&K4$&K5$&K6$&K7$&K8$&K9$&K10$ 660 BC=0 :: CH$=CHR$(0) 670 FOR X=1 TO LEN(X1$):: BV=VAL(SEG$(X1$,X,1)):: CALL SETBIT(CH$,BC,BV) 675 BC=BC+1 :: NEXT X 679 ! REPEAT 20 FRAMES 680 RP$="1" 682 X2$=EN$&RP$&PT$ 683 X2$=RPT$(X2$,20) 690 X2$=X2$&"1111" !STOP CODE 700 FOR X=1 TO LEN(X2$):: BV=VAL(SEG$(X2$,X,1)):: CALL SETBIT(CH$,BC,BV) 701 BC=BC+1 :: NEXT X 709 !FLIP BITS FOR CALL SAY 710 C2$="" :: FOR X=1 TO LEN(CH$):: A=ASC(SEG$(CH$,X,1)):: CALL FLIP(A,B) 712 C2$=C2$&CHR$(B):: NEXT X 720 C2$="`"&CHR$(0)&CHR$(LEN(C2$))&C2$ 730 CALL SAY(,C2$) 735 ACCEPT A$ :: IF A$<>"N" THEN 730 The program relies on two subprograms: FLIP, which reverses bits in a byte, and SETBIT, which sets/clears bits in a string: 9000 SUB FLIP(A,B) 9001 !REVERSES BIT PATTERN IN A, OUTPUT IN B 9005 B=0 9010 FOR X=0 TO 7 :: M=2^(7-X):: N=2^X 9030 IF (A AND M)THEN B=B OR N 9080 NEXT X 9090 SUBEND 30000 SUB SETBIT(CH$,BIT,A) 30010 B1=INT(BIT/8+1) 30011 L=LEN(CH$):: IF B1>L THEN CH$=CH$&RPT$(CHR$(0),B1-L) 30020 R=(BIT/8-INT(BIT/8))*8 30030 M=2^(7-R) 30040 V=ASC(SEG$(CH$,B1,1)) 30050 IF A=1 THEN V=V OR M 30060 IF A=0 THEN V=V AND(NOT M) 30070 CH$=SEG$(CH$,1,B1-1)&CHR$(V)&SEG$(CH$,B1+1,255) 30999 SUBEND You're welcome to play around with this, if you're interested. One thing that I noticed, and that almost threw me off a bit, is that in MESS, the command CALL SAY("E") will sound as intended, the "ee" sound in "meet." On the other hand, using Win994a, CALL SAY("E") sounds like the "e" sound in "met." Hmm....
  12. Thanks. I downloaded the STANAG 4198, and have a copy on my computer now. Page C-3 has the actual ordering of the bits, which I have not seen anywhere else. This should be very useful in making a LPC10->TMS5220 filter. One day I will look at how the K values are derived. It looks like a lot of math--solving matrices and such. I haven't touched any of that math since my college days, mid-1980s!
  13. Yes, SOX does LPC. However the frames are not directly compatible with the TI SS chip (the bits corresponding to pitch, filter coefficients, etc. are arranged differently.) So far, I haven't found anything definitively showing how the bits in LPC-10E are arranged, although information must be out there, somewhere...I *think* the bits may be organized as shown on pg. 17 of this pdf: http://my.fit.edu/~vkepuska/ece5525/lpc_paper.pdf, But I haven't verified it....
  14. I checked it with a LEN function -- second byte is 0, third is the length of the actual speech data (minus the leading 3 bytes mentioned)
  15. That did the trick! (Reversing the bytes, that is...). Thanks for your help. There are two things I'm interested in doing with the synthesizer: a. Develop a way to convert a WAV file into the codes used by the speech synthesizer. QBOX does this, but it's a bigger pain to set up than MESS :-) and it is poorly supported. If I can use a program like SOX to convert a WAV to LPC, then another program to convert the LPC file into one the TI understands, that would be a good thing. b. Develop a way to get the speech synthesizer to say any word, without resorting to the TE II (can't be used with Extended Basic) or speech support subroutines (take too long to load, space on disk, etc.) There were some early BASIC programs that allowed the user to cut apart the speech data strings and concatenate them, but that solution ignored the underlying bit structure of the frames, and wasn't all that flexible (or good-sounding).
  • Create New...