I am planning to build an embedded system for musical recording
involving a mixer bussed to an embedded CPU w/ initial recording straight to
RAM or ROM. The peripherals would include: mouse, keyboard, monitor,
mixer, DAT, CD-RW and possibly a printer specifically made/used for creating
CD/DAT labels and other printed materials usually included with CDs and
tapes.
I had been considering using an 8086/8088 CPU w/ some sort of FPU, and
programming the system entirely in assembly. But since doing some reading
on Forth I am starting to think that it will give me, due to it's
extensibility, a much better basis for a programming language used
exclusively for the application I am considering. By extensing the
language in specific ways I would think that I could develop a version of
the language which is particularly well suited to my application, especially
if I started with a VERY basic Forth system (possibly just the necessary
primitives as well as create and does>).
My questions are:
1) Does this seem like a reasonable line of thought or exploration to you?
2) Is there any prior research concerning this application, and where can I
find it?
3) What CPUs are there which utilise Forth as the assembly language, and
are any of them inexpensive enough to be purchased by a hobbyist?
Thanks for any thoughts!
I don't know about the last part about making labels, but my guess is
you're targetting the home and semi-pro recording artist. I urge you to
look at the offerings of other companies like Yamaha, Sony, Roland, Tascam,
and others. What you are describing isn't terribly different from "digital
portastudio" kinds of devices. And these often support many standards and
protocols you don't mention-- such as MIDI (MMC, MTC), optical and AES/EBU
digital audio inputs and outputs, access to SCSI and IDE mass storage
devices, on-board digital effects and equalization (needed to avoid
transport delay issues in the A/D and D/A converters), and more.
> I had been considering using an 8086/8088
> CPU w/ some sort of FPU, and programming the
> system entirely in assembly. But since doing some
> reading on Forth I am starting to think that it will
> give me, due to it's extensibility, a much better
> basis for a programming language used exclusively
> for the application I am considering.
Maybe, but while an 8086 programmed in assembly or Forth might be keen for
system control, user interface, and the like, what really matters in an
application like you're describing is how fast you can shuffle data around.
You're likely going to want to handle digital audio with a DSP, depending
on the number of physical and virtual channels you want to process.
> 1) Does this seem like a reasonable line of thought
> or exploration to you?
If you're looking to do this commercially, then probably not. Unless you
can bring something new and really different to the table, I can't see you
competing with the big names in digital audio. If what differentiates you
is your choice of using Forth, then certainly not-- end users won't care
what language you programmed it in. They will want a digital audio tool,
and could care less how it was created.
> 2) Is there any prior research concerning this
> application, and where can I find it?
I might suggest you take a look at magazines such as Electronic Musician,
Keyboard, and even publications like Future Music. And a trip to your
local music supply store might not be bad either.
Rick Hohensee might know. He frequently posts here; I've misplaced
his e-mail address or I would post it.
--
Julian V. Noble
j...@virginia.edu
"Elegance is for tailors!" -- Ludwig Boltzmann
I thought about doing such a project myself many years ago.
Yes Forth would be a good choice for what you want. I always
wonder why Forth has not completely replaced assembly language
for embedded systems.
Your idea for using Forth to create your own special
purpose langauge is exactly what Forth was developed to do and
is the way many people use it. However, there is a problem with
learning to do what you want. The documentation to create your
own Forth at a very basic level has yet to be written. You will
have to develop your own routines to do many simple things and
the information for programming the various chips will not be
presented in a way that makes programming in Forth easy. Using
the 8086 or 8088 chip does not seem like a good idea to me.
These chips were not very good when they were new and they are
now antiques. You could go with the 80486 and Pentium chip: all
the code for displays, keyboards, mice, etc. is already done in
many forms. You could then use Forth under your favorite
operating system to work at a higher level. If you want to avoid
the complication of an operating system, then I think you should
look at other cpu's such as digital signal processors. Pick one
based on its available Forth system.
As for floating point, forget it. I use floating point math
all the time and I know its no good. There are applications
where using floating point makes some sense, but this is not
one of them.
There have been many attempts to create a Forth CPU. So far
these have been research projects and not something you'd want
to use for equipment you'd like to sell. All of these chips are
(were) produced in limited quantities and, even if you could get
them now, they could become unavailable at any time. Their
designers are not good at documentation and production. There is
always something new they want to try that makes their current
chip obsolete before it ever gets finished. They might be good
for a special project where you would buy all the rights to the
design, but not for a hobbyiest.
--
Michael Coughlin m-cou...@ne.mediaone.net Cambridge, MA USA
the F21 is an onboard Forth interpretor, is very inexpensive when produced
in mass quantities, and has all sorts of onchip co-processors. Too bad the
Ultra Technology site is down, or you could read up on the design...
-----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
http://www.newsfeeds.com The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including Dedicated Binaries Servers ==-----