• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

What to do with a NUBUS DSP Card? (besides Photoshop)

Trash80toHP_Mini

NIGHT STALKER
Cool! We've already had more than a bit of collaborative Hardware/FirmWare/EmulationWare activity going on already.

I can't help, but maybe some of you competent comrades might like to form up a SkunkWorks Project Team to develop the DSP supported 68k SETI WorkUnitCruncher?

Bunsen's, Audio Card DSP Enabler sounds like a fabulous project. My Automedia Card could use some help running MPEGDEC on 68k. :approve:

Does anyone have another notion for a DSP project? :?:

 

Bunsen

Admin-Witchfinder-General
My Automedia Card could use some help running MPEGDEC
I spoke to the developer of MPEGDec a long while back. He was working on porting to the AudioMedia cards - the problem he ran into was that there is insufficient RAM attached to the DSP.

DSP supported 68k SETI WorkUnitCruncher
As a stepping-stone to something useful? Sure, why not. :p

ARTA (Apple Real Time Architecture)
Thanks, beachycove. That was the acronym I was trying to remember. Searching for more info now, and I'll add links here to what I find.

840AV uses an AT&T DSP 3210 / Supermac GX card for the Thunder/24 (and others?) uses AT&T DSP 3210
Well that sounds promising then, for audio routines, as they are already known to exist for the AV Quadras.

And absent developer tools, I imagine most of the work you'd be able to do will be in assembly (or machine code) for the DSP(s) in question.
They might be available in gcc or other open toolchains - worth checking. With a bit of luck, there might even be open-source routines floating around for re-use.

 

Bunsen

Admin-Witchfinder-General
And on a mod note,

Nearly every thread on this board is, by definition, focused on old things. Could we please avoid getting diverted into extended whines about how the modern world is rubbish, and just get on with it?

 

Bunsen

Admin-Witchfinder-General
Link dump:

/not all checked: will add more as found/

Two New Programmer's Tools for Digital Signal Processing - 1995 B.Hon thesis using Quadra AVs

Digital Synthesis of Musical Sounds - 1992 M.Sc. thesis using Moto56000 on Digi SA Nubus on IIci

comp.dsp FAQ

This is the README file for the GCC based DSP3210 C compiler

Any use for AT&T 3210 DSPs? - an old mailing list post

http://en.wikipedia.org/wiki/Motorola_56000

a56 - a freeware Motorola DSP56001 assembler

ftp://ccrma.stanford.edu/pub/DSP/ - the "DrBub" file is a collection of files from Moto's old DSP BBS, and other things ... like the promisingly-named "disasm56"

doc.ic.ac.uk/computing/systems/motorola/digital-signal-processing/dr.bub.sources is supposed to be a more complete archive, but it appears to be lost.

ftp://ftp.cs.tu-berlin.de/pub/mac/report/av-pmac-audio.rtf

Audio capabilities of AT&T 3210- and PowerPC-based Macintosh products
  • This document covers the audio capabilities of the following products:
  • 040 AV Macs: Apple Macintosh Centris 660AV; Quadra 660AV & 840AV
  • Power Macs:

    AV Power Macs: Apple Power Macintosh 6100/60AV, 7100/66AV, 8100/80AV
  • Plain Power Macs: Apple Power Macintosh 6100/60,7100/66, 8100/80

[*]SI tools: Spectral Innovations’ DSP3210/ARTA Developer Toolkit

[*]SI board: Spectral Innovations’ AT&T3210-based, ARTA-compliant NuBus card

[*]ARTA Macs: 040 AV Macs & any Apple Macintosh with the SI board
MpegDec - discussion with developer, here, in 2002. Mentions Quadra AV DSPs, 56001s, and Photoshop cards.

http://groups.google.com/group/comp.dsp/tree/browse_frm/month/1993-09/46e02a515a425f58?rnum=71&_done=/group/comp.dsp/browse_frm/month/1993-09?&pli=1

>Apple uses the AT&T DSP3210 in the new Macintoshs. The DSP runs in>the Apple Realtime Architecture (ARTA) under a so called DSP OS.

>Is this identical to VCOS ?

VCOS and ARTA are extremely similar DSP OS's for the DSP3210/DSP3207,

but not identical. Both are real-time, multitasking, multiprocessing

DSP operating systems. Both have similar roots and ARTA is probably

best described as a "superset" of VCOS. The OS's are similar enough

to require minimal effort to port DSP modules from one domain to

the other. Thus, you have a solution if you are looking to do

cross-platform DSP development. ARTA runs on DSP-equipped

