Theo Verelst Diary Page

Latest: Februari 15 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 15, 2001

How was that, the computer idea simulator? Not finished, mainly, though quite fine. Various news.

Small device trouble

I got my AD converter sample, and some others yesterday. Not that that beats a serious temp job offer, but 14 bit ad conversion up to 65 Mega sample per second, that's almost like turbo charging a not far from CD quality converter (like on a soundcard) by a factor of a thousand. That is something else.

The but is simple: this thingy's got wires on the side of a little black 1 cm or so square that are one fortieth inch apart. That is every 0.65mm a wire. Not that manufacturers mind, those robots will put it right in place, and it would be a killer ad to fit a gameboy with, so that is nice. And the shorter leads the better, so that too is not bad, designwise, but how the hell was I going to connect this thing up to my microcomputer sys, even if it were only to start with lousy 8 bit 40 kHz sampling or so? (the 8 bit saves wires and circuitry, and is fun enough, the da conv. of 8 bit is not too limiting, either, and come to think of it, considering most instruments don't do polyphony driven or other compression as standard, having 64 voices on a midi instrument makes the effective part of the dynamic range estimated as 2^16 / 64 = 2^ (16-6) is the equivalent of about 10 bits. I do nine. Unless they've got more or better DA converters, of course.

Anyhow, I took a night to think subconsciously, I guess, it's not my main thinking, but still, a device like that (AD6644, check it out on their web site) is worth actually applying, using my dma circuit, this thing can do osciloscope jobs up to objectively interesting ranges, considering that the bandwidth of the input circuit is higher than its sample rate, and that at least a significant portion of the 14 bits are operative up to 40 or 65 Megaherz sampling rate, the signal from this device is good for a nice basis of a sampling osciloscope, which would allow for pretty accurate spectrum analysis in that range, too (there is as I remember pretty fast, track and hold facility in the first stage of the three stage converter). Realy, putting this in an enclosure, and getting it to work up to full spec would normally even make me want to buy it enough.

Anyhow, this morning early I woke up and thought about bending a few pin wires, which may be a valid, though still watchmakers' method to get some manegable wires attached to the device, that I can connect to other circuits. Every other pin hope its doesn't break of when it is bent to point up, and the others stay down, followed by paperclip point soldering of the little pins per up and down row (7 on each sie of the square) to the prepared ends of a bandcable (1/20 inch pitch), one coming from above the chip, the other from below, making it a sort of free suspended little box.

I'l even consider doing the groundplate thing right by a piece of metal the right size to cover one side of the square as a grounding plate, and than it shouldn't be impossible to get it going.

I have also (with a bit bigger but still very small wires) a differential driver up to the job, and a preamp opamp up to at least the bandwidth, noise, and phase characteristics job, that when connected right, at a few cm distance on a wonderfull multilayer printed circuit board, should make for a nice little machine, but even with my planned method be up to making things tick more than fast and good enough to be quite of interest, and capable of very detailed or highly multiplexed audio analysis and capturing, doubling as measurement device. Its a pity that the differential amplifier has only 100kHz bandwidth, which makes it only suitable as relatively low frequency current measurement unit. With some software, the whole thing can be a quite good measument kit on top of the fun of sampling some signals myself.

Being not unprepared, I learned a lot about how they tackle certain problems from the datasheets, including clock jitter, disturbance prevention, and high speed analog and digital design considerations. I won't elaborate now, but quite some things are at least of interest to me. I must look up what LCX is instead of HC (as in 74LCX...). Some edge triggered buffers appear in the evaluation board for the device like the one I use in my mc system with such coding.

I'll see what I can do.

I got datasheets now from a device that can do switching and backplane driving for signals up to 1.5 Giga bit per second, with a I think 20x20 or so matrix. That means a 3 gigabytes of more per second switching capacity on a little chip, good enough for routing signals in a system, that's not lame. Not that I need that now, but for telecom systems, and other systems with high inter-subsystem communication need, its interesting that that is possible with obtainable (probably) technology.


What about them? Those little files can be used to carry sample data in a portable and practical enough way. I started using them some years ago for my physical modeling prototype software, and some other sample generator programs, and the standard at least has been seen lately in top samplers and of course various software to exchange sample data.

Basically, a wav file has a little header which tells the reader what type of sample data and how much it has in the rest of the file. For instance the number of bits the samples are made of (usually 8 or 16, sometimes 12, maybe 6, possibly 18 or 20, though I never foud wavs with that rate), the number of channels (1 for mono, 2 for stereo, anyone create any quadro wavs?), and finally the number of samples in the whole sample. The word means one value, or a whole set of values on a row in this language.

