Amiga.org
Amiga computer related discussion => Amiga Hardware Issues and discussion => Topic started by: Karlos on April 29, 2007, 06:16:12 PM
-
Hi,
Despite having no real use for one I'm actually tempted to get a delfina DSP for the spare 1200. However, I'm curious about what the 56002 on the card is actually used for.
If the card is attached via the clock port I am assuming that it can't access anything on the motherboard and that basically the CPU has to perform PIO on it.
How fast is the CPU -> delfina transfer? Is it fast enough so that several streams of 16-bit audio can be written and then mixed by the DSP, or do the existing drivers do software mixing and then pass the mixed stream to the card? If it is the latter, then what role does the DSP play in normal use?
Additionally (and most importantly), can I, as a curious developer, write my own DSP code and run it on the card? What technical limitations are there with respect to the interface to the DSP (ie what restrictions other than speed and address range does the clockport impose)?
-
I've got a delfina in my 1200.
I can't get the thing going.
it worked allright with my amiga4000 and a isdn card for the clockport connection and a special(not from individual computers) 060 library.
But not on the amiga1200 I have tried 2 revisions and 2 differnt turbocards.
Only way I maybe can get it to go is by trying a 060 tcard.
But that is a maybe..
If it works it takes about 3% off the cpu off a 060.
But iff you get it going it is worth it.
-
@ Karlos
Can't really help you on low-level specs, but there's some interesting development material available.
This fine file from the Wayback Machine (http://web.archive.org/web/20030908093938/http://petsoff.com/files/Delf_Dev_4.15.lha) includes something called A56, an assembler for the DSP.
This old page (http://web.archive.org/web/20040208014342/petsoff.com/software.html) has some more details about the Delfina.
Most of Petsoff's site seems to be very adequately archived, so you should be able to access most of their stuff.
If you do start developing for the Delfina, I think many users (like me :-)) would be very grateful. There's some good stuff on Aminet that could stand to be updated, and it would be the Event of the Year if you could finally crush all the bugs in delfina.library
EDIT: I've also got all those floppies shown in the picture in that second link, but I don't have access to them right now. I'll search through them next time I do for anything missing from the Internet Archive.
-
I would happily pay you a small amount if you could update the delfina.library.
So it would become bugfree.
-
@Matt_H
To be honest I was thinking about actually (mis)using the DSP for other purposes...
Either way, I don't imagine the source code for the delfina.library is available in order for it to be fixed.
-
@ Karlos
To be honest I was thinking about actually (mis)using the DSP for other purposes...
Ah well. Hope that data is useful, at least.
Either way, I don't imagine the source code for the delfina.library is available in order for it to be fixed.
Not directly, no. But I'd imagine Jens Schoenfeld wouldn't be opposed to releasing it to someone planning to continue development.
-
@Matt
Cheers, I downloaded the developer archive anyway, just to see.
The thing is, I don't really want to get the card if it is going to point blank refuse to work out of the box, which seems to be the experience some people are having by the sound of it. Has anybody ever correlated which combinations work and which don't and what sort of problem they get in the process?
-
Karlos wrote:
@Matt_H
To be honest I was thinking about actually (mis)using the DSP for other purposes...
That clockport bus is so small don't even think about using it for 3D work :lol:
Get yourself an Atari falcon ;-)
-
Aww, your'e no fun!
I actually wanted to see if I could write some realtime resonant filters for it and possibly use that as the basis of a MIDI driven sampler ;-)
It would be a nice way to get the miggy coding bug back.
-
@Karlos
The thing is, I don't really want to get the card if it is going to point blank refuse to work out of the box,
Well I wouldn't say that it doesn't work. I have the Flipper version in my A2500 and it plays mp3s just fine with almost no cpu load. Some people have complained about stability problems. Mine also freezes up once in a while while playing mp3s.
-
I had one used it with bppc 060 as well as "6mb expanded 1200" also tried with a blizz 1230 .. The only thing i can say is that the driver is very poorly written and i diddent even want too try playing with the dsp as it would sometime crash even with mp3 playback and then there were this static sound :cry: just sold it off had little or no energy for the card ...
-
Karlos wrote:
If the card is attached via the clock port I am assuming that it can't access anything on the motherboard and that basically the CPU has to perform PIO on it.
Yes, the DSP can only access the small memory on the Delfina board. All Amiga<->Delfina transfers must be performed by the Amiga CPU. The DSP can send IRQ's to Amiga to trigger data transfers or any other action.
How fast is the CPU -> delfina transfer? Is it fast enough so that several streams of 16-bit audio can be written and then mixed by the DSP, or do the existing drivers do software mixing and then pass the mixed stream to the card? If it is the latter, then what role does the DSP play in normal use?
I don't remember the exact numbers anymore but I think the clockport limits Amiga<->Delfina transfers to something like 300 kBytes per second. Recording or playback of one CD-quality stream (stereo, 16 bit, 44100 or 48000 Hz) will work, but with quite high load on the Amiga CPU which is busy doing those slow transfers. Playback of several streams or using full-duplex mode (recording and playing at the same time) is not possible because of the slow clockport, although Delfina would be perfectly able to do this. Mixing of audio channels is done by the DSP, of course.
Additionally (and most importantly), can I, as a curious developer, write my own DSP code and run it on the card?
Yes, you can write and run your own code on the DSP. You have to write it in DSP assembly, though. There are several third-party programs for Delfina available on Aminet, some of them including full source codes: http://aminet.net/search?query=delfina (http://aminet.net/search?query=delfina)
What technical limitations are there with respect to the interface to the DSP (ie what restrictions other than speed and address range does the clockport impose)?
I'm not aware of any functional differences between the Delfinas with Zorro and clockport interfaces. Delfina1200 and Delfina Flipper are crippled badly by the slow clockport interface, so if you have the choice then get a Zorro-Delfina, i.e. a Delfina Lite!
-
Mixing of audio channels is done by the DSP, of course.
Mixing of which audio channels though? If the limit is 300KB/s, two 16-bit stereo channels at 44100Hz would max the interface out. A single 16-bit stereo 44100 stream needs ~173KB/s.
Incidentally, is the clockport addressable by any of the custom chips?
-
Mixing of which audio channels though? If the limit is 300KB/s, two 16-bit stereo channels at 44100Hz would max the interface out. A single 16-bit stereo 44100 stream needs ~173KB/s.
It can only be used on "real" Delfinas with Zorro interface. Clockport is too slow for more than one stream.
Delfina software usually works on all Delfina models because it uses the driver (delfina.library) API, only. At least all public software that I know works this way. The API hides the details, such as Zorro or clockport interface. These things are handled by the hardware driver.
Incidentally, is the clockport addressable by any of the custom chips?
Don't know. If you're thinking about replacing the API function Delf_CopyMem() then: good luck. ;-) All the details you need to know are in the hardware driver, there is no official user documentation about access to the hardware.
-
Karlos wrote:
Hi,
Despite having no real use for one I'm actually tempted to get a delfina DSP for the spare 1200. However, I'm curious about what the 56002 on the card is actually used for.
Hi Karlos, I posted a link a while back when I was thinking about getting a Delfina. But a much better and guaranteed to work development system all round is the Sound-art Chameleon. http:\\www.chameleon.synth.net
Be warned though DSP math is uber-geek. I think you'd like it :-D
-
I'd be willing to pay for an updated-bug-free delfina.library too!
I'd be awesome!
D.
-
(http://www.amiga.org/uploads/cavt461bfd427e50d.jpg)<--- Is that Vince Clarke and Eric Radcliffe?
oh... that chameleon rack unit looks cool!!!
-
golem wrote:
Be warned though DSP math is uber-geek. I think you'd like it :-D
It isn't that bad, really. It looks it when you see it formally expressed, but in the end it's all pretty much down to multiply-accumulate :-)
Last DSP stuff I did was on a Zilog 16-bit DSP.
-
bloodline wrote:
(http://www.amiga.org/uploads/cavt461bfd427e50d.jpg)<--- Is that Vince Clarke and Eric Radcliffe?
Yes. Circa Erasure - Wonderland when they used a bank of CZ-101s sequenced by BBC micro.
Is your name bloodline because of the Recoil/Alan Wilder LP?
[/hijack thread]
-
golem wrote:
bloodline wrote:
(http://www.amiga.org/uploads/cavt461bfd427e50d.jpg)<--- Is that Vince Clarke and Eric Radcliffe?
Yes. Circa Erasure - Wonderland when they used a bank of CZ-101s sequenced by BBC micro.
Hmmm... Judging by Vince's hair I assumed it was from the Assemby period :-)
Is your name bloodline because of the Recoil/Alan Wilder LP?
[/hijack thread]
Indeed it is! New Album Subhuman out soon ;-)
-
Ok, we've established that the clockport Delfina is almost useless for my original idea since it doesn't have the bandwidth to support multiple streams at 44kHz.
However, it looks like it could manage around 5 - 6 mono 22kHz 16-bit source streams before total bus saturation which means it might be able to serve as a cut down sampler. There are also various lossy 8-bit delta encodings one could apply to the source data increase that again, giving a more respectible polyphony.
The second idea I had might still be ok, which was to investigte the possiblility of a tiny softsynth that runs entirely on the DSP (it has several useful lookup tables in ROM) and simply controlled by signals from the CPU that are ultimately raised by MIDI input. The clockport has more than ample bandwidth for this.