Macintoshes and VCOS predominantly runs on Windows systems but is

also supported on some others.
/ETA 29 May 2012/

Low End Mac's Radius Index

Vintage Mac World - Vintage Radius Documention

Nubus DSP-capable video cards

NuBus PPC vs. DSP - old Applefritter thread with some clues.

PhotoEngine - old thread here

radius.vintagebox.de


[*]PhotoBooster & PhotoEngine Q&A

The PhotoEngine is a NuBus card with 4 DSPs. The PhotoBooster (pictures) is an 040 PDS card with 2 DSPs.You need two files to use a PhotoEngine or PhotoBooster. The first file is a System Extension entitled "•Radius DSP". The second file is a Photoshop Plug-in, entitled "PhotoEngine Plug-in" or "PhotoBooster Plug-in"
[*]ThunderStorm, Thunder II, and all DSP-based Image Processing Accelerators Q&A

This document pertains to all Spectrum Power w/DSP, ThunderStorm, Thunder II, Thunder II•GX, PhotoSpeed, and upgraded Thunder/24 cards.
(IPA = Image Processing Acceleration) This software is the 'DSP code' that accelerates Photoshop resamples and filters on all SuperMac & E-Machines graphics cards with twin DSP16A chips, as well as the ThunderStorm Photoshop accelerators. The IPA software consists of a control panel and two plug-ins.

Q: What is the difference between the "ThunderStorm for Adobe Photoshop" NuBus card, the Thunder II Upgrade, the Spectrum Power DSP Upgrade, and the DSP daughtercard on the Thunder II family of cards?

A: Physical form is the only difference. The advantage of having the image-processing accelerator as a daughtercard is that this solution does not require an additional NuBus slot. The Spectrum Power DSP Upgrade is for the Spectrum Power•1152, as well as some E-Machines Ultura and Futura II cards.


 
Last edited by a moderator:

Bunsen

Admin-Witchfinder-General
audio / programs that were DSP-aware. Digitrax, maybe?
Digitrax, yes.

http://www.soundonsound.com/sos/1995_articles/may95/applenotes.html

the latest acquisition by Opcode: DigiTrax from Alaska Software, founded by the Apple engineers who developed the core of the Apple Real-Time Architecture (ARTA) signal processing engine. DigiTrax 1.2 is a multitrack digital audio recording and editing package
Also:

/not all checked: will add more as found/

Opcode Studio Vision Pro

Opcode Max with DSP objects from CNMAT also mentioned here.

Digidesign ProTools (various versions, mostly locked to their own hardware)

Digidesign TurboSynth - and possibly Antares Infinity?

Deck II (as mentioned upthread)

UniSon (same thread as Max)

Syd (formerly "SoundSynth")

 

Bunsen

Admin-Witchfinder-General
However, it is certainly the case that the Control Panel (or was it Vu-meter? I forget, it was a long time ago) shows all DSPs as active in Photoshop in an 840av with a Storm card inside.
I would be thrilled to learn that it was in fact VU Meters:


  • VU Meters 1.0
     
    Measure the sound level at the input and output of the DSP (Digital Signal Processing) sections of the Macintosh AV computers. Should also work with any DSP card that runs the Apple Real Time Architecture (ARTA).

 

Trash80toHP_Mini

NIGHT STALKER
DSP supported 68k SETI WorkUnitCruncher
As a stepping-stone to something useful? Sure, why not. :p
Managing to do a work unit on 68k would be cool!

As for MPEGDEC, I've still got the RAM upgrade he sent me for my AutoMedia Card back in the day of the DuoBoomBoxDock™ feasibility studies/experimental stage.

 
Last edited by a moderator:

Bunsen

Admin-Witchfinder-General
I can't imagine a bigger waste of time, effort, and electricity, personally, but whatever floats your boat. It would at least demonstrate the ability to run arbitrary code on the cards. It won't, however, solve the problem of getting data in and out of the cards, to other (non-Photoshop) apps, in a meaningful and timely fashion.

Cory reports in IRC that a single SETI unit took a month on a Pentium 150. So, basically, get a grip.

 

Trash80toHP_Mini

NIGHT STALKER
WHAT-ever! :eek:)

The question was an open one, so I made a suggestion . . . and you stuck your tongue out at me!
vent.gif


Porting pre-existing, open source code for raw Number Crunching should be a much more practical proposition as a first experiment in this newly re-discovered development environment. Anything having to do with sound or graphics on proprietary cards using proprietary software can't be nearly straightforward, or so I'm led to believe.

