Jump to content
IGNORED

Ti 99/4a sound chip


Jamesapp

Recommended Posts

Hello, 

 

i started writing digital music with ti basic and my ti 99/4a home computer. 
 

from reading on wikipedia. I read that the sound chip in the ti 99/4a has a line in port? 
 

i think i read that you can use the tape recorder plug to interract with the chip? 
 

im new to a lot of this. But i wondered if anyone had any info on specifically the line in on the sound chip of the ti 99/4a? 
 

i couldnt really find a good article online discussing this topic. 
 

i have basic questions on what exactly this means in a practical sense? And also any info thoughts on how to actually do this? 
 

i have specific questions. But ill wait hopefully till i get a redponse. 
 

any help or info would be appreciated

  • Like 2
Link to comment
Share on other sites

It's an assembled program, not mine, but it works with the SID99 card I have. I'll have to dig up the program... maybe someone remembers that. 

Better yet, if someone has the schematic for the SID99. I'm thinking Jim has that now as I'm refreshing my memory regarding and uses the commodore sound chip...I think I'm off base...I got confused regarding the type of sound chip..

Sorry bout that.

Edited by GDMike
Link to comment
Share on other sites

7 hours ago, Jamesapp said:

from reading on wikipedia. I read that the sound chip in the ti 99/4a has a line in port? 
 

i think i read that you can use the tape recorder plug to interract with the chip? 
 

im new to a lot of this. But i wondered if anyone had any info on specifically the line in on the sound chip of the ti 99/4a? 
 

i couldnt really find a good article online discussing this topic. 
 

i have basic questions on what exactly this means in a practical sense? And also any info thoughts on how to actually do this?

Yes, the audio coming out of the tape recorder is fed into the audio input on the sound chip. If you can find the tape recorder cable for the 4A, you can mix the audio from practically any device with a 3.5mm jack into the output of the computer. The audio input line is also present on the side I/O port of the computer; that's where the Speech Synth accessory's audio gets mixed into the computer's output.

  • Like 1
Link to comment
Share on other sites

Hello thanks for the reply

 

just curious. 
 

is there any way to record onto the chip? Any sampling functions? 
 

im assuming not? 
 

also no way to use this in a program?

 

but again thanks for the response. 
 

i guess i could lets say, hook up the line out on my casio to the head phone jack on the tape recorder plug. And then hook up my computer speaker to a digital recorder. 
 

and run my sound program and have the keyboard take over from my ti playing musical frequencies? 
 

im wondering is there any benefit to mixing on the chip, sound balance tone etc? 
 

again thanks for the response. 
 

i was thinking there was a way to actually use the line in from the chip somehow in a basic program? 
 

anyway thanks again. If you have any thoughts on my other questions id appreciate it

Link to comment
Share on other sites

2 hours ago, GDMike said:

It's an assembled program, not mine, but it works with the SID99 card I have. I'll have to dig up the program... maybe someone remembers that. 

Better yet, if someone has the schematic for the SID99. I'm thinking Jim has that now as I'm refreshing my memory regarding and uses the commodore sound chip...I think I'm off base...I got confused regarding the type of sound chip..

Sorry bout that.

Yes, I have the rights to the SID Master stuff now. I have updated the boards, but I still have to make a schematic for them though. Thanks for reminding me to put that into my queue. :)

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

If you look at the diagram, there are three tone generators, controlled by your program. In addition, there is a noise generator, also under your program control. The external input doesn't work the same way--it is mixed in to the outputs of the sound/noise generators (basically a sound overlay). Where is it useful? You could take the output sound from one chip and overlay it on a second chip to get more voices to your output sound. You could also overlay sound from another source (like a SID chip or a MIDI device) and have that play. Another option would let you overlay a voice track from an interactive training program (using the rare-as-hens-teeth video controller to overlay both additional sound and video data while responding to user input from the keyboard). You can probably come up with other use cases too, these are just things I know have been done in the past.

  • Like 2
Link to comment
Share on other sites

Ksarul

 

thanks for the reply. 
 

i dont want to bother you but i just tried to hook up my digital recorder using my tape recordrr plug. 
 

i plugged in the white wire. Which im assuming is the headphone or sound in cable. Hoping this would act as a line in

 

anyway i had my digital recorder turned on and tried to play a track. I had my ti on and plugged into a set of computer speakers. 
 

i was getting noise from my ti

 

but when i played the track i didnt hear it. 
 

related to what you wrote. Should i have heard sound coming from my digital recorder, going to my ti via tape recorder cable and then to my speakers? 
 

anyway thanks for your response. 
 

am i thinking of this wrong? Or would i some how have to communicate with my ti sound chip somehow? 
 

