English Amiga Board


Go Back   English Amiga Board > Support > support.Hardware > Hardware mods

 
 
Thread Tools
Old 07 June 2010, 22:29   #1
Amiga1992
Registered User
 
Join Date: May 2001
Location: ?
Posts: 19,646
Amiga audio channel split by hardware?

Is it by any means possible to split each of the channels of the Amiga into two to have 4 separate MONO outputs?

I know it has nothing to do with the way the Amiga works, but the AY/YM series of chips allow this, more prominently on the Atari ST, where you can take advantage of using a better amp instead of the one it comes with because it's faulty.
Amiga1992 is offline  
Old 07 June 2010, 22:44   #2
rkauer
I hate potatos and shirts
 
rkauer's Avatar
 
Join Date: Oct 2007
Location: Sao Leopoldo / Brazil
Age: 58
Posts: 3,482
Send a message via MSN to rkauer Send a message via Yahoo to rkauer
Yes, look into the schematics and use an extra pair of op-amps and two more RCA jacks to output in four channels.
rkauer is offline  
Old 07 June 2010, 23:37   #3
Shadowfire
Registered User
 
Shadowfire's Avatar
 
Join Date: Aug 2001
Location: Connecticut USA
Posts: 617
If I understand the question correctly, you want each of the four channels on a different mono output, not having all four channels on four outputs. IIRC Paula only outputs left & right channels, so the two channels are mixed internally inside Paula and what you request isn't reasonably possible.
Shadowfire is offline  
Old 08 June 2010, 00:55   #4
Amiga1992
Registered User
 
Join Date: May 2001
Location: ?
Posts: 19,646
Quote:
Originally Posted by Shadowfire View Post
If I understand the question correctly, you want each of the four channels on a different mono output, not having all four channels on four outputs. IIRC Paula only outputs left & right channels, so the two channels are mixed internally inside Paula and what you request isn't reasonably possible.
Yes it's exactly what i want, to separate each channel to get the 4 mono outputs of each. There really isn't any way to jump in before they get mixed?
Amiga1992 is offline  
Old 08 June 2010, 04:10   #5
rkauer
I hate potatos and shirts
 
rkauer's Avatar
 
Join Date: Oct 2007
Location: Sao Leopoldo / Brazil
Age: 58
Posts: 3,482
Send a message via MSN to rkauer Send a message via Yahoo to rkauer
Glenn is right: the channels are mixed inside Paula. Oddly I remember a device that splits the four channels for using a laser canons presentation controller...

And it surely was using an Amiga for that.
rkauer is offline  
Old 08 June 2010, 04:21   #6
Amiga1992
Registered User
 
Join Date: May 2001
Location: ?
Posts: 19,646
:O
I need to know about this device!
This would make a major breakthrough for us music makers
Amiga1992 is offline  
Old 08 June 2010, 10:44   #7
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,775
use 2 Paula's - detect adress and prevent access to ODD/EVEN pair of channels or mirror (decode adres and buffer data) from AUDxDAT (and maybe also AUDxVOL).
you can read this with SYSCLCK/16 ie somewhere around 1.79MHz.
pandy71 is offline  
Old 08 June 2010, 20:53   #8
Amiga1992
Registered User
 
Join Date: May 2001
Location: ?
Posts: 19,646
You can daisychain Paulas?
Amiga1992 is offline  
Old 09 June 2010, 03:23   #9
Shadowfire
Registered User
 
Shadowfire's Avatar
 
Join Date: Aug 2001
Location: Connecticut USA
Posts: 617
Quote:
Originally Posted by Akira View Post
Yes it's exactly what i want, to separate each channel to get the 4 mono outputs of each. There really isn't any way to jump in before they get mixed?
No. The left pair and right pair are mixed inside the IC (Paula has digital & analog sections inside the same IC). Only the resulting left and right audio streams are accessible outside of the chip.

You would need to build custom hardware (one route would be a daughter board that fits into the Paula slot, on which sits an fpga (which emulates Paula in hardware), 4-channel audio codec & support circuitry). A huge undertaking for something of questionable use, so likely a hobbyist project, if ever done at all.

Pandy's suggestion is somewhat impossible, since there is no DMA control hardware for a 2nd paula in Gary. Even it was possible, you would require custom software to use the 2nd Paula.
Shadowfire is offline  
Old 09 June 2010, 03:29   #10
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,711
Speaking of emulating paula, is there any source code for an accurate paula emulator out there? I mean, someone that translated the schematics to code or so. Preferably assembly or C.
8bitbubsy is offline  
Old 09 June 2010, 03:46   #11
Shadowfire
Registered User
 
Shadowfire's Avatar
 
Join Date: Aug 2001
Location: Connecticut USA
Posts: 617
You might want to check out the WinUAE sources.
Shadowfire is offline  
Old 09 June 2010, 05:11   #12
Amiga1992
Registered User
 
Join Date: May 2001
Location: ?
Posts: 19,646
I understand, Shadowfire. Thanks for your valuable input!
Amiga1992 is offline  
Old 09 June 2010, 09:58   #13
whiteb
Fanatically Amiga.
 
whiteb's Avatar
 
Join Date: Apr 2002
Location: Melbourne, Victoria, Australia
Age: 54
Posts: 1,557
Quote:
Originally Posted by Shadowfire View Post
You might want to check out the WinUAE sources.
Or learn VHDL, and use the minimig sources to create a secondary Paula and split your channels that way, and route the new channels out to the Spare I/O.

You cannot physically splice the channels out, if the mixing is done inside the Paula Chip, at least on a REAL amiga, so hence, the Winuae Sources (And thank Toni for them), or make your own custom Minimig
whiteb is offline  
Old 09 June 2010, 10:18   #14
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,522
UAE sources are quite messy.. It is not made for generic emulation and resampling is very tightly integrated.