But what do I know . . . not a lot . . . I hate programming like I hate bookkeeping, that doesn't mean I'm not good at either, I am. However, I don't do either any more than absolutely necessary . . . which isn't much lately.

Like you said, debatable practicalities notwithstanding, it's an avenue for some useful experimentation on a first trial basis. :approve:

 

eraser

Well-known member
Cory reports in IRC that a single SETI unit took a month on a Pentium 150. So, basically, get a grip.
I have one of the Radius cards with four DSPs and according to the benchmarks (advertising, really) it came with I did some basic math. While the card will certainly speed up computation considerably on certain tasks it would still be slow by todays standards. As a matter of fact, if you took a Mac with 4 NuBus slots and filled every slot with a 4 DSP card (16 DSPs!) you would still be lagging slightly behind the performance you would get out of a G3 upgrade for that Mac. A midrange G4 nowadays is barely able to run YouTube in a web browser but even it would blow past a Mac with 16 DSPs without much effort.

Having said that, are there cool things we could think of to do with the DSPs? Yes!

Like you said, debatable practicalities notwithstanding, it's an avenue for some useful experimentation on a first trial basis. :approve:
Experimentation is good. Getting these cards/chips to run routines, even trivial at first, would be great to see. :)

I have worked as a commercial programmer, including working on Mac applications and I might be willing to get behind such an effort *if* I have the time. One possible idea is an MP3 player app that offloads CPU workload so that you can play music in the background while you work at near full speed on the machine.

Anything having to do with sound or graphics on proprietary cards using proprietary software can't be nearly straightforward, or so I'm led to believe.
That is true ... it isn't/won't be ...

 

Bunsen

Admin-Witchfinder-General
Some Cards had four of the little suckers on board
Heh. How do you fancy sixty-four?

tested an 18 MB TIFF (RGB) file on a PowerMac 7200 / Using Adaptive Solutions' PowerShop the test took only nine seconds to apply ColorMatrix, and without the image processor, the test took 90 seconds.
So that's (allegedly) ten times as fast as a PPC 601 @ 75MHz. Now, fill a IIfx up with those ...

Pity the card is so rare (I've seen *one* on ebay in ten-ish years), and the processor so undocumented.

IMHO, the best general-purpose Nubus coprocessor remains the Radius Rocket: anything that can run on System 7.x / 040 can run on a Rocket.

 

Unknown_K

Well-known member
A powershop would probably cost more then a MDD G4 on ebay these days if it showed up.

Even in Photoshop the DSP sped up only a few tasks (which of course they used for a benchmark), its not like they are a super fast general purpose processor.

 

Trash80toHP_Mini

NIGHT STALKER
IMHO, the best general-purpose Nubus coprocessor remains the Radius Rocket: anything that can run on System 7.x / 040 can run on a Rocket.
I'd have to agree, especially with a DSP or SCSI II Daughtercard installed, or BOTH on a pair of Rockets under RocketShare.

ISTR running mine as an accelerator under RocketWare on 6.0.8 until the Tuneup became available for 7.0.1 and I finally made the jump to System 7.

Just to clarify, the Rocket will run anything that runs under System 7 up to a max of 7.1 Pro, after which Apple broke Radius' license to run copies of the Mac ROMs by borking the AppleShare over NuBus which was the Rocket, and RocketShare's forte.

I've always been curious about the TokaMac(?) TransPuter Based Accelerator, but ISTR something about it only running in the IIfx expansion slot, dunno, no time for research on lunch hour. ::)

 

Unknown_K

Well-known member
Tokamac was a 68040/33 accelerator that ran on the IIfx using the PDS slot. There was an issue with the bus mastering setup of the IIfx so you had to send your IIfx motherboard in to be modified to get the Tokamac to work.

 

Bunsen

Admin-Witchfinder-General
From the linkdump posted above:

http://xenia.media.mit.edu/~bdenckla/misc/kronos_www/thesis/whole_thing.html

Two New Programmer's Tools for Digital Signal Processing

by Benjamin Frederick Denckla

A thesis for the Bachelor's Degree with Honors

Harvard University, April 5, 1995

I have extracted a few highlights and bolded or underlined things of possible interest.

This thesis presents two frameworks into which audio DSP programmers can insert their functions. One of the frameworks [AIFF-DSP] is for DSP in C on AIFF files and the other [fw3210] is for real-time DSP on 3210 Macintoshes (660AV and 840AV). These frameworks simplify DSP algorithm development by performing generic DSP tasks and providing multiple DSP algorithms from a single executable.
Related Work

All five of the major Mac audio editors can be extended to include DSP functions. (The passage is from a report on a recent trade show.)


  • Opcode (Studio Vision Pro), EMAGIC (Logic Audio), OSC (Deck II), and Steinberg (Cubase Audio) all implemented DSP plug-in support for their programs and introduced their first extensions. Assorted third party plug-in developers showed their wares at Digidesign's (Sound Designer) booth. ("NAMM `95 Report")


It is simple to get plug-in developer documentation from Digidesign ... The shareware audio editors Wavicle by Lee Fyock and SoundEffects by Alberto Ricci also support plug-ins.

In addition to these editors, the following programs support AIFF I/O and have built-in signal processing languages that can be extended to include user-written functions in C: The Mathworks' MATLAB, Zola Technologies' DSP Designer, and Barry Vercoe's Csound.
NB: None of the above necessarily implies access to Nubus DSP cards - with the exception of Digidesign's purpose-built audio cards, which use the Motorola 56001 DSP, and their own driver/software combination and plug-in architecture. The date of the above excerpt (1995) implies that many, if not all, of the new DSP plug-ins mentioned (apart from Digidesign's) would have been CPU-native on PowerPC.