again i really appreciate the response.  And any help is appreciated

Edited by Jamesapp
Link to comment
Share on other sites

One important note, based on the page 3 diagram: the audio input is on pin 4 of the 9-pin connector. That pin is not connected to any of the pins on the cassette cable. You were connecting to the mag in signal. The other thing is that any signal coming in on pin 4 would only go to the sound chip. Something (a program) would have to actually select the sound chip to allow it to pass the data beyond that input point. It isn't a fire-and-forget kind of process.

  • Like 1
Link to comment
Share on other sites

4 hours ago, Jamesapp said:

Should i have heard sound coming from my digital recorder, going to my ti via tape recorder cable and then to my speakers? 

I haven't had a TI, running for a while. But, yes. The white input plug should pass audio to the sound chip. The sound chip will pass audio from it's input to it's output, as long as the TI, is powered-up. This facilitates cueing the tape w/o having to fool around with the headphone jack/plug.

 

However, Q400 can, if turned ON by P8, from the 9901, attenuate that crossover completely.  The default for Q400, is OFF. Not too sure what might turn Q400, on, other than a USER program.

 

The input from pin 4, on J400, does not appear to be switched in any way(other than the need for power to the 9919).

Edited by HOME AUTOMATION
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

There are 3 CRU bits for the cassette. One is Audio Gate. This is the P8 general purpose input/output (GPIO). 

 

One way to experiment on it it is from the Mini Memory cartridge.  It's a very handy cartridge to have for playing with hardware.   (Otherwise, you have to execute some assembly language... which would require knowledge, but is doable from TI BASIC with Mini Memory or E/A cartridges plugged in, or else in XB.)

 

 

Plug in Mini Memory, from the TI menu choose Easy Bug. 

 

There are one-key commands like M to examine or change Memory. Manual Here.  

You want C for CRU.

For the audio gate:

C0030

Then type 0 or 1 at the prompt. Stay here in Easy Bug while you play with the tape recorder to see the effect of that bit. 

Also fun: turn the motors on/off.  See the table below for bit numbers!  Always type the address (bit number) in Hex like 002C (no > sign required)

 

 

 

General info and CRU map of the 4A's parallel I/O interface chip, the 9901. 

The relevant bits are:

 

22 >002C O 1: turn CS1 motor on
23 >002E O 1: turn CS2 motor on
24 >0030 O Audio gate
25 >0032 O Output to cassette mike jack 
       
27 >0036 I

Input from cassette headphone jack

 

 

The console routines write to the cassette output by toggling 0032 precisely. They read from the cassette by sampling 0036 at precise intervals. 

 

To do this from BASIC you need a tiny assembly program and a way to call it. 

The assembly program is:

CLR R12

SBO 24

RT

 

 

I'll work up a BASIC program that will put this into memory for ya. 

 

 

  • Like 4
Link to comment
Share on other sites

On 9/13/2022 at 1:48 PM, GDMike said:

I have a piece of ti assy program that allows you to record your voice from cassette and save to disk. I've tried it last year and it worked.

Does anyone remember this one. If not I'll have to dig through my software to find it..

I remember a program back in the mid 90's that did that.  If I recall, the voice was low volume when replayed with whatever I was using for sound (TV likely) at the time.

  • Like 2
Link to comment
Share on other sites

7 hours ago, FarmerPotato said:

There are 3 CRU bits for the cassette. One is Audio Gate. This is the P8 general purpose input/output (GPIO). 

 

One way to experiment on it it is from the Mini Memory cartridge.  It's a very handy cartridge to have for playing with hardware.   (Otherwise, you have to execute some assembly language... which would require knowledge, but is doable from TI BASIC with Mini Memory or E/A cartridges plugged in, or else in XB.)

 

 

Plug in Mini Memory, from the TI menu choose Easy Bug. 

 

There are one-key commands like M to examine or change Memory. Manual Here.  

You want C for CRU.

For the audio gate:

C0030

Then type 0 or 1 at the prompt. Stay here in Easy Bug while you play with the tape recorder to see the effect of that bit. 

Also fun: turn the motors on/off.  See the table below for bit numbers!  Always type the address (bit number) in Hex like 002C (no > sign required)

 

 

 

General info and CRU map of the 4A's parallel I/O interface chip, the 9901. 

The relevant bits are:

 

22 >002C O 1: turn CS1 motor on
23 >002E O 1: turn CS2 motor on
24 >0030 O Audio gate
25 >0032 O Output to cassette mike jack 
       
27 >0036 I

Input from cassette headphone jack

 

 

The console routines write to the cassette output by toggling 0032 precisely. They read from the cassette by sampling 0036 at precise intervals. 

 

To do this from BASIC you need a tiny assembly program and a way to call it. 

