My name is Olli Niemitalo. I live in Hämeenlinna, Finland.
You can reach me at o@iki.fi.
I write here of technical and creative things that I am doing. All source code is released under Creative Commons CC0 1.0 Universal Public Domain Dedication (CC0 1.0).
Also check out my Signal Processing Stack Exchange profile, if interested.
Vintage Bruel & Kjaer
I encountered a treasure trove of old Bruel & Kjaer gear at a military surplus store, and bought everything (with affordable prices):
- Bruel & Kjaer 2804 microphone power supplies with BNC output adapters.
- Bruel & Kjaer 4144 1" condenser microphone capsules with protection grid.
- Bruel & Kjaer UA 0135 ...
What would the M87* black hole image look like if we saw 230 GHz radio waves?
I originally posted this as a question and an answer on physics.stackexchange.com, but it was not received well there and was closed. The Event Horizon Telescope (EHT) M87* black hole image is equivalent brightness temperature, $T_\mathrm{b}$, in Kelvins mapped to color using a perceptually uniform colormap from ehtplot. By Rayleigh–Jeans ...
My personal genome
I bought whole genome sequencing for myself, with raw sequencing data, from Dante Labs in late 2017. They advertised this level of sequencing quality: Dante Labs Whole Genome Sequencing - Technical Sheet Paired End Reads Length 100 base pairs Mapping Rate 99.22% Unique Rate 96.47% Average Sequencing Depth 37.44 Average ...
UltraNav TrackPoint sensitivity hack
I have Lenovo ThinkPad X220 on which I am using the Synaptics UltraNav TrackPoint stick as mouse. Upgrade to Windows 10 made mouse slow enough to cause strain because of the extra force required, even when the Windows mouse speed setting was maxed out. In Windows 10 64-bit the latest ...
Enumeration of functions
I am interested in an enumeration of functions that starts with simple functions and progresses to more computationally expensive functions. Such an enumeration would enable to systematically try all useful functions for some task. For efficiency, it would be nice if the enumeration did not contain duplicate copies of the ...
Dial boxes
I obtained a few Silicon Graphics (SGI) dial boxes. They have RS-232 serial port interfaces. I figured out the pinouts based on the circuit boards and plan to use these as controllers for some audio generators. Some of the PCB is blank and could be removed to clear room for buttons ...
Aigo GE-5 Driver
I bought an Aigo GE-5 microscope years ago. If someone needs, here is the driver for it. GE5-mikroskooppi.zip Thanks to Pauli for salvaging this from the CD my CD drive could no longer read ...
Is this site safe?
As far as I know, yehar.com is safe to visit. But I've had some problems with anti-malware or Internet security companies categorizing yehar.com as malicious. So far these have been false alerts. McAfee Currently I have no problems with McAfee's SiteAdvisor. I recall I had to ask for a re-evaluation once. Webroot ...
Microwave oven spot welder
I made a spot welder out of a microwave oven transformer and a starter cable. Those are quite popular actually. They use a solid state relay to switch the transformer on and off. I use a Fotek SSR-40DA DC-controlled 40 A AC-zero-crossing-switching solid state relay. It was only 4 € and ...
Ellipse–circle and ellipse–ellipse collision detection
Closed-form solution To detect ellipse–circle collision (intersection or one being inside another), the point on the ellipse can be found from which a line perpendicular to the ellipse tangent at that point goes through the circle center. The point on the side closer to the circle center should be taken, ...
On DyersLIST
P.S. DyersLIST no longer exists. DyersLIST is "an internet mailing list intended for the discussion of technical questions, problems and information related to immersion dyeing and to the surface application of synthetic dyes, textile pigments and related chemicals, to fabric and fiber" (list.emich.edu) owned by East Michigan University. I was ...
Kantele
These are building instructions for a modern variant of a 5-string kantele, a traditional Finnish folk-musical instrument. Raw sound samples of the instrument (download for higher fidelity): I built a kantele for my Russian friend Dmitry, who during his visit lusted after the rather crude but acceptable-sounding kantele I had ...
Bytebeat
Bytebeat is a music synthesis technique that was discovered by Ville-Matias Heikkilä (viznut/pwp). Kragen Javier Sitaker has a good writeup on the subject. The way it works is that you generate a stream of 8-bit audio with the samples calculated by a function of sample index. This means that the ...
DNA- ja RNA-laskenta
Laskentaa DNA- ja RNA-molekyyleillä (docx, pdf), Olli Niemitalo, 7.12.2011 Deoksiribonukleiinihappo- (DNA) ja ribonukleiinihappomolekyyleille (RNA) on hahmoteltu käyttötapoja laskuvälineinä. Tämän kirjallisuustutkielman tarkoitus on selvittää, miten DNA- ja RNA-laskennan menetelmät toimivat ja mihin niitä voi käyttää. Tutkimusala lähti liikkeelle toivosta siitä, että molekyylien välisiin vuorovaikutuksiin perustuvat tietokoneet voisivat ratkaista suuria laskennallisia ongelmia ...
Rotolaserator
2011-10-26 I'm going to call this musical instrument (or rather a tone generator) Rotolaserator: Here's how it sounds like, with reverb, gating and echo added: [mp3-jplayer] And here it is giving the bassline to music (in the first half there's also the softer bassline from Korg Monotron, look for the ...
LCD inverter repair
2011-10-25 I found from a dumpster a Hyundai L17T LCD TV, pretty much a monitor with an analog TV tuner. I tried to turn it on, but the power indicator light was simply flickering slowly, indicating a short circuit somewhere. Nothing on the screen. The monitor was trying to power ...
Black Deck
Black Deck EP: http://soundcloud.com/black-deck-project/sets/black-deck-ep/ Tech demo: During the Christmas holidays of 2005, I started to build Black Deck, an opto-electric musical instrument that superficially resembles a record player. The name Black Deck comes from a philosophy of recycling and a Black & Decker name plate I had lying around. I ...
Oneironaut
I partook in the music project Oneironaut during 2010-2011 (and more rarely in 2012), playing Black Deck and more rarely other instruments, and doing video editing. "Oneironaut mixes various sound sources and effects to create music both for dancing and for private listening. Oneironaut's music is a form of neo-shamanism, with an ...
Cable hanger
This is how one can construct a rather useful cable hanger from some random stuff. The spring is from an old Hewlett-Packard scanner, where its function was to guide and protect cables running inside it. The function of the cotton string is to pull the spring against the moulding, so ...
Sound Blaster amplifiers
EDIT: These days, please harvest amplifier chips from active computer speakers instead. They are plentiful and contain only what you need in a nice package. For a project of mine, I needed a stereo amplifier. I had some old Sound Blaster ISA cards (and later got more, which are also ...
Circularly symmetric convolution and lens blur
This article describes approaches for efficient isotropic two-dimensional convolution with disc-like and arbitrary circularly symmetric convolution kernels, and also discusses lens blur effects. Keywords: depth of field, circle of confusion, bokeh, circular blur, lens blur, hexagonal blur, octagonal blur, real-time, DOF Gaussian function approach The circularly symmetric 2-d Gaussian ...
Raster!
2010-09-06 I have a problem with the halftone patterns that have recently become fashionable: They are not made correctly. For example, have a look at this detail from an image made using Rasterbator (v1.2 or earlier): Or any of these random examples from various sources: What you see in each ...
Natural dyes
Disabling the ThinkPad X200 master control for wireless radios switch
2010-08-18 I became very annoyed by the reoccurring disturbances to Internet connectivity by the overly sensitive master control for wireless radios switch of my ThinkPad X200 laptop. So I superglued it to ON position. No help. The glitches were still there, shutting down WLAN randomly and whenever I pressed my ...
Sine wave look-up table generation
2010-03-05 Here is a method for generating a sine look-up table in case you have little (a few kilobytes of) program memory. The idea goes like this: Let's say you have a sine wave lookup table of length 1024 with a 24-bit amplitude range. If you take the difference between ...
Photos: Kilpisjärvi, 2006
Teksti: Antti Mehtomaa. Muutama kuva on muiden kuin itseni ottama. 1.4.2006 ja kello löi 8 aamulla. Neljä (takaisin) luontoon haluavaa miestä saapui oulun bussiasemalle. Tästä siis lähdettiin ja mukana oli Antti (möylä), Mursu, Aarni (Junnu) ja Olli. Bussi oli ihan täynnä porukkaa ja tavaratilakin oikein odotti meidän rinkkoja ja ...
Cider
2009-11-30 After the first snow had fallen, me and my colleague Fumi were given permission to pick the apples of the botanical garden at our university. There were about 30 kg of them. That yielded 14 half a litre bottles of cider (batch 2009/1). I used a centrifuge-type juicer from ...
Dreadlock tool
2009/11/23 When I had my dreadlocks made, I had little idea how to take care of them. I tried different things. By now, I have a routine. I wash the dreadlocks with water every morning and after sports. Once a week, I wash them with non-silicone shampoo, twice at a ...
Misc
Miscellaneous works and designs 2008-08-08 This was sold along with tickets for Histoni's NED parties. The stuff in the tube is a combination of glue and a phosphorescent powder intended for fish lures. 2008-01 For the shirt I used a coat as a model for the pieces. 2007-09-19 2003-12-25 ...
Marginal notes
These are miscellaneous notes and recipes. Mapping a pair of integers to an integer 2011-05-26 How to map from a pair of integers to an integer? Negative or positive, independent of the size of the two integers, you can convert them into balanced ternary to get rid of the signs ...
Older, mostly tracked music
Here is a collection of "early" music by me in mp3, ogg, and tracker formats. Some of my songs have probably got lost forever due to hard disk failures, but most of the nicer ones have continued to live thanks to the safe haven that is the Internet. I made ...
Polynomial interpolation
Polynomial Interpolators for High-Quality Resampling of Oversampled Audio Revised version (October 2001): deip.pdf (501 KiB) Abstract: "This paper discusses piece-wise polynomial interpolators used in audio resampling and presents new low-order designs that are optimized for high-quality resampling of oversampled audio. Source code and useful tables for using the interpolators are ...
Ideas
Sometimes I get an idea that I think may be worth something, maybe not much, but something. But then I forget it. Better write it down, here. 2017-12-10 Use of generative adversarial networks for 3-d protein folding Use generative adversarial networks directly for 3-d protein folding. The discriminator network would ...
Imaging spectrophotometer
2009/07/03 OK, I have an idea: A spectrophotometer that can take 2D-images, like a normal camera, but from each pixel you get a complete visible spectrum instead of just red, green, and blue intensities. Pictured is one possible way to construct an imaging spectrophotometer. An image of a subject is ...
Savulohimössö
2009/07/14 Tällä ohjeella tulee 1,5 L raikasta savulohi-vihannesmössöä, jota voi laittaa vaikka kolmioleipiin. 1 L maustamatonta jugurttia (tein vähälaktoosisesta UHT-kevytmaidosta, juurena bulgarianjugurtti) 800 g savustettua lohta (3/4 kokonaisesta 2 kg lohesta) 1 kurkku 7 retiisiä 2 punasipulia 1 ruukullinen tuoretta persiljaa 2 rkl viinietikkaa 2 tlk sitruunamehua Valuta jugurtista nestettä ...
Adlib / OPL2 / YM3812
This page is devoted to the classic PC soundcard, Adlib, and compatibles. Reverse-engineering report 2008-04-20 Me and Matthew Gambrell reverse-engineered the YM3812/YMF262 ROM tables. These are the pictures we took: The bits of dirt are from my fingers, sorry about that. See also: Yamaha YMF262 die images. Exponential table ...
Screen printing 2
Screen printing 1
2008/11/21 My first screen printing project, logo patches for our football team shirts. Evolution of the logo: Real silk! ...and photoresist. Exposed by ultraviolet light through two duplicate layers of photocopier transparencies. The frames are hardwood photo frames that were on sale, 2 EUR each. Not perfect registration of the ...
One-sided Chebyshev-type inequalities for bounded probability distributions
2007-12-14 Chebyshev's inequality states that, for any probability distribution, at most $1/k^2$ of the area of the probability density function lies more than $k$ standard deviations away from the mean. We can do better, if we know that the distribution is bounded and we know the bounds. Let $X$ be ...
Euro coins as standard weights
What if you suddenly need a scale, accurate to one gram? Here is the solution, in case you live in the euro zone. (Something like this has actually been done before!) The physical mass of each euro coin is actually standardized. So they can be used to measure mass of ...
Dye Mixer v1.1 (java)
2006/08/10 [APPLET HERE] Problems running Java applets? If you have Windows 7, go to Control Panel, search for Java, go to Java Control Panel tab Java, change Java Runtime Environments settings by adding -Djava.net.preferIPv4Stack=true to the runtime parameters. Or try this alternative page of Dye Mixer. Introduction Hello, fellow dyer! ...
Impulse response measurements
2006/08/10 To measure the impulse response of a noisy system, you don't want to just send an impulse and see what comes out. Instead, you will play a signal that has succifiently high energy (long instead of loud), record the outcome and deconvolve from it your original signal, giving you ...
Evolutionary real variable optimization in C++
If you have a problem where you need to find the optimal values for a set of real variables, try this library written by Magnus Jonsson and me. opti.cpp opti.hpp- Optimization library v1.1 MersenneTwister.h - Mersenne Twister random number generator required by the library (by Rick Wagner) optitest.cpp keyboard.h - ...
DIY Canon EOS 300D AC adapter
Hilbert transform
This is probably the most efficient structure for implementing a Hilbert transform. Actually, it's not a Hilbert transform, but two all-pass IIR filters whose phase difference is approximately 90 degrees over a range of frequencies symmetric around Nyquist/2. Laurent de Soras uses these kind of filters in his HIIR resampling ...
Digital sound processing tutorial for the braindead!
In 1998, I had some extra time while others were reading for final exams of the senior high school, and got into digital signal processing. I wrote as I learned, and here is the result. It is not entirely accurate in places but may serve as a nice tutorial into ...
The #musicdsp adventures
2001/10/27 I have occasionally been a regular on the EFNet #musicdsp IRC channel. This ASCII art comic is my perverted view of some of the #musicdsp characters. ___ __ _ _ _ _ __ | | | | _|__|_ |\ /| | | / \ | / ` | \ ...
C++ EPS plotting library
2001/08/09 epsplot.zip - simple C++ EPS plotting library With this simple library you can plot Encapsulated PostScript files straight from your C++ program. Nearly all the pictures in Polynomial Interpolators for High-Quality Resampling of Oversampled Audio were generated with this ...
Great blog :D
Hi Olli,
I have just started on the maddening journey into audio/dsp programming and came across this link from Tobybear.
He notes it as a must read for this kinda journeys start, but alas I don’t find the destination…
http://www.student.oulu.fi/~oniemita/DSP/DSPSTUFF.TXT
Any help would be most welcome
Colin
Colin,
Thanks for pointing this out! The article had disappeared from the right hand menu due to a bug. Now it’s back in there. A direct link: https://yehar.com/blog/?p=121
Hi Olli
Last night I asked for info on where to find “www.student.oulu.fi/~oniemita
/DSP/DSPSTUFF.TXT”…I was directed to you from Tobybear.
Well I also downloaded his flex filter explorer, and within was said document…
So I have it and have just started to read…A very good place to start so it appears
AND a very big thanx for putting it together,
Colin
I was so keen to get into it , I made this comment b4 reading the comments.
So big thanx 4 getting back so quick…am well impressed.
Cheers, now to twist my poor ragged brain cell some more..ha!
Hey Olli! Just wanted to thank you for your easily readable work. Better than uni courses. ;) I’m enjoying reading your interpolation paper over and over at the moment.
I’ve just started started coding DSP – and it’s so much fun i forget to make music. :)
Thanks Dennis! By the way, I have enjoyed listening to your music in a few occasions over the years as well. :-)
The resampling paper on this site is incredibly useful. Thanks for making it available!
I found your re-sampling paper very interesting, and I wanted to know if your algorithms have ever been adopted in any products that I might have heard of?…
Richard: An early version of Fruity Loops used a resonant lowpass filter from me. Of others I don’t know.
How would the SRC algorithm in your paper rate against popular algorithms like those found in iZotope and SoX?
Tim, I’m guessing your question is about the maximum achievable quality. I don’t give a single algorithm or complete sample rate converter implementations, but properly implemented in a sample rate converter some of the algorithms in the paper would give better than “good enough” results. Also iZotope and SoX are better than “good enough”. To go further in the comparison of maximum quality achievable would not make practical sense.
Have you ever looked at the challenge of DSD-to-PCM conversion? Do you have any special insights into that problem?
Richard: No, I haven’t done anything related to DSD
hey Olli. just discovered your site (you were the yehar guy?) didn’t you used to have a SHARCPAGE or something?
good to see you at the dsp.stackexchange .
L8r,
r b-j
Yep Robert, that’s me! I don’t think I had a SHARC page, but I did have a collection of SHARC documents at the past ee.oulu.fi/~ollinie.