MATLAB sounds worth investigating.

A distinguishing feature of AIFF_DSP is the ease with which users can add their own DSP functions: very little code beyond the algorithm itself needs to be written. Only Csound approaches this level of simplicity.
Another feature is its tiny size. ... the framework contains only about 800 lines of code ... the Mac executable is 41 Kb and its run time RAM requirements are similarly minuscule.

BugLite (part of the ARTA Developer's Toolkit) is the only program for 3210 Macs that is related to my real-time DSP framework. It provides an environment in which 3210 assembler programs can be run in object code form. ... BugLite suffers from frequent crashing, seriously compromising its usefulness.

real-time framework-like programs for Macs with Digidesign cards .. include DSP Designer, as well as Bill Gardner's Reverb, Adrian Freed's "MaxDSP" object for Opcode's Max, John Bates' Unison, and Joe Chung's Hyperlisp

The "MaxDSP" object benefits from the convenient collection of GUI objects (sliders, bar graphs, etc.) and MIDI processing objects provided by MAX. ... Unison is a graphical DSP programming language that can include user-written objects ... Unison can be interfaced with MAX ... Hyperlisp is an extension to Macintosh Common Lisp that provides scheduling and MIDI processing in addition to DSP services.
I skipped Chapter 2

Chapter 3 - The fw3210 Real-Time Framework
frees DSP programmers from having to worry about generic DSP tasks such as setting up audio I/O, loading code onto the DSP, and handling communication between the host and the coprocessor. ... processing is accomplished by independent pieces of object code called ARTA modules. ... in real-time on the ARTA hardware of 3210 Macs.

ARTA, the Apple Real-Time Architecture, is a hardware and software system for DSP ... a stereo audio codec and an AT&T 3210 DSP chip ... a real-time operating system derived from AT&T's VCOS. An ARTA executable is called a module, and is a piece of 3210 machine code with symbol table information

fw3210 makes all the necessary ARTA and Standard Sound system calls to provide an execution environment for the module ...

In ARTA, the DSP coprocessor and the host CPU share the same memory space.

In order to be used with fw3210, ARTA modules must have stereo I/O buffers and operate at 48 KHz sampling rate. ARTA delivers audio into their buffers as 3210-format floating point numbers in the range -1.0 to 1.0. ... Stereo-to-mono, mono-to-stereo, and mono-to-mono algorithms can be faked easily

the ARTA Developer's Toolkit ... originally available for $995 and are now available without support for $400. They require MPW (Macintosh Programmer's Workbench) ... Paul Lalonde has developed a public domain 3210 assembler for the Mac, but it is still in the beta-testing stage. ... I have been told that the 3210 simulator included in the Toolkit is quite good.

Recently, Eric Brombaugh has developed GUI3210, a version of fw3210 with a graphical end user interface added. GUI3210 also allows the end user to update parameters dynamically. ... I consider it to be fw3210's successor.

A recent program by Chris Weare, PowerRack, accomplishes real-time DSP in C on the CPU of Power Macs ... The source to PowerRack is available

A Patching Extension to fw3210 & AIFF_DSP

For example, the diagram below illustrates a patch using three processors and a splitter and summer.

Code:
         +-------processor 1---->processor 2-----+
        |                                       |
---->splitter                                  summer--->
        |                                       |
        +--------------processor 3--------------+
Patching lends itself to graphical control, but to begin with, a simple patch language would suffice. For example,

((processor 1, processor 2)(processor 3))