The assembly program is:

CLR R12

SBO 24

RT

 

 

I'll work up a BASIC program that will put this into memory for ya. 

 

 

Hello

 

if you were talking to me that would be great. 
 

i really do have basic noob questions. 
 

im into programmable sound generators in early hardware

 

im confused ive read conflicting reports

 

dont know exactly what i want to accomplish. Dont know basic stuff

 

but my main goal now is to play a casitone keyboard and mix it with the sound chip? No luck yet

 

i also would like to talk to another computer to send it different timbres of 8 bit sound

 

im gonna look for my extended basic cart

 

but i appreciate any help

Link to comment
Share on other sites

14 hours ago, Jamesapp said:

Hello

 

if you were talking to me that would be great. 
 

i really do have basic noob questions. 
 

im into programmable sound generators in early hardware

 

im confused ive read conflicting reports

 

dont know exactly what i want to accomplish. Dont know basic stuff

 

but my main goal now is to play a casitone keyboard and mix it with the sound chip? No luck yet

 

i also would like to talk to another computer to send it different timbres of 8 bit sound

 

im gonna look for my extended basic cart

 

but i appreciate any help

Yes, I was aiming to help you where you’re at. You would be better off using extended basic. 
 

The regular CALL SOUND statements from Basic or XB are your tools. Things like rapidly varying the frequency or volume are limited by BASIC’s speed. but you can get an idea of the possibilities with FOR-NEXT loops changing the parameters. 
 

The timbre is square waves. You might add detuned or harmonic components, up to 3 square waves:



100 S=2^(1/12)
110 F=262
120 FOR I=0 TO 12
130 CALL SOUND(1000,F,2,F*2,5,F*4,9)
140 F=F*S
150 NEXT I

RUN


Detuned: replace line 130

 

130 CALL SOUND(1000,F,0,F+3,4,F+7,10)


I just made up the modifications.  play around with the F.

 

S is the constant to calculate the next note in a well-tempered scale.

 

262 is middle C.

 

0 is the loudest volume. 30 is no volume. 4 is -4 dB. (Softer)


F*2 is the second harmonic

F*3 is third, etc

 

A square wave is already a sum of odd harmonics, so adding evens means more character. (adding odds would reinforce existing harmonics.)


NOISE


Then there is periodic noise (4 values) and white noise. (4 values)Noises are the negative numbers:

 

FOR I=1 TO 8
CALL SOUND(1000,-I,2)

NEXT I


The -4 and -8 are adjustable—you play a sound in square wave channel 3 to adjust them. 
 

10 OFF=30
20 F=5000
30 CALL SOUND(1000,-4,2,110,OFF,110,OFF,F,2)


 

Look up the Hells Halls post where @pixelpedanttalks about his  sound effects in Basic. 

  • Like 1
Link to comment
Share on other sites

Farmer potato

 

thanks for the info and reply

 

i just had success with my casiotone and the sound from my ti

 

i tuned the casio to a=440

 

wrote a little program on my ti skipping some notes. 
 

i then recorder both on a digital recorder seperatly setting levels balance ect. 

 

curious about what u had written in the earlier post? 
 

really interested in the line in on the sound chip and how it works how to access it. 
 

i was really happy with the sound i got this morning. I guess i bassically used my digital recorder as a mixer in some sense.

 

but im still interested in the line in on my chip? Id love to lets say add another programmable chip to it and use it as another voice. 
 

i was up last night reading and watching videos on some recent projects people are doing

 

i got excited about possibilities. But kind of want to get grounded in some basic info like analog vs digital ect

 

ive heard and read different things on my sound chip. 
 

any info or that assembly program seemed really interesting for what i think im tryong to do. I have a extended basic cart

 

a basic program that could get me acces to some of the chip functions would be great

 

anyway again thanks for the help

 

the examples you gave will definatly help with timbres ect

Link to comment
Share on other sites

@Jamesapp

glad you’re getting somewhere!


I will work out the BASIC program to give CALLs for those things.  requires   XB with 32K expansion, or BASIC with Minimemory cartridge. Then the  syntax to install an assembly routine looks like:

CALL INIT

CALL LOAD(9462,1,2,3,4,5,6,…)

CALL LINK(“GATEON”)

CALL LINK(“OFF”)

 

 

I have a project (no time for it lately) which is 4 of those 76489 sound chips. (The one in the 4A.) First made in 1983,  as FORTI and programmed in FORTH. Which is very fast to alter sound chip inputs, allowing more timbre. 
 

My FORTI plugs into the 4A as a “sidecar”. The basic unit exists, but has bugs. Featuritis has led me to ideas like adding a low-pass filter chip and reverb. And  I constantly get new ideas.
 

 
 


 

 

 

  • Like 2