100% correct emulation for module-like players will be very simple ("nothing more" than a 4 channel D/A converter), it gets complex when interrupt timing, latch timing etc.. needs to be emulated. (normally only needed if you want to emulate an A500 not just Paula audio)

Check also HRM audio state diagram, it explains many things, but it isn't easy to understand
Toni Wilen is online now  
Old 09 June 2010, 11:34   #15
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,775
Quote:
Originally Posted by Shadowfire View Post
Pandy's suggestion is somewhat impossible, since there is no DMA control hardware for a 2nd paula in Gary. Even it was possible, you would require custom software to use the 2nd Paula.
No, my suggestion is guite ok - 2 Paula'a, share same adress space but different levels for volume on each Paula: first Paula serve as a source for 0 and 1 and second Paula as a source for 2 and 3, it can be done transparently to the system. Only need to change level for AUDxVOL that oposite channels are muted or repplace data for always 0 that particular pair of channels are not in use (is not outputed to particular R and L lines of Paula) - this can be made with relativelly simple logic (simple CPLD shall be sufficient)


but Toni what with second idea? - store values from AUDxDAT - all we need to do is decode RGA then store in buffer/latch value for particular channel ? maybe similar for AUDxVOL - then we have four pairs (sample + volume) of data that can be used outside - if we sample this 1.79MHz then we have all informations that we need.
pandy71 is offline  
Old 09 June 2010, 12:02   #16
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,522
Quote:
Originally Posted by pandy71 View Post
but Toni what with second idea? - store values from AUDxDAT - all we need to do is decode RGA then store in buffer/latch value for particular channel ? maybe similar for AUDxVOL - then we have four pairs (sample + volume) of data that can be used outside - if we sample this 1.79MHz then we have all informations that we need.
It should work if you don't need to be 100% accurate, you can't know when exactly samples switch without period counting, switch when AUDxDAT is written and when to use high 8-bit sample or low 8-bit sample.

btw, DMA bus access rate is ~3.5MHz, ~28MHz main crystal divided by 8.
Toni Wilen is online now  
Old 09 June 2010, 12:22   #17
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,775
accordingly to the http://www.bel.fi/~alankila/modguide/interpolate.txt - You have right Toni - my mistake (i dont know why i think on SYSCLOCK/16)

So if we decode RGA (access to the AUDxDAT, AUDxVOL), store values written to those registers (assume that value not changed remain the same) we have exactly the same data as Paula - then we know how state machine work - seems that it is simple Zero Order Hold then we can perfectly emulate general behavior of Paula.

So in CPLD we need "only" to:
-adress decoder
4x16 bit register to store AUDxDAT
4x6 bit register to store AUDxVOL
some glue logic that detect access (new Write to the AUDxDAT and AUDxVOL then strobe to change values stored in our registers)
state machine to "play" 16 bit value as 2x 8 bit values
then simply join 6 bit from stored AUDxVOL and the 8 bit AUDxDAT (upper 6 bits are xVOL, lower 8 xDAT) - such 14 bit word can be outputed directly to the 14 bit DAC (or we can decimate this by some reasonable factor - 32 ... 128 to lower DAC speed)


But IMO doing this only to have DC galvo control for laser seems to be unreasonable - currently there is plenty of multichannel DAC with SPI data input - easier is to connect this to the computer with using some PIC or AVR than reinvent the wheel.

PS

I know why i mentioned about 1.79MHz:

"If the sampling rate is set much higher than the normal maximum sampling rate (approximately 29 KHz), the two samples in the buffer register will be repeated. If the filter on the Amiga is bypassed and the volume is set to the maximum ($40), this feature can be used to make modulated carriers up to 1.79 MHz. The modulation is placed in the memory map, with plus values in the even bytes and minus values in the odd bytes." - source obviously AHRM

Last edited by pandy71; 09 June 2010 at 13:25.
pandy71 is offline  
Old 10 June 2010, 01:36   #18
Amiga1992
Registered User
 
Join Date: May 2001
Location: ?
Posts: 19,646
I don't want to do this for controlling lasers, I am a musician and I want all 4 channels with independent audio outputs, that's all!
I thought a mod similar to the easy YM2149 channel split mod would be possible
Amiga1992 is offline  
Old 10 June 2010, 05:19   #19
rkauer
I hate potatos and shirts
 
rkauer's Avatar
 
Join Date: Oct 2007
Location: Sao Leopoldo / Brazil
Age: 58
Posts: 3,482
Send a message via MSN to rkauer Send a message via Yahoo to rkauer
I know there was a laser projector for the Amiga: http://www.pangolin.com/products/pricelist-lsd1000.htm

Thing is: I cannot remember where shows how to split the four channels to use the laser control hardware inside the Amiga...

But I'm sure it is possible at least in the 500/2000 or it was only for the A1000?
rkauer is offline  
Old 10 June 2010, 11:19   #20
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,775
so seems that lsd doesn't split channels - i think that they use 2 channels but key to the success is to have DC coupled DAC - this is possible in Amiga with some small modifications.
pandy71 is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
A4000 Rev B Audio Low One Channel Loedown support.Hardware 4 20 March 2013 14:47
Amiga audio hardware trivia Toni Wilen Coders. General 12 23 September 2010 18:14
Audio hardware pron! Paul_s Hardware pics 3 23 September 2009 17:08
Virtual "Fifth" audio channel wanderer request.UAE Wishlist 3 03 September 2007 20:31
Picasso IV 4 Audio Channel Mixer setup Tony Landais support.Hardware 0 25 December 2003 15:45

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 21:22.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.14414 seconds with 13 queries