series connections ... In fw3210, ARTA system calls would be made to connect the modules' data streams together. ARTA is in fact specifically designed to handle such patching. Parallel connections require summers and splitters. These do not fit fw3210's symmetric processing model, in which input and output types are the same. Fortunately, ARTA itself imposes no such restriction on its modules.
There is selected source code for both frameworks included in appendices, and an extensive bibliography.

 

Bunsen

Admin-Witchfinder-General
have one of the Radius cards with four DSPs
Care to name that card?

4 NuBus slots and filled every slot with a 4 DSP card (16 DSPs!) you would still be lagging slightly behind the performance you would get out of a G3 upgrade for that Mac.
G3 upgrades were however only available for PowerPC Macs, not for 68ks. But your point is taken. Compare, for example. TylerEss's rig:

I can get 24 tracks and 12+ realtime filters on an 8100/80 with a JackHammer, G3, AudioMedia II, and a 10k drive, running Deck 2.6.1 under MacOS 7.6.1.
I wrote quite a bit about this in a LEM article. It's here: http://www.lowendmac.com/sable/06/0508.html
One possible idea is an MP3 player app that offloads CPU workload so that you can play music in the background while you work at near full speed on the machine.
Now you're talking }:) I wonder if Mr. MpegDEC would be interested in collaborating, or at least sharing code. A "Photoshop card plug-in" for MpegDEC would be one way to attack this problem.

 

Bunsen

Admin-Witchfinder-General
NB: the following does not relate directly to accessing Photoshop/Quickdraw Nubus cards, though it may provide clues for this and related projects. Again, these are edited highlights. The original document as available at the ftp link below.

Audio capabilities of AT&T 3210- and PowerPC-based Macintosh products

ftp://ftp.cs.tu-berlin.de/pub/mac/report/av-pmac-audio.rtf

(same author as thesis above)

Spectral Innovations’ AT&T 3210-based, ARTA-compliant NuBus cardSpectral Innovations’ DSP3210/ARTA Developer Toolkit

This board provides audio capabilities almost identical to those of the 040 AV Macs. In addition, it has digital I/O in the format of optical SP/DIF. I suspect that DSP applications running on it would be somewhat slower than on an 040 AV because it has to access main memory via NuBus rather than directly.

ARTA Macs

ARTA (Apple Real Time Architecture) is a real-time operating system derived in part from AT&T’s VCOS (Visible Caching Operating System). ARTA also includes hardware implementation guidelines. ARTA Macs contain an AT&T DSP3210. The assembler has a C-like syntax.

It theoretically supports multiple DSPs, so two or more 3210s (appearing on SI boards or on a 040 AV motherboard) could be used simultaneously.

The following is a description of the steps needed to write real-time DSP programs for ARTA Macs.

First you will need a 3210 assembler and a few header files. See the section of James Wang’s FAQ entitled “Developing software for the DSP” for more information on how to get these. I think your best bet is to get the SI tools.

Apple had a C compiler for the 3210, but Spectral does not distribute it because of its low quality. AT&T does have a good C compiler for the 3210 for DOS and Sun, but it has not been ported to the Macintosh.

Your assembler will allow you to compile source files into files with ‘dspf’ resources. These ‘dspf’ resources contain DSP modules, which are bits of 3210 machine code. In order to work, DSP modules must be loaded onto the chip and the resultant process must be connected to the system’s sound input and output buffers. / My program framework3210 is freeware and available via ftp

ftp://ftp.cs.jhu.edu/pub/dsp/framework3210.sit.hqx

ftp://ftp.csua.berkeley.edu/pub/jwang/develop/framework3210.hqx.

[sample code]

It appears that ARTA is not part of the Power Mac system software. Nonetheless, Christopher Weare has been able to do real-time DSP on these machines, using calls to Standard Sound.

Review of the SI Tools

You need MPW to use many of the SI tools. The tools include the assembler, simulator, BugLite graphical DSP module loader, Macsbug D Commands, and Snoopy runtime debugger.

Documentation

The documentation comes in two parts. The first is a big stack of 3-hole punched loose-leaf paper, containing about 10 different sections.

The second part is a spiral bound, bad photocopy of the AT&T DSP3210 manual. AT&T is willing to send out the real thing for free.

A large portion of the documentation is almost identical to that found in Apple Developer Note #5, which you probably own anyway if you get the toolkit.

Extending the tools

George Warner writes that the AT&T Application Library includes many (about 100?) useful DSP algorithms (FFTs, FIR and IIR filters) with complete source code. It should sell for about $100. I think you would have to call AT&T to find a distributor for this.
 
Top