Link to comment
Share on other sites

With that toolset (i.e., what you already have in XB+NanoPEB), you have the means to compile BASIC programs or play sound lists.  And with that ability, you have the potential to write music in BASIC (with all its simplicity) while taking advantage of techniques which require faster processing of sound commands than the BASIC interpreter affords.  So that may be something you want to look at. 

 

While I myself take a great interest in squeezing as much as possible out of the TI-99's sound in plain old TI BASIC, it very much is an exercise in squeezing blood from a stone, given the time required to process each CALL SOUND command.  So investigating faster solutions is not unwise, if one leans more in the direction of results-oriented goals than "compelling challenge" oriented goals. 

  • Like 2
Link to comment
Share on other sites

12 minutes ago, pixelpedant said:

With that toolset (i.e., what you already have in XB+NanoPEB), you have the means to compile BASIC programs or play sound lists.  And with that ability, you have the potential to write music in BASIC (with all its simplicity) while taking advantage of techniques which require faster processing of sound commands than the BASIC interpreter affords.  So that may be something you want to look at. 

 

While I myself take a great interest in squeezing as much as possible out of the TI-99's sound in plain old TI BASIC, it very much is an exercise in squeezing blood from a stone, given the time required to process each CALL SOUND command.  So investigating faster solutions is not unwise, if one leans more in the direction of results-oriented goals than "compelling challenge" oriented goals. 

+picelpedant

 

thanks for the reply. 
 

im new to this. Trying to get my footing. Thanks for the reply. 
 

im gonna look into the nano peb and extended basic

 

id still love the basic program just to test the sound in on the chip

 

But thanks ill look into what u said

Link to comment
Share on other sites

farmer potato or anyone else who can help. Im trying to write a small assembly program and load it in basic to get to the audio line in on the ti 99/4a sound chip if it indeed has one?

 

10 CALL LOAD(9462,1,2,3,4,5,6,…)

20 CALL LINK(“GATEON”)

30 CALL LINK(“OFF”)

 

40 CLR R12

50 SBO 24

60 RT

 

if i get the necessary hardware. i.e. nano peb, extended basic. 
 

would something like this work? Do i need to name the function?

On 9/14/2022 at 2:04 PM, FarmerPotato said:

There are 3 CRU bits for the cassette. One is Audio Gate. This is the P8 general purpose input/output (GPIO). 

 

One way to experiment on it it is from the Mini Memory cartridge.  It's a very handy cartridge to have for playing with hardware.   (Otherwise, you have to execute some assembly language... which would require knowledge, but is doable from TI BASIC with Mini Memory or E/A cartridges plugged in, or else in XB.)

 

 

Plug in Mini Memory, from the TI menu choose Easy Bug. 

 

There are one-key commands like M to examine or change Memory. Manual Here.  

You want C for CRU.

For the audio gate:

C0030

Then type 0 or 1 at the prompt. Stay here in Easy Bug while you play with the tape recorder to see the effect of that bit. 

Also fun: turn the motors on/off.  See the table below for bit numbers!  Always type the address (bit number) in Hex like 002C (no > sign required)

 

 

 

General info and CRU map of the 4A's parallel I/O interface chip, the 9901. 

The relevant bits are:

 

22 >002C O 1: turn CS1 motor on
23 >002E O 1: turn CS2 motor on
24 >0030 O Audio gate
25 >0032 O Output to cassette mike jack 
       
27 >0036 I

Input from cassette headphone jack

 

 

The console routines write to the cassette output by toggling 0032 precisely. They read from the cassette by sampling 0036 at precise intervals. 

 

To do this from BASIC you need a tiny assembly program and a way to call it. 

The assembly program is:

CLR R12

SBO 24

RT

 

 

I'll work up a BASIC program that will put this into memory for ya. 

 

 

 

Link to comment
Share on other sites

7 hours ago, Jamesapp said:

40 CLR R12

50 SBO 24

60 RT

Well, you wont be able to enter these assembler mnemonics directly into the BASIC interpreter's editor! They will need to be assembled first. That would be easy to do. However the output from the assembler will be a FILE. That file will need to be LOADed into extended BASIC. Do you have a way to get such a FILE, from the IT device you are using to access this forum, onto your real TI.

 

I don't know of an assembler that can be loaded from extended BASIC directly.

 

Otherwise, I think @FarmerPotato's, plan is to convert the program's MACHINE CODE, into ASCII, bytes, that can be typed in as such...

 

10 CALL LOAD(9462,1,2,3,4,5,6,…)

 

If successful, this will, I believe, allow you to, prevent/allow sound passthrough from the CS1, input line, if desired.:ponder:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...