Theo Verelst Diary Page

Latest: Februari 17 2001

I've decided after good example to write some diary pages with toughts and events.

Oh, in case anybody fails to understand, I'd like to remind them that these pages are copyrighted, and that everything found here may not be redistributed in any other way then over this direct link without my prior consent. That includes family, christianity, and other cheats. The simple reason is that it may well be that some people have been ill informed because they've spread illegal 'copies' of my materials even with modifications. Apart from my moral judgement, that is illegal, and will be treated as such by me. Make as many references to these pages as you like, make hardcopies, but only of the whole page, including the html-references, and without changing a iota or tittel...

And if not? I won't hesitate to use legal means to correct wrong that may be done otherwise. And I am serious. I usually am. I'm not sure I could get 'attempt to grave emotional assault' out of it, but infrigement on copyright rules is serious enough. And Jesus called upon us to respect the authorities of state, so christians would of course never do such a thing. Lying, imagine that.

Previous Diary Entries

February 17, 2001

I didn't yet test the latest javascript generated wav sound files, except with my own synth, though I think they should be fine enough now, time for some work.

Lots of thought are waiting to be written down, not all finished or formed enough, not all suitable for public consumption, not all currently made available by me for various reasons.

Samples and such

The wave laboratory page, which is still in builtup phase, and may be in for a 3d menu level since the list is getting to long, has been experimented with, as I mentioned in the last diary, I want it to be possible to create wav sound files for audio feedback on the experiments. Ideally, the expression under the wave analysis applet on the page should together with filter and some additional settings be made into a sound, preferably on the fly to make experiments not just graphic, but also an audio experience.

That being the target, I've covered most grounds needed to make possible on not too slow machines that actual quality sounds can indeed be generated in a standard form, the .wav file, but there is one major problem: there seems only one way to save data from a javascript page into a file on the computer the browser runs on, and even that requires the presence of liveX or something like it.

That would be ok enough: press 'grant' permission on a certificate window to make it possible to do the writing (which of course is high risc, but then again, so are many programs I downloaded, and never had a real problem with), and the whole show would work. Unfortunately, that would require me to sign the page, which requires making archives and compile some files, which is hard at the moment, and probably cost money, which is impossible at the moment, and some time to get the approval to be refered to by certificates, which is sort of having my pages and their site listed with a trustworthy party, which asks a fee for having me described as delivering 'safe' pages with their signature approval.

A bit of a hassle, not completely failsafe, though when the internet channels are not messed with, it should be good enough for doing e-commerce with. I found various materials about installing the signing scripts (pearl, and for the apache server, where I experimented with on Linux), so it normally should be doable, and than the signature I'd put on the page which needs permission to access a users' disc would by netscape (I guess explorer pretty much the same) be compared against the signature and location known with the chertificate organisation. When the page is considered genuine and of a known source, the certificate would be shown to the user, which he or she can than store, and the browser subsequently lets the page in and lets it save when that permission is indeed granted in the accompanying certificate.

In javascript or Java, a 'ask-for-permission' function is called at some point, to inquire wether 'UniversalFileAccess' is granted, though some less high risc limited (game) access may also be ok, and if the hassle with the certificate and the signature in the page falls through, writing would be possible. After one time, the user wouldn't know the difference, and could make his desired wavs.

Alas, the certificate thing is not a real option at the moment, and I hoped that in spite of the absence of page signing, or maybe with some general autograph, the permission question could still be brought up with the browsing person, which would seem reasanoble: 'page ask permission to write file so-and-so, confirm ?', click yes and take the risc, and things would work. Unfortunately, all that happens is that a hidden (but trappable, little dialog box or so) javscript error is generated, with no furter options.

Bummer. But, one way does, with me thus far, work, and that is when the page itself is read from a local disc. I put a page on disc, make it request 'UniversalFileAccess', without any furter precautions, and the browser faithfully comes up with a window inquiring if I might grant permission for this high risc operation. Running my own page, of course I grant it, and than I wrote the wav file mentioned some pages back which is funnily enough realy generated completely in javascript in the browser.

