Uldis Marhilevičs - "Vēl" chords (akordi). Here.


Facebook api logout without popup

During the building some webpage where users are able to register themselves through social networks, I stuck with a stupid problem related with facebook logout procedure. And all answers were hidden in... number sign "#" within anchor "href" element.

This one gives login popup

< a href="#" class="logoutFB" onclick="FB.logout()"> logout </a >

This one works fine, reloads page and is without popup

< a href="" class="logoutFB" onclick="FB.logout()"> logout </a >


MIDI and probability (?)

Well.. what is the connection between MIDI and probability? Usually musicians and sound engineers try to find flawless software and plugins with as much as precise timing and accuracy as possible. This one instead tries to skip played notes based on probability. Incoming MIDI message "note on" triggers the mathematics where user defined probability level decides will the note go through or disappear.

When it is useful? Well.. that depends. When I play layered instruments where one of them is kind of percussive or drums, I like to have that percussive instrument not to sound all the time. 

Download it here


Nuendo: Add keyboard shortcut to Normalize

 Under File -> Key Commands you can find/manage all keyboard shortcut commands.

Here I remap "N" from "Locate next event" to "Normalize", because I can do locating quite easy with mouse.

 Firstly I have to get rid of "N" for Locate Next event. Firstly in the field "Type in Key", type in the chosen key. Press "Select" and it will open up according function on the left panel and click on it. The function is selected and you can remove shortcut.
Now when you freed up chosen key, navigate to the function you want to give this key, type it in the "Type in Key" field and assign. The key will show up in "Keys" textbox.

Nuendo: Import multiple tracks altogether with correct timing

The story: I help to record some instruments in my home and then I would have to send all recordings to the studio to combine with other tracks.

The question: What is the best way how to import/export recorded tracks?

The easiest way how to import multiple tracks altogether is "import track archive"

One step back. What is track archive? When you do "Export multiple tracks", it creates separate folder with all your selected tracks and parts. One more thing what happens during exporting is Nuendo creates an xml file. This xml file is like a map which consists all information about in which track goes which sound file and in what time it starts. Basically, this is what you are going to import - this is track archive.

Browse to that xml file and open it.

Select all or few tracks from dialog box, choose whether you copy or use media directly from that folder (important, if you work with SSD drive, can speed things up a little bit when working with million tracks)

Press OK and here you go - all colors, extended information about fading and which parts are muted, etc. imported in Nuendo in other computer in different place.

Nuendo: save as mp3

Yeah, that`s right. MPEG 1 Layer 3 File stands for MP3.



Measure your hearing acuity!

This program is made to determine auditory threshold and give brief demonstration of sine wave and its Fourier transformation.  On the left side there is possibility to change the frequency, on the right side - to change volume. Using the value of volume it is possible to sketch the hearing threshold at given frequency.

Download it here.


Repairing Samsung SyncMaster 920N

I bought this monitor around six months ago. It was slightly used, with even some scratches on the screen but as I used this monitor as second one it doesnt bother me very much. 

This morning I woke up, switched on both monitors and this one didnt want to light up. That means - Its power light responded and computer recognized it but no backlight working. 

Four screws for stand, two more in both lower corners.
I knew exactly what happened with it because I had exactly the same issue with the primary monitor which is same brand and model. There are two bad capacitors on that board which were gone boom. I decided to change them by myself. 

Previously in the primary monitor there were both capacitors and one MOSFET fried. That time I changed whole power board because of this fried MOSFET. 

First assumptions were that only these two capacitors were bad so I decided to change only them. But after changing them the monitor still didnt work and I saw that MOSFET frying with smoke. 

That observation killed all my hopes for repairing that circuit board by myself. Firstly I didnt have such MOSFET available and secondly, if I would have it, I wouldnt be able to solder it because not having proper instruments. 

Somehow I noticed that on this power board there are two identical MOSFETs. As I had saved this old power board from first monitor repairs, I thought - I could loose nothing if I would try to desolder off the one which wasnt fried from that old power board and change with that fried chip on the original power board of this second monitor. Well.. doing it carefully as much as I could, I got that monitor working again! So, I have skill up in soldering small things :D Here are some insights of how this monitor looks from inside.

See more pictures --->


Telephone number representation in ... one pixel..

Lets say I have a telephone number which consists of 8 numbers - "29945987"
How to shorten it? Well.. one could convert it to different numeral system with base greater than 10.. The most popular would be hex numeral system with base-16. In that case the number would be "1C8F083" with only 7 symbols in it. My friend tried to convert it as an ASCII but didn`t do it mathematecally correctly :D so he has to rework it.

Ok, but - how to get it on a ... pixel? Well, what exactly is pixel? Working with different imagery software (starting with most popular and simplest Microsoft Paint and ending with complex Adobe Photoshop, Gimp, etc) users can "paint" or do whatever they are doing with custom made colors chosen from software color palette. The color "consists" of three "base channels" representing colors - red, green and blue each having a value from 0 to 255. So each pixel has these three values. Even better, there is some "pixel formats" with additional alpha channel for opacity. 

What does it mean? It means, that in the one pixel there can be stored value, which doesn`t exceed 255^4 =4`228`250`625 - numerical information with 9 characters is safe to save in one pixel. Even better - in two pixels we can safely save information about 19 numbers or the maximum value stored in two pixels is 1.78781033478129 × 10^19 or 17878103347812900000.

The next thing is - how to encode and decode such an information?

Lets try to encode my number "29945987" in pixel step by step. Despite maybe there are another approaches how to do it, this one is mine:

The main rule is I have to split the number in 4 parts with values from 0 to 255.

The first part will be the alpha channel.
The value of alpha channel is calculated as the floor value from division of my number and the value 255^3

floor(29945987;255^3)=floor(29945987;16581375)=1 (alpha)

The second part will calculate the value for the red channel. For that we firstly need to calculate with remainder (first) of difference between given telephone number and 255^3. 


Lets see is this number dividable with 255? Not really, there will be again some remainder (second) left. In such a case this second remainder can be any value from 0 to 255. Let us this value be the value for red channel


From here everything tangles, could be hard to follow.
What else we can do with the remainders we have? Previously we got second remainder with value 62. Subtracting it from first remainder, can this value be divided with 255^2?


In this case no, there is third remainder with value 34425.


Again, we are calculating the difference between second and third remainders getting the number which can be divided with 255^2 without remainder value=0.

The division between calculated difference and 255^2 will be the value for third - green - channel. The calculated value will be lower than 255^3.


And the last - blue - fourth channel value will be the division between third remainder and 255^1

34425/255 = 135

Does this all seems familiar? Well, this is my today`s empirical approach how to get values.
Actually - the similar approach could be done using base-x algorithm where x is any integer. In my case it should be 255.

And this is the RGBA color of my telephone number
And here it is in one small pixel:


LFO midi parametriser

LFO midi parametriser is midi vst effect which usually goes before vst audio input. It creates certain midi cc messages with values derived from LFO. Synchronizable with host. Can be downloaded here.

Double8bit chiptunes synthesizer.

In these last New Year holidays I was figuring out how wavetables works and what can be done with them. This one is simple 8bit (256 samples length) wavetable VSTi synthesizer with syncable 8bit LFO. Waves can be drawn with mouse directly on wavetable area creating different user wavetables and save as txt files for further use. This synth has ADSR envelope, two-knob filter, LFO synchronisation with host, inner volume and gain control. Lite version can be downloaded here. Without LFO mix.