Theo Verelst Diary Page

Latest: 1 february 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 1, 2001

I've made the spectrum analyzer graph available on a seperate page, experimental but operative, where one may have a look at the preliminary version of the menu driven signal plot application.

What is it with that wave applet

In fact, it is about the idea of digital signals in the audio or other domain, about the basics of such processing, about laying the foundation or providing insight in the background of digital audio processing, and about the more advanced and not necessarily common ideas in my digital simulations of analog and other types of music synthesizer design.

I plan on making the page elaborate, with signal processing basics, audio basics as in sampling, frequency domain considerations, fundamentals of sound synthesis and the mathematics to go with it, real life examples, high quality solutions to various basic problems, and a range of examples from my software and more experiments.

I'm sure various ideas are very valid in the age of computer music being almost consumer level commodity, many sample based software packages generating all kinds of digital instruments and their reproductions, and formerly advanced options such as time streching and pitch corrections in some of them. There are fundamentals also in these areas that deserve attention, though some material may not be worth quality considerations of almost any kind, others do, and at least for interested persons it is not unimportant to be aware of limitations of all the knobs and whishles, in a machine the same as in software.

Digital filters are not the same as noisy analog ones, and sofware package a is not package b in quality sense. Even adding signals together is ambiguous in the digital domain. I plan on making various points in these areas clear on the 'wave laboratory' pages. With hands on, mathematically based, try for yourself presentation and even research aids.

In the end, I end up with the perfect synthesizer, isn't it.. Maybe I get all the user comments together, and blow the competition away for ever (gmpf). Try that with Yamaha or Kurzweil. Start with the CCRMA (Stanford university) for instance, to have some idea of the level that can be achieved in these areas. I'm certain various principles can be explained for intelligent laymen even, and that that is not bad.

To get to the real point, even my simple, low cost (material wise) enough experiments tought me that I was not mistaking about taking my electrical engineering knowledge serious, thinking about synthesizer design. That there are real issues still very much at stake starting with sampling, going over digital processing such as filtering, and that sound generating wise, a wealth of information and possibilities lies behind decent, accurate and sensible engineering of synth design and (digital) sound path design.

Which obviously needs to be know to make any sense, and commercially speaking it probably makes even more sense, unless I'm affraid my views are not good enough, or soon rendered obsolete, or soon stolen. Neither is the case (much) in my opinion, I'm edified to a level where there is no massive competition, and the still considerable amount there is I don't feel problematic about, and in fact, I think I do have good enough idea about how much there still is to research, which I'm quite equiped for. And its quite fun and interesting to think about and deal with these subjects, I like to read about these things myself. At ccrma for instance, but also at ircam, princeton music dept and others there are various (mainly scientificly oriented) reading sources, which I definately consider even practical.

I'm sure about at least a few handsfull of subjects that need clarification, and that would make clear why my designs and experiments thus far are also worth while. And probably quite some more, of course some just belong in EE uni curriculae.

What's on the page now? The same applet as some diary pages ago, but with a menu on the left, sort of exporer like, where parts can be shown and hidden, with items where I'l put interesting stuff under, that then can be shown in the right page frame, with the menu staying in place, for easy back and and browse around with clicking back and forth to still open menu places.

The main fun to try was to make the applet's form data change by menus, for instance to select another function expression for the waveform, referenced in the menu by a name. For instance 'sawtooth with 8 harmonics', which then automatically pastes the code for 8 sine waves added together with the right ratios in the formula window. The applet can then be controlled by the plot graph and spectrum buttons on the right page.

Finally, I tried to make the whole process automatic, putting in a formula, and pressing the plot graph button, so that the menu starts the rendering automatically as well. This version also follows this automatically by the spectrum analysis of the function, all by one menu (for the 'perfect sawtooth wave' menu). It can easily be imagined that this approach can be used to make many points and graphs clear with good presentation possibility, and the main scientific values is that one my still enter other or adapted formulas in the process, and render them to research what they yield.

Maybe I'll throw in another frame with explanations, or maybe a seperate window which stays on top for the analyser, which basically can plot any graph (the topping I've tried, I'm not sure it's handy). The idea of adding a filter in javascript is appealing, maybe I'll port my C-- semi C / half assembly code to become a function that can be applied to a signal. Or at least make some examples available, that should be doable.

There are javascripts that create xbm images simply by generating content in a script (though not binary). If possible it would be interesting to generate wav files for online sound experiments as well. Prefered would be a java applet or so to loop a little 256 long sample for instance, but I haven't got one. In java itself I don't know if on ecan easily define a audio file, but computation wise it should be possible, and piecing some threads together (better on a row) to do the looping shoulf be possible. Volonteers? Sample form javascript in, maybe a 'save' possibility, and my whole synth redundant? I even found sliders in javascript the work swift ans slick. For the examples I'd like to make clear, it may work in interaction time. For furter synthesis, more horsepower c.q. computation efficient programming languages are needed. And many still need an instrument in the end.

CGI's on tripod

As an example, this PERL code

#!/usr/local/bin/perl
#
# Author name: Theo Verelst
# Creation date: Feb 1, 2001
#
# Description: Testing, file access and such
#
require TripodCGI;
require TripodDate;
require TripodInsert;
require TripodMail;
require TripodPage;
require CGI;

$INSERT=new TripodInsert;
$PAGE=new TripodPage;



          $page_location = 'test1.html';
          $variable_hash{timezone} = $ENV{TZ};
          $variable_hash{ip_address} = $ENV{REMOTE_HOST};
          $variable_hash{browser} = $ENV{HTTP_USER_AGENT};
          $PAGE->sendPage($page_location, \%variable_hash);
          exit; 

#          $template_file = 'log_template.txt';
#          $variable_hash{timezone} = $ENV{TZ};
#          $variable_hash{ip_address} = $ENV{REMOTE_HOST};
#          $variable_hash{browser} = $ENV{HTTP_USER_AGENT};
#          $log_line = $INSERT->fetchInsert($template_file);
#          open (LOG, '>> my_log.txt');
#          print LOG $ENV{REMOTE_HOST};
#          print LOG "\n";
#          close LOG; 
#require CGI;
#print "";
#print "A really simple page.\n\n";

can be called via this link I repeatedly had to try the link today to make it work, but when it returns it reports the browser, your IP address, in a short message, nothing fancy, just to try the principle. I made another script that can write a log file, that works, too. In fact that should be nice, minus that over the link I used it hangs for a long time all to regular, not funny.

The idea is interesting, perl is elaborate enough to do most scripting with, and having file access, though no exec and system or any other cgi language, makes it interesting for most familiar cgi applications, forms, logins, mail sending, order forms, that sort of thing.

I'm thinking about various applets and scripts, and give them some gci functionality. I might put in a history of functions on the plot, and then save that in file for later use. Maybe identify users for their own lab corner, or sell software or something (though there is no secure connection or something jsut like that, just for ordering or so), at least it's interesting to think about the possibilities.

In case there are interested persons, the scripts on the tripod example pages are not that easy to get to work, though all the inf is in there, they require a bit of work. The script as I quoted above (it it comes though html right, otherwise check the page source), works straight away when a test1.html file is supplied which can be copied from my site, after it and the script are put in the http://username.tripod.com/cgi-bin/ directory. Just call the script in the browser, and it should print a few lines on the page.

I've done an update of the script, I'll put the text on later, with a form, you may want to try, it basically repeats what you type in the entry on the form on the page , and logs that in a log file. Check it out.