That made me think of a solution: suppose I make a frame on a page, that the user first stores on disc, simply by 'save frame', that is than read into the browser again, and then saves the wav file? That in itself works, but then it is not part of the applet page, and would need the information on what type of sound it should render, lets say the parameters.

So I'm trying what will happen if I prepare a tiny little frame on the sound applet page, which I especially generate for the purpose of saving the sound. That page I can generate to contain the information needed, I tried generating javascript functions in a javascript based page, which works as long as the

script language='javascript'
statements are broken up, such as
 string=scri+pt language='javascript'\;
which works fine (I left out the double quotes and the sm/gt). So in principle the sound parameters can be coded in a run-time generated page. Also, it is possible to reload a frame, and to redirect that to reload the file the user saved, and that at least should make things full circle: the menus on the left can generate an expression for the wave analyser applet, which is used to generate a sound, the parametes are saved in a frame that can be saved, reloaded, and used to save the sample data in the form of a wav file. One extra step would be needed, to save the frame (and reload it, though that could be done automatically before saving the sound file).

Bit tricky, but at least the whole thing may work, and at least make a good save work. The second save would maybe take the same effort of first saving a page and than a file, that might be preventable, but still, having sound experiments also in storable and audible form is worth some effort. And at least there is some serious javascript being done, which is never bad for general web application knowledge. Not a model language, but it is of use, and does work enough.

The ideal would be to automatically bring up realplayer or netscape audio facilities every time a menu is clicked, but at this moment, that seems hard. A cgi would also do the (inefficient) trick, but tripod's cgi's are not reliable enough.

What about the diary idea

In fact it is not completely appropriate for various purposes, my various progress and let's say teaching sections could be on their own with a good index. Often it would not be needed to know or use their historic order, and at least is would be handy to organize them per subject.

As a reading idea, it is not likely that many people (though there are a noticable number of hits throughout the week in spite of copying and proxy servers) always read the whole page and have interest for all subjects, as some are at least specialistic and of non common considerations. That's why I tried to stick with section headers consequently the last time.

In some ways for me surprisingly, there is the at least likelyness that certain topics and subjects I covered to touched upon are relevant to be written about, such as various subjects in the area of what I observe in 'life' and probably religion, though the points that I would expect are relevant are at least also being observed.

That there is an amazing amount of craziness or simply evil around my life has become more than clear enough to me the last years, and that some in spite of their probable lets say conversion from various forms of great evil are not willing to acknowledge even simple truths enough also became clear to me, which I find an insult at least to many victims, but some things I just don't understand.

Because I don't feel at a place to judge all things I would need informed opinions about or more freedom from, I'll on purpose make general enough ideas clear on these pages, hoping at least that will do good. I'm sure some at least then have a possibility to read what I think, and what I think about certain circumstances, and for some maybe what they can count on with me, and why it is hard to make work what I would find desirable.