In short, the data inthe sample is about as straight as it gets, bytes on a row for 8 bit mono samples, after the header, which makes it reasonable enough a format, simple enough, it grows when the sample gets longer, and no complicated decompression is needed to obtain the sound data from it. So it is suitable for a few second samples of instruments, that's fine, not to put a whole album in, thats unpractical, unless you like to swap harddisks.

I found out that my wav routines in various audio generator programs such as the physical modeling simulator (pms) and sample processing software (such as used by the drum track generator) are not completely correct, maybe depending on the compiler I used or the cygwin ddl version. It seems to write certain fields that are 4 byte fields incorrect, by having randon data in some higher bytes. Some packages (like the not irrelevant 'Wavelab' and the standard windows media player in various versions) have no problem with this, but it does look like some samples have errors in this way.

You may have guessed it, I did some homework on the wav file idea for javascript, to be able to create actual samples from the wavelab page itself, which is major feat when done. It makes it possible to on the client side (which makes it bandwidth effective), straight from a web page create sample wavs that make the experiment results audible.

In fact, the results can easily be good enough to be compared with professional or hobby samples around from many sources, sample generator software, CD's etc. I made some on my own system that when applied right would have attracted my attention enough. And 16 bit 44.1 kHz is just that, and if the computations are up to it, that is CD quality.

Anyhow, I made a little test wav yesterday, and tried it on my software, which does read the sample, but the header wasn't right yet, and the data a bit limited, but the principle starts to work, so I don't think I need to anticipate problems in getting the whole idea of the ground, which, again, is a major feat when done right.

Maybe I must charge visitors of the page doing more than a few high q samples with my ideas... Kidding, basically, the idea is attract attention to the area in a decent enough way, and there are more than enough sounds to be sold, although it also is not a bad idea to also do that on such a page. Some free, some commercial, not that they wouldn't be copied. But the generator codes could be creating samples on the client side that are of major size, which is at least harder to make available on a web site. A few megs or so can easily be the size for a decent stereo multisample, while the parameters needed to make the sound with could maybe fit in a few kilobytes, and that information may partially be hidden from the user.

Then again, javascript probably isn't up to the horsepower needed to do even smaller samples, so that is jsut thinking now. From the tests thus far, nice and quite good samples should be feasible in few tens of k range, maybe at 22.1 kHz, probably in 16 bit, though that could be 8, its just that my standard has always been 16.

When the whole thing works, it'll be on the page.

I noticed that various links on the wavelaboratory page are not so good, some hosts are not always working right, others seem at times to block access to files when the refering page is on another host. If that happens, check my home page for the home page on that host, and get the file over that link and maybe some sublinks, that should work fine (did for me), except that one file, an earlier version of the physical modeling software zip file, seems to be unavailable. Strange.

I just looked up a decent page on the wav format strucure here, and another here.

I just made a wav, this is the current testing page, you may want to try, it is in test, it does write a file, but all the time the same ping sound at this moment. Check the source for the source.

The latest knowledge is that you may need to download the page to a file, and then load it again in the browser as a file, easily done by dragging it from the file window and dropping it in a netscape or explorer window. Than the function that asks for some activex or so priviledge should ask you to grant permission to write to files, which is (evidently) high risc. I don't think there is risc of doing generic damage, just don't overwrite exisiting files you want to keep (check the source if you like). Click on 'grant' and the page, after having taken some time to load and generate a sample, will appear with the button for writing the file by the name in the box on the left of it.

I cant check it here, but the resulting file should be a valid wav file, you (maybe I later on) may want to check it from this wav file which I created by javascript. I hope the format is ok, than at least a local wave laboratory page can be made to make your own wavs. Or I could upload a few as examples. I'm working on making realplayer or the netscape or explorer player pop up automatically, that would be prefered. Open window right mimetype, push binary data array , mumble mumble, should %^#%^ work somehow (picture of some software hippi in the corner with an unsolved problem).

Won't the Lord buy me a unix machine.

At least the idea works, I checked I can write binary data, I can generate the needed byte formats, and at least where I tried, I can write files, and read them again successfully enough on my old system. 2k samples takes some time to generate, just doable, I figured out the eval function doesn't prefer vars, just numbers it seems to crack faster, I may want to improve the speed of the byte generators, I'll see.