Theo Verelst Local Diary Page 17
The same holds as for my tripod and
other diary pages: nothing on this page may be copied or changed and
distributed except that the page as a whole may be printed or otherwise
transfered in unchanged form, mentioning the original URL and
global page reference, and that holds for everyone on the globe and
beyond, including so called 'christians' and self-appointed 'Secret
Home (alt) Tripod Home Local Diary list (Secure) Tripod Diary
Sun Feb 29 2004; 14:59:42
The above is standard notice since my family and some who I until a
certain point considered friends were not exactly trustworthy in
with me and what I stand for, if you don't feel addressed, it means in
normal language that people can't feel free to impersonate me or
motherf* others into believing they represent my opinions and my life,
and do so without finding my opinion against them. In public. And
worldwide, I might add. At least some correction.
I felt like writing another diary page after I visited FOSDEM conference in Brussels, and after I did some
programming with Gnu/Open Step Objective-C based Framework and IDE, and
linked an example program with Tcl/Tk.
I put on some more stuff as I went along, and don't forget the daily
(or hourly) fortune:
God is real, unless declared integer.
I did a Tcl/Tk BWise (1 hour) and short string simulator lecture in
Belgium, which was at least fun enough, see the page above for content.
Open software, available for free for everybody, if that isn't a good
production good! At least one can have nowadays a fairly decent enough
unix-like os, X and a window manager most normal computer tools like
openoffice and gnome/kde desktops, and now we have also freely
distributable NeXTStep clones including window manager, objective-C
(gnu) Project Manager, Gorm Interface Designer, and example code.
Below, I'll go into that, I guess it is good example to describe what
works, and at least good for thinking.
Fairly sized conference, I don't know how many people, but more than a
few hundred, atmosphere a bit what one could expect on a open source
conference: programmers or wannabees through profis through hobbiists
something. A scientist here and there, core programmers here and there,
What if microsoft would run that way: free conference, everybody free
to do as they please, lots of public lectures, most about relevant
subjects. Not bad.
Are the great greengrocers of software that dissatisfactory? Why would
one not pay $50 or 50 euros for some package of software? Well, for one
thing, if one doesn't feel free of big brother deciding on how that
works, and how it fails. If one doesn't like to sign non-disclosure
forms before anything. Stuff like that.
Why pay when the free stuffis also open? People still pay for courses,
and I'm sure ertain software would spread just fine if it wasn't for
free. But free is nicer, and open source important. How are you getting
' sobig' of your windows machine? Antu virus, fine, commercial ? What
when things realy go wrong? Any serious warranty? Download the next
security patch? Gmpf.
Suppose microsoft would sell groceries world wide, they would be a
pretty strange bunch. And realy, with so much (ex-unix) linux stuff
around for free, how many researchers, programmers, translators,
designers, salespeople and web maintainers are needed for the next XP?
And how much should that all cost?
Well, when those people must all live, their wages should be paid,
which until last times would be quite serious wages. But as it is?
I just found an interesting
link in the context. Picture the windows guys, tied to the
moloch, knowing their little or big part of mce courses (which buttons
to push?), hoping to (like of course many companies) generate depence
of the customers on their position and knowledge, defending themselves
against major forces present in free software like linux. Well paid
unix courses (I gave them myself 15 years ago...) probably teach you
about some essential things more than much of the ms stuff, so how do
you defend yourself? microsoft is less expensive. ... Really...
So the linux wizards, programmers, Knowledgeable Persons, or even
average installers and maintainers are too well paid or something? Or
linux just ins't as powerfull as ms software-wise. That would not be
about much subject, I guess.
A decade ago, no, a bit longer I guess, the world saw the advent of a
actually new computer system, with enough innovation and thought in it
to at least make it interesting and fun, and it also happened to look
good: the NeXT.
On it, while running a flavour of unix, the well known NeXTSTEP
graphical environment for windows, standard programs, printing, etc.
Anno 2004 (a dutchism, I'm sure), parts of that environment are
available as open source, and you can have it, too...
It seems to run on Linux (like I have tried) on windows (maybe X is
required), on Mac OS-X, and probably on Unix. It isn't perfect, parts
aren't into ß-test even yet, and some major apps like OpenWrite
must be borrowed from linux burels like openstep, but it's at least fun
to see again.
For some time already I had the chance to run the GNUstep desktop
manager, which I like better then the kde and gnome ones, in general,
though they are programmed/installed to do some things better, but that
isn't the same without what I tried now:
manager and other utils like image viewing
managing compilation and source files
Gorm a interactive
It's worth recording what is possible, first check out www.gnustep.org for getting the 4
parts of the gnustep environment, make sure you have all libraries (ffi
on redhat isn't a good idea, try callff (or whatsitsname) instead)
installed, than ./configure and make install the whole bunch (minutes a
piece or so). If you don't have gnustep yet, you might want to get that
one, and install it, or use one of the alternative step style window
I'll describe the little proto application I made, assuming you have
all things up and running enough, make the example 'Convertor' from the
tutorial page which describes the use of project manager and gorm to
make a converter window with three entries and a button, built it, an
run it to see it works. Making the connections is a fun part of the
idea, but a bit tricky to get right, at least it is when you use a
networked X windows connection (where shm extension was missing).
Next, get the examples from one of the gnu links which makes network
library demo of a echo server, which should compile fine without the
manager, and test the result by either some terminal emulator allowing
socket connection or maybe even netscape (telnet://localhost:portnr) or
pcom (as I use), which is a
script I made quite some time ago, which can be instucted to connect to
a certain port, which must be set to the port the echoserver prints on
its standard output when started.
It should give a welcome message when connected, and than echo each
incoming line. Thus far, all this can be downloaded and is existing.
My interest was in the combination of Tcl/Tk and the Objective-C
compiled step interfaces, and a IDE isn't bad either, and I guess I
liked the look and feel of NeXTStep from long ago, so here we go.
GWorkspace file manager showing the 'Convertor and net' project
The Nextstep-like file selector and shelf, with neat but limited icons
in action. This thing is also available as Objective-C class for
inclusion in applications, and it seems nowadays the latest MacIntosh
OS-X aqua and stuff use even the same (basically) gnu compiler and
object library. Lots of nifty icons and styles added, of course...
Double clicking the .pcproj project file starts the project center,
where files can be addited, maintained in a project, built, and
executed, where the makefile is automatically generated.
One of the examples from the GNUstep site is the converter, which can
be made and compiled when you have the important step-stuff running,
see this page.
The converter result in action
It's a bit of a hassle with Gorm to get the connections right,
and the process is far from self-explanatory for a beginner, but it
all work, and in principle at least is worth it.
The other example I'm interested in is the netclasses echo server,
which can also be downloaded via one of the Gnustep links, which should
compile out of the gzipped tar (tar -xzf filename , ./configure , make
install) easily, assuming you've got the right libs available, and
can be tested with pcom by adjusting the port number to what the echo
tool prints at startup.
An interesting link is to combine the gorm and project center based
program with the network part, to make an interactive link between
tcl/tk and gnustep Objective-C programs, which is possible by adding
net files to the project, omiting main, and editing the Convertor main
to include the startup code of the net main.
After some work, and including also the netlib file, the combined
project (make copies by cp -R Oldproc/ Newproj/ when you want, project
file defs are stored relative to main dir) compiles, and can be tested.
The net and UI parts both work, but independently!
To test interaction between the UI and the socket interface to Tcl/Tk
(in my test Pcom), I made the convert: method from the ConvertorManager
classes only instance set a global variable to the ID of the
object (...) to be able to can conver: from the netlib method which
called when socket data is being read.
The result? one can update the GUI under tcl control.
The combined server / converter UI
connected with pcom on top of the Project Center
To make something more real life, it would be better to know more about
the GUI objectsrhan in this example, especially the instance id of the
convertor manager class, which is hidden at startup.
Both gorm and project manager may crash at times, so save
My previous university section
Apart from some of my earlier pages, for instance on tripod, I recently had another
look at what is going on in the electrical engineering department and
section I studied and worked.
From this section
presentation (a new ordering of some old sections centered around
some old persons) a picture
taken from the general internet site. I don't make this up, check for
The content? Well, 15 years ago, the main lines were hot stuff, that's
when I entered then network theory section. As any layman should and
half expert would see straight away: nothing much of relevance or
interest is left. Not for technical or normal university studying.
Delft was known for its fundamental angles (for instance the havierst
mathematical first year foundation, esp. for EE), but it has stranded
politicized (not to mention
fascist) islands-while-great-control-aspirations without the technical
and fundamental foundations.
Guys claiming dsp stuff who don't know a microcontroller from an adder,
let alone a neural network from a memory chip, mathematical semi-talk
without ever going essential or realy making something that anyone
ever be realy interested in, probably because some 'forces' in charge
know that difference, too, and the traffic control is set up to never
make big-Roma lose...
Seriously, a decent, fundamental, nice even, and capable electrical
engineer is supposed to know about fundamental mathematics,
network theory, physics, advanced computer simulation programming,
electromagnetical field theory, electronics
(jeez), and of course touch on various contemporary issues.
Not that I don't assume those topics are taught, but seriously, most of
the presented research stuff (which should precede education) is dead
before you'd start with it, depressing.
My recent Bwise presentation and work for instance includes fairly low
complexity nets for for instance basic memory cells, which is
essential theory, which I think wouldn't even make across the
threshold. Staats-feindische kunst. Yeah, right.
They should verify their EE-appropriateness against a simple, unadvaced
(in that game) look at a contemporary electronics
company, which makes the stuff they drag on theoretically about, like
analog or another, to see what the real ee world also looks like. They
wouldn't make it over THAT threshold, certainly not certain persons
claiming 'professor' positions which suggest a much more elevated field
of interest. Realy.
Lets say we look at http://www.analog.com
just to make sure we take an ordinairy, completely common, worldwide
visible, unsecret, succesfull (...) fairly big, electronics company as
comparison, to have a look at what I'm talking about. What would a
student graduating from 'circuits and system' or whatever name they
nowadays have get from the stuf presented there, and is that ok ?
I'm sure that depending on the non-precooked curriculum choices
wouldn't understand one f* (sorry about the language) of that site,
almost. Let alone of even one, relatively harmless datasheet, lets say
of the fundamental building block of an opamp. Or, even worse, a AD
converter. You know, the stuff which is supposed to make all those
'modern' antenna arrays tick, at some point.
When I was a electronics practicum assistent (asked about, and allowed
in much earlier than officially permitted after I applied), I as a sort
of joke made a (imo) simple AM radio receiver with some simple enough
parts (say no more than a dozen), of course not using chips, which was
fun, but I don't think I could explain to some circuits-and-systems
graduate what that sort of design would be about. Seriously. I don't
think they'd know how to do any signal processing of such real world
Is that because I left and supposedly didn't make it? No. I left
because I started to suspect that at least some of the people were
seriously bad, and didn't want to work with them, and on the other hand
my project was (for me) financially killed for no good reasons (others
got decently refinananced, and they sucked bad, which all my official
stuff worked and was even on schedule). And in fact was was sort of
destined or proposed to become a professor at some point, which was at
least being communicated about, and of course I had (and have)
sufficient content to proof myself badly for that, except a pile of
senseless, unread publications (or peer steals) to satisfy the civil
servant publication counters and desk drawers with, but hey, some
come in as wine salesman.
I don't have the ambition for aforementioned reasons to even much proof
myself there, but I do have ambition enough to be taken seriously as
very solid, theoretically founded, multidisciplinary, practically
capable, seriously leadership capable elctrical engineer, and don't
intent to allow others to take my place as a dead man in there. I
had competition, even though I broke every inch of my own way, and even
can claim to be quite a bit of a theoretical physicist, to mention
another area. I don't give my personal and professional credits away,
and have never conceded to let that be tried in that dreadfull
environment people may need at times to graduate and get references
And luckily, none of these guys (and galls ?) would know a voodoo card
if it hit them in the face.
Egyptian art via IBM
I was looking around the ibm website,
saw a little movie on their fully automated chip facilities and a 1/3
billion sony chip request on cell microprocessors on
silicon-on-insulator technology, and came across ancient egyptian
images in HUGE digital format, which looks good. You'd better have
some bandwidth to download these...
Used without explicit permission...
The above is very downscaled with GIMP .
March 3 2004, 12:25
String simulator on DSP
I am working on my string simulator, and luckily have the chance to try
it out on a modern digital signal processor (DSP), in this case from Analog Devices the BF533 stamp sized
over 600 MHz with double ALU and MAC-like units, 16 bits memory
interface (32 bit intern) and a risc-like instruction set. It's got
programmable clock rate and core voltage, advanced enough interupt and
DMA interfaces and a serial interface and of course timers/pwm units.
This is the board it happens to be on, which has a lot more than just
the DSP and supply, in this case more than enough for profi audio
It has 4 in and 6 out audio connectiona with 24 bit converter and 3
video in and out channels, usb developer connection, and serial and
proprietary connectors, and a sort of bus connector on the back. The
optical connectors I never saw in practice. The size is about a medium
Also it has a number of pushbuttons and LEDs (lights), and it comes
with a developer environemnt, wich is a fairly powerfull, except in
case the target object code is memory size limited to 20kB.
I've tried the examples, and made some more, for instance I turned the
board into a echo/delay unit, and also made it startup by itself in
a way, so that it when given supply voltage in a fraction of a second
would start acting as a audio delay, starting up automatically from
it's 2MB flash memory, making use of the fairly large 32 Megabytes
Of course I played around with the switches and the leds, and I made
monophone sample player which I fed with self generates sine samples (C
libraries are available on the dsp!) and externally made drum sound
Satisfied enough with the IDE and compiler and the audio (which sounds
definately high quality on quite high standard system) as it appeared
(video examples are limited), I thought I'd try the step of porting my string simulator to
the DSP, which basically makes this novel physical model oriented
synthesis method into a machine, possibly even a standalone unit.
The simularor, which is in prototying and research phase on cygwin
(windows) and possibly linux (no sound or midi driver at the moment),
written in C, so it is worth while trying a direct port, except for the
interrupt routine handling, and possible midi (which isn't at this
moment present with the DSP). The DA converter can be driven via an
interrupt routine, which can be supplied in C, but of course in a
different way than the PAlib for the windows version, though easily
The advantage of this approach is that there is just one sample delay
for the 24 bits, up to 6 channel data to arrive at the DA converter, so
when the string simulator works, it can be driven with very small delay.
After trimming certain memory consuming parts down (which can be put in
SDRAM or hard-coded ram positions later), porting the interrupt sound
driver, this is an example of the Integrated Development Interface:
And it compiles without errors, after not much work. Even within space
boundaries, and including mathematical functions in the code.
I didn't include the midi part, and first wanted to make the string
simulation core and initialization work.and I included code for the dsp
I prepared before to gated and triggered mode read the buttons, and
to issue a test sine note at the press of one button.
Finally, after compilation and initialisation of all the code worked,
and the reading back of tables in the devenv proved correct, I linked a
gated button with the simulation code as part of the interrupt routine,
that is when the button is pressed the string update routine gets
activated as part of the DA converter once-per-soundsample update
routine, and the string computation engine is left alone when the
Another button triggers a one time initialisation of a string when
pressed, by calling the string initialization routine once, as part of
the sound interrupt routine.
And the results? Taking a relatively short string, it works !
Pressing the the trigger button while keeping the simulator button down
makes a string sound, and when the board is switched into run mode by
the devenv, 2 strngs sound. When reasonable string lenths are being
used, the current program is to slow, which becomes clear because the
test note becomes llower, because interupts are skipped...
I didn't look into the initialisation code much, I took an formerly
adapted example as frame, so it might be the clock frequency is not
optimal. The clock for the dsp is made by a PLL from an input clock,
and the feedback division of the phase locked loop can be given a
divider which is adjustable tomake the dsp run effectively up to over
600 MHz, at 1200 MACS. The string simulator does take quite some
processing power, on a recent pentium, it takes a few hunderd megaherz
for a single fair length string.
Looking at the mixed C-source/assembly listing, which nicely puts the
corresponding assembly under each C statement, I'd say its pretty sure
that apart from more rigurous optimalisations, a serious factor of
speedup should be possible in array access, much of the string
simulator update sweep routine consists of additions and divide by
two's while the assembly listing showed a lot of statements.
The risc dsp core, I think even with 2 MAC units should be able to do a
lot in a few clock tics.
Basic electronic circuits
For me, this was for when I was 12, and very interested in what makes
up all kinds of audio and other equipment. I made various audio signal
mixers at the time, the better one survived way into the CD player
and was always interested how electronical circuits were designed and
Assuming one knows about battery/light circuits, and Ohms law, an
important circuit, as electrical engineering students get presented in
all kinds of forms, too, is a basic amplification circuit. Not
immedeately suitable as audio power amplifier, but just as signal
amplifier for line level signals, like from a CD player, maybe a
microphone or guitar, a radio, a tape deck, etc.
Most mixer circuits damp the signals they mix together, so an active
mixer is often called for, which can be made in various ways, as I
experimented with in lets say '78. I had this philips EE2003
kit which had a way to put electronical circuits together with springs
on a board, and supplied a lot of example circuit diagrams. Everybody
with an electronics hobby should know the main categories: measument
circuits, oscilators, amplifiers, filter, multivibrators, radios, etc.
A basic medium impedance normal audio line signal level amplifier
circuit in electronics is as follows:
Basic voltage amplifier circuit
The transistor, T1, in normal approximation multiplies the current
which runs over the base/emittor (left --> right below) by a factor
of ß which is in the range of 30 ... 1000 usually to run from
collector to emittor (top right, botton right). Furthermore, under most
realistic rest currents, the currents running through the transistors
emitter when no signal is present, the voltage difference between
emittor and base is about 0.6 ... 0.7 Volts. That is sufficient
information to compute as realistic voltage amplifier circuit part
values when for instance the rest current is supposed to be 5 milli
The signal which comes in is decoupled through a capacitor, which
basically filters out the DC voltage difference between the input
(normally no DC offset) and the base of the transistor, which is given
by the voltage divider formed by R1 and R2 and the rest current through
the base of the transistor. The signal will change the voltage a the
base slightly, which will result in a different voltage over R4
(assuming the base emittor voltage drop remains more or less constant),
and therefore in a different emittor current. The current through
emittor and collector are almost the same, so the changed current also
changes the voltage over the collector resistor, R3.
When we take the ratio of R3/R4 larger than one, this effect will cause
voltage amplification, with an accuracy depending on the transistors
current amplication factor ß, which takes part in the inherent
feedback of the circuit.
The input rest voltage current divider is made with impedance in mind,
we want as high as possible impedance of the input circuit to make it
not load the input signal, while still giving a reliable, part
insensitive voltage, which follows from the desired voltage at the
emittor + 0.7 volt. The desired voltage at the collector is about
halfway the emittor and the supply voltage V1, so that the output
voltage has maximum swing.
The capacitors must be chosen to make sure the lowest frequency (20 Hz
for audio) is not yet damped, while the switch on or connect transient
must damp away quickly enough.