I'm not in the habit of mixing up the personal with the general, since I generally think that is at least indicative of not discerning such concept, so I make it explicit when I do, in general I think I'm clear enough, there are personal circumstances (which in various ways I don't like and want to change, in short making moderately significant money would solve the primary concern), and there are general observations I find worth making, like about society, music, and such.

I think I have various reasons to take it that for probably not ordinary reasons, I should not see myself as irrelevant in such issues and others, without having sought such a place myself much, and without feeling very much personal need to do so.

The indirect and almost direct and some direct responses I get make clear that certain thoughts have a wide spread, and that I may have quite some effect in the thoughts of more than I tought. Not that I search that necessarily, and it is not always pleasant that a direct link somehow isn't there in many cases, making corrections and reliable feedback and information possible.

If I assume, which indeed I do, that in spite of the risc of realy being called manay psychosocial desease names, being serious christian includes that the God I think I want to at least honour and server has a plan and purpose for my life, than it may well be that my capacities are indeed intended for not so limited or mediocre purposes I would have had in lets say my end teens, and that in call it service to Him I should take that as important.

I don't like the idea that christianity as a whole has in the past not even seen chance to deal with that subjects seriously, and that also in this time there are few that I consider serious and at least good enough in that area.

I'm sure that there are deals society here and elsewhere are built on, that are not even brought up for discussion, and that such babylon vows of silence are very damaging and undermining, unchristion completely in nature and effect, and show that the spiritual and system involved are evil, incapable of ruling justly and openly, and generally descpicable and worhty of public rejection.

The idea that a buch of child abusers could rule gouvernment, and that the underground nazis try to run their victims lives and are to keep them under control of the great mamma whore is so repulsive that it can make me not so much upset as thinking about very effective ways to stop such a scheme, rigorously, thouroughly, and for ever if possible around anywhere where not hell is to rule.

I'm sure that in call it biblical times similar problems existed, those babies in israel were not killed in 'normal life' and the romans needed their army probably not for nothing.

I think at least it is worth while only aiming for making things that may actually work good enough at least, especially when they are made into something that gets quite some actual effect such as laws, government, and doctrines that are taken by actual christians, liarish ones, and many that seem to want to live according to some rules that are more than needed for normal enough lives.

The 'thou shalt not have any other gods before me' without question is not so much for Gods ease of mind as that it is always of considerable damnation, and making images that are bowed to as god is probably in the same damnation game. I'm sure many have such ideas and worse, and it is worth considerable effort to keep such damnable insanity away from normal, indeed more or less civilized life and the official and actual instances in the world that are at least not built on some insane, demonic or generally evil teaching of systems.

System theory, I remembers some I now hold for evil were quite unhealthily hang up on the idea, and I guess it all goes with the desire to hide and compensate for ones' own badness and sin, the desire for power, also to be seen as quite something instead of nothing else but a deamon eaten miserable child abuser with no right to live. Or someone making such things possible or agreeing with them or their logic.

A system theory that is designed to mix up sins so we don't need to deal with it ourselves anymore, and preaches that we ourselves must first become the biggest antichrist there will ever be, and rule the world to make sure that stays that way will not work except to make the preacher or implicit holder of it ridiculous and damn the environment. And if such persons can't hold themselves together except when their deamons or fellow delusion holders keep making clear that their system realy is saving the world and keeping things the way it has always been and should be, I don't want to let them continue. And at least there is considerable historic and logical reason to think so, and not to assume that the nazis in the end will rule, the catholics cannot be defeated, the rothshields will biy everyone or every place in the world belongs to evil anyway.

Factually all untrue.

What about sinfull man and their presence in the world, and the idea that apearently God did not make all evil end at al? I guess He plays his own game if you like with the world, or in my terminology, he deals with that problem his own way, which I can maybe observe or understand, maybe not. Thus far, some things in historic and observable sense are clear enough, and it does seem that He gives certain people their own lies and also their damnation, because He choses so. Not nice.

How does that make me respond? To a country that can't even set capable and not evil persons on normal enough place, let alone make good use of them? I don't know, since I don't know all the works going on that are behind my back and also the ones He may put me in. That's assuming He's for real, otherwise I'll probably at some point decide to draw another plan, which is quite possible. What a miserable idea that people prefer childabusers to rule them because their deamons tell them that as long as their utterly unchristian demonic or simply evil doctrine that every child must be sacrificed to the mococh the mammon, or whatever, is continued, or else.

Or else what, exactly? When some at least normal enough people would rule a country without such shit, the deil in person would come and devaluate the guilder forever? Or the satanist will actually do what they already do anyhow? Am I overestimating people's intelligence in these matters, or is there realy such a difference between even ordinary sanity and world system, and such a delusion that even the supposedly intelligent ones don't escape the intellectual damnation, just like in the 30's or so?

I don't refer to such times for nothing. Many I observe, and many things I read and see don't seem to have much drive to be in touch with normal enough reality, maybe not without reason, but some may be at least awakened by the idea that if they continue a system of buying nothing good anyhow from rligeous cheats, or wanting a system that puts maybe the worst kind of unhuman loosers on their head because the boogieman might come and get them, that real kinds of evil that do a lot worse then making them think certain ways and waste their possibilities for at least some normal life away: they might be in for forms of oppression that come roling over their borders for real, with granates that kill, and that make them work for the deamonic system they seem to want so much unvolontarily.

To much intelligence required, maybe, I don't know. In short: the nazi system did not bring about any salvation. It was incapable of producing world leadership. It for real was at stake only half a century ago (as your grandparents) that they would rule also this country in horrible ways and to stay. That is not delusion, that is for real. In europe, war situations still exist. In certain place, actual, visible nazi's get almost enough votes to take place in gouvernment without being a negligible minority, who makes that happen?

Call it a way of self prefervence and self interest that I am against dealing with life the way I observe all to much, where probably the most stupid and insane doctrines underlie peoples' actions. As long as the spiritual working of our own hands stays the only real god in our life. Then we all together at least determine every personal damnation of everyone. My god that is something. Incredible.

You know what a few ritual jew slaughterings may make your god real happy, wanna try that, too? Oh, that only works with children. Anything more to be said against such kinds? Not realy, by me, it is just surprising how little they understand they could realy achieve in evil. I guess their deamonic doctrines are in the way. The betrayal I observe seems to be common and in their opinion needed might realy work to their riches, or spiritual ruling if they'd do it right, now all I see is miserable nobodies with doctrine every foreigner probably also plays with. What a waste.

The general insult to normal (not extraordinary) intelligence I think is good enough an angle for some their logically at least should mean enough in society. That if they try to implement their stealing of faces or persons, and make their abusive mammmies and pappies realy happy by betraying everything for the name of the (italian voice on) 'family', they themselves may in the end find everything worth while. Which could be the idea from the start, but than why bother living, just die. Which seems to be the idea, but than why not save the world from the kind.

It seems that changing a persons thinking about lets say what is important in lif eis not easy, and normally not so needed, but seriously, in the 30's this hitler character did use all this stupidity and got away with it enough to bring about a destruction still remembered, and I don't think liked by everyone.

'But my guiding deamon just told me you're dangerous and it is better to do this and that anyway', sure. Sweet dreams. And what is that deamon or person worth, do you also listen when it tells you to betray your life and make at least daringly real by for real jumping of the bridge, and not just project your greed for power and riches, and especially salvation of the things that realy do rule your life in such a system? For every reasonably intelligent person: of course.

And it should continue that this real question may not be asked of answered by such a victim of the system they must stay in themselves. And of course it works for some: lets say your family is rich, tells you to stay with their spirits (I sometimes feel like writing about f* africa 4 centuries ago), and in the end you with them wil rule the world. My gawd, no one would think of such a brilliant plan. Incredible. And so worth it, because than you help your own blackmailers to rule even more and better in the end over your head. But at least you're part of them, and of course can treat children the same. Death punishment.

It is known jewish law. And of course, when you're a Rothshield, ou do get incredible money to play with, I guess, so Jesus words about not being worthy of his life and his himself when you love your family more do apply.

That is where I'd like to start, instead of all the insanity some seem to hold for living. And end with for some, fine. And get messed with by others, also fine enough, I guess when the gospel is for real, and the one having brought it into the world to, it is worth working for his sake.

But not stupidity and brain death and moslim delusion 'as long a swe stay with our lies at least it is better and my dick is greater than yours anyway and otherwise my fathers' grandfathers' is' attitude intelligent people should make you rejected for when they raised you anywhere after the 60's that I can program computers to do more fun and interesting, if that would be of any interest. Or power, for that matter. I have a pretty good idea of the actual power of some that I think for certain would be for ever over the head of such pityfull instances of the human race. The ones that are rich and cunning enough to actaully achieve some things, lets say like the little nazi head, the papals, the liarish christians, and some I don't like calling names unless I have effective proof. I've never had much problems taking a social stand with enough success to make myself sustained and reasonably leading at least, when I felt such desire. I'm sure I could teach em tricks.

Maybe its part of a game I for such reasons on purpose have been put in. Maybe god plays the same game on them.

I'm sure there are things relevant in this world that many will take for absolutely the best thing to follow, and that there are many that will play the treasuresness game, the 'having' (like slaves, that is realy an old and boring concept) game, the abuse and of course the sacrifice game with all they think they are worth.

And I'm sure the world has quite some of them, and that they don't mean much themselves, just like I think I couldn't even make a computer program lie convincingly about the alledged manhood and greatness of a childabuser or wrapist. Or the greatness of being jeleous of god, assuming he is somewhere up there.

I protest against the idea that such nobodies are given the idea that I agree that the world is not worse of with them, or that it doesn't cost mankind to endure such kinds to mean something, lets say along the lines of being little burocrat or general soldier planning the picking up of jews in hiding during the war. Quite advantageous it is, I guess sucking up with the head nazi's, until they don't need you anymore..

I considered doing a little writing piece with an parabel using the idea of Anne Frank, the jewish girl in a dutch well know book, that after 4 years of hiding is taken to a concentration camp and killed, leaving her lively and interesting diary.

I don't think it is distastefull, because it serves a purpose that can be taken has important enough to use the idea, but I need to think about how to best make clear what attitudes the kind like my mother would have in such cases. I want it to be efective, to clearly communicate what my quite well formed thoughts about the kind are. It would be a denial, betrayal, and miserable person game that at least may make clear to some why I don't like her or want my family to make some lousy deal with any of their or her kind in it that I want to approve of.

The worst being that I think the insult to god implicit in it is that it does stupidly glorify a babylon that would make em all seem to love natural father of mans degenerated state, the satan, mentioned as such in scripture. And that is real stupid. I guess it is a form of damnation that god did intend, and makes him at least the better one in all respects, I just don't like it, there is no worth while challenge in it.

For the attentive, the point being that I'm not affraid of dealing with the real issues on the basis of making people to knowledgeable or to much into wrong doctrines. The real knowledge they don't seem to want, and incredibly stupid and damning doctrines seem to abound. And I don't agree that is always so or better, when I live in the world I'l part of damning what I want damned, and living in what I consider worth while, prefered over damning the whole thing or taking part in a system that in the end damns me, too. Some are stupid enough to want the latter, let's let them do that to themselves, and not base a world system specification on it.

Writing all the time

During the weekend my 286 disc got more filled by the generous amount of 64k of text file, because I took serious my mission of soft of wanting to promote sensible synthesis, bla uuhm, bla, marketing, euh, whatever, sort of. Anyhow, I though it would look good to show of my synthesizer knowledge under the cloak of science, which I'm good at.

Seriously, I thought it would be a good idea to follow up the idea of the (at least visited) wave laboratory page, and make clear how those ideas underlie synthesizers, until the level of explaining the basic ways of making synthesers practical instruments for real life use.

I know this stuff for a major part already for decades, so it is not necessarily hip in fashion sense, but it is completely relevant and valid, and serves as the basis for my plans to indeed make a synthesizer, and to have a new and truly enough innovative synth appreciated, at least the known ones should be known.

And I do include information about contemporary hip and up to data issues, too. The whole thing would even work as a book, I'd have read it, it is just a pity that books aren't interactive. They do sell, which would be an advantage for me. Currently, I'll still aim for making money not necessarily with books, and do my share in making information about good enough subjects available in general and public ways. Good for various things, goodwill, proof of capabilities, worth while contacts, presentation, raise of interest and possible channels to do make some selling work.

The page is set up to cover all main subject for understanding synthesizers for real, and I plan on making use of the wave laboratory also with links and experiment data, and also putting on interactive content on this page, but that takes me some time. I think I'll start with some samples, and maybe do the interactive sample generator, which is a major application, and of considerable teaching use, and I want to spent some energy on getting the physics mathematics hidden away in my brain to work for synthesis.

For that it would be good to have the physical modeling string simulator working (someone got a spare w9x machine, or linux number cruncher ?), though not necessarily to get the theory stuff in gear.

At least that makes my activities worth while, even at levels where I aimed for some time ago, now the financing..

To maybe prepare the attention in the field I'd like to do research at as high a level as it can get, lets look at the example program for physical modeling I make some time ago, the actual program source for the pm example wav files on the wave laboratory page. I tried them on my sampler btw, which was fun, they are good samples. It seems that a lower q, tuned up version of a simulation I think I qualified as a tom sound (at 44.1 kHz straight) when used in my sampler can also be a quite convincing hammond organ sound, which makes one wonder wether more than a few orders of poles and zeros or equivalent non-lin counterparts are indeed present in a many coil and tube and filtering circuit hammond machine.

The strummed chord is nice, but to long for my poor Z80, I only get a few attacks without doing major additional programming, which do sound good, also when detuned. Here we go.

Explaining the string simulator program

Maybe valid as an example of profi enough scientific programming, and for various other purposes, lets see what the needed code is to make some string like and other samples form nothing else but quite straighforward mathematics.

The idea of the string is explained on other pages, lets say a string (of a guitar for instance) is cut into virtual slices, lets say a hundred, which all follow the newtonian equations of motion, that is the displacement is the integral of the velocity, and the velocitys' derivative is the accelation, which is taken to be effectuated by the neighbouring string parts pulling a segment up or down, assuming the string is elastic.

I basically then use piecewise integration, in turn for every string segment, to update the string excursion at every point. By taking little update intervals, the string moves only a little per integration time, and a zero order integration rule suffices. Again assuming small update intervals, the string segments are updated on a row in a sweep.

Ever time the whole string has been updated using the newtonian idea, and a weight per section with appealing numerical computations as a result, an output sound sample can be generated, taken from a point on the string where the virtual pickup element is placed. This idea is repeated until all samples needed for a certain simulation time are computed, which are written to a file, and given a .wav header.

The simulation main loop is:

int n[], tn;
   int t;
   int r;
   for (t=0; t<n; t++) {
      /* propagate(n); */
      if (r++ > 10) {          /* Try socket 1 in 10 times */

Where tn is the total number of samples generated, propagate_fixedend() is the actual string update function, sockproc() is a routine for a user interface, which can follow the motions of the string and display them graphically (not needed here), and outputbin() is the function to write a next sample at the end of a wav file.

This code is literally taken from the program, not simplified, though argument checking and some library routines I omit here, since this is not a programming course.

The actual update routine has a main loop as follows (see the compressed file '' on the wave laboratory page:

propagate_fixend(n)              /* Compute new velocity and           */
int n[];                         /* displacements once for all nodes.  */
{                                /* (more optimization possible here)  */
   register int i, tt;
  for (s=0; s<nstrings; s++) {
  if (uc>s*4*400) {
   for (i=1; i<n[s]-1; i++) {
      /* v[i] += (u1 * (e[i-1]+e[i+1]-2*e[i]) )/PREMUL; */
      v[s][i] += e[s][i-1];
      v[s][i] += e[s][i+1];
      v[s][i] -= e[s][i];
      v[s][i] -= e[s][i];
   for (i=1; i<n[s]-1; i++) {
      /* e[i] += (u2 * v[i] ) / PREMUL; */
      e[s][i] += v[s][i];


The dots indicate the rest of function, shown below. There is a loop over al strings, for instance nstrings=6, and a conditional loop over all points of the string, minus the first (0) and the last (n[s]-1). The condition is to make higher strings (with higher s index) active only after a number of output samples have been generated, to get the strumming effect, then the inner loop runs over all segments on a row for string s, updating first the velocity values (v[s][i]) and after they've all been updated, the excursion values (e[s][i] indexed also with string number and element number).

This would make the string even and constant, except for the fixed end points, but we'd like to make the string a bit more stiff at the end points, and even intruduce a non-linearity further on, the first of which is done in the next code segment:


      e[s][1] *= (89-0);         /* more damping for higher string numbers */
      e[s][1] /= 100;
      e[s][n[s]-2] *= (89-0);
      e[s][n[s]-2] /= 100;
      e[s][2] *= (93);
      e[s][2] /= 100;
      e[s][n[s]-3] *= 94;
      e[s][n[s]-3] /= 100;
      e[s][3] *= (97);
      e[s][3] /= 100;
      e[s][n[s]-4] *= 97;
      e[s][n[s]-4] /= 100;
      e[s][4] *= (99);
      e[s][4] /= 100;
      e[s][n[s]-5] *= 99;
      e[s][n[s]-5] /= 100;


The use of first multiplying an array element with an integer like 99, and than deviding it by an integer 100, and writing the results back in the array is that effectively a multiplication with a rational number with integer fractions is achieved. Without elaborating, this makes use of the number of bits available in the pentium integer operations and the a array storage space effectively. Integers are faster to do computations with, and when no more than lets say 7 bits extra for accuratre intermedeate results are needed such as here, a 4 byte integer has bits enough to spare, so no type cast and back conversion is needed, that is all data in the algorithm is of integer format.

The idea is that the end sections of the string gradually have a media change, making them more stiff or heavy, which is a computation trick that in practice works, and doesn't upset the integral evaluation with accumlating fractions or discontinuities that make for untolerable quantisation noise either in directional or time sense.

First the left and the right side of the strings' utmost segment minus the fixed extreme are damped, or in fact reduced in amplitude the most, by a factor of 0.89. Next, the second point from both ends is pushed in by a factor of .093, etc. A gradual change of string responsiveness, or another gauge for the energy, without changing the coupling constants, there are various ways of looking at this approximation.

Note that though this may seem arbitrary but nice, experimentation has been the reason for leaving these constants roughly the way I tried them, and that the method in practice keeps samples made out of strings with 100 or so segments, which in principle is a second order filter, usually at CD quality, sound wise. The algorithm is sensitive to media changes of this kind, which can be understood, since the waves travel through the string back and forth many times, and for each of the 44100 update sweeps for a second output sample, the factors contribute to the wave change they are supposed to cause, and to the inherent sampling noise.

The next code segment shows how a non-linearity is introduced in the wave guides' amplifier feedback loop (yes yes, this is not stopped before it gets non-trivial and resonating):


  tt = 0;
  for (s=0; s<nstrings; s++) {
   if (uc>s*400) {
      tt += (int) ( 2* PREMUL * atan(
            ((double) e[s][3] + e[s][4] + e[s][5]) / (double) (PREMUL * 40000)


Near the left end point of every string, a signal is taken from the string, assuming the cam is sensitive to the excursion for picking up the sound, and that signal is passed through a non-linear operation to imitate the gradual clipping in a guitar amplifier. The arctangent as know has a range of minus to plus pi/2, a derivative of 1 near the origin, and an infinite domain. So it offers a way to smoothly map any domain to a limited range, while not changing the signal much around the origin, and gradually damping for larger amplitudes. It may not be the best function in this context, maybe a hyperbolic or simple quadric or 1/x would be more natural, but this is currently in the program.

The signal is first reduced to a floating point number that with fill headroom use reaches a small number by undoing the fixed point like premultiplication, passed through the arctangent non-linear function, and scaled back to appropriate volume.

To make the amplifier simulation less sensitive to sudden signal changes, a 3 wide averaging (high cut) filter is used. The result is stored in variable tt, the ouput signal of the amplifier.

Next we couple that sound back to the string, at the other end, for separation purposes (it could be where the head is, resonating coupled with the body) with a direction wise smooth coupling filter with a bell like form.


  tt *= 2;
  tt /= 6;

  for (s=0; s<nstrings; s++) {
   if (uc>s*400) {
      e [s][n[s]-3]  +=  10 * tt;
      e [s][n[s]-4]  +=  20 * tt;
      e [s][n[s]-5]  += 40 * tt;
      e [s][n[s]-6] += 80 * tt;
      e [s][n[s]-7] += 40 * tt;
      e [s][n[s]-8] +=  20 * tt;
      e [s][n[s]-9] +=  10 * tt;

Finally, the sample counter (uc) is incremented and the function returns, waiting for the next update.

It is instructive to look at the control possibilities and user interface hook for the software, later.

The main question is: does this work? Yes, the samples on the lab page and some other pages on my sites are made with exactly this or quite similar code. Some versions of the program have intrinsic non-linearities in the string (which is soon noisy), some have different feedback characteristics, and the initial excursion of the string is done in many (mainly mathematical function) ways, which too I'll decribe later.