## A butterfly is being oppressed by 6 evil spheroids!

As this previous posting of mine chronicles, I have acquired an Open-Source Tool, which enables me to create 3D / CGI content, and to distribute that in the form of a WebGL Scene.

The following URL will therefore test the ability of the reader’s browser more, to render WebGL properly:

http://dirkmittler.homeip.net/WebGL/Marbles6.html

And this is a complete rundown of my source files:

http://dirkmittler.homeip.net/WebGL

(Updated 01/07/2020, 17h00 … )

(As of 01/04/2020, 22h35 : )

On one of my alternate computers, I also have Firefox ESR running under Linux, and that browser was reluctant to Initialize WebGL. There is a workaround, but I’d only try it if I’m sure that graphics hardware / GPU is strong on a given computer, and properly installed, meaning, stable…

## On to the Future of 3D Web Content: Blend4Web

One of the subjects in Computing which continue to fascinate me, is CGI and so-called 3D Models as well as Scenes, that can be rendered to a 2D perspective View. At the same time, for the more trendy readers who like VR Goggles, those scenes can be rendered to 2 2D Views, just so that there will be parallax between them, and the scene seen with stereoscopic vision.

One of the facts which has been made known is that, sometime in 2020, Adobe plans to retire Flash. On one of my home pages, I actually have a 3D animation which used to run under Flash 11, when compiled with Stage3D support. What I find is that the latest Flash Firefox plugin will not display it for Linux, but Google Chrome still plays it. It’s an animation that should be fixed, but, since I neither have the software anymore which I once used to author it, nor the ability to expect browsers to support Flash in the future, I have just skipped fixing that animation.

What I may do at some point in the future, however, is to create some other sort of 3D content, that can be published as part of Web-pages. And, through the use of HTML5 and WebGL, this is quite feasible. The only question which struck me next was, What sort of platform could I use, eventually, that is Free and Open-Source? And the answer that presents itself, is Blend4Web – Community Edition!

Because this platform, which I’ve tested partially, is fully open-source, the licensing requires that I publish any and all source code used to create my future content, including source code belonging to Blend4Web-CE itself. Thus, to avoid procrastinating on that front, I have made the Open-Source version of that code available Here.

This way, whenever I want to create some 3D content, I will not need to worry much about the licensing requirement. Yet, if my readers want to, they may go to the company’s Web-site, linked to above, and purchase the paid-for version of the software instead, differently from the Open-Source version, which I really prefer and use. (:1)

I want to caution my readers however. This software tree comprises 1.4GB, and if the readers wish to download it, I’d strongly urge them to do so from the company’s Web-site, not mine, because the company has a Content Delivery Network – a CDN – that will enable many downloads, while I do not.

Note: Differently from what some readers have already inferred, Yes, the company Web-site also offers free downloads, of the Open-Source version, which is referred to as the ‘Community Edition’.

(Updated 01/05/2020, 11h40 … )

## I just custom-compiled Ardour 5.3.0

I know an acquaintance, whose name I will protect, who uses “Garage Band” on his Mac, but who has a hard time imagining that there exist many, many different programs like it, for other platforms, and that there must exist such, in order for professional musicians also to have access to a great array of such tools.

Of greater relevance is the fact, that such software exists under Linux as well – not just on Macs or PCs – as well as under Android.

And there is one observation which I would like to add, about what form this takes if users and artists wish to do audio work using Free, Open-Source applications.

Typically, we can access applications that do most of the work that polished, commercial examples offer. But one area in which the free applications do lag behind, is in the availability of sample packs – aka loops – which some artists will use to construct songs.

If Linux developers were to offer those, they would probably also need to ask for money.

Further, Garage Band has it as a specific advantage, that if such loops are simply dropped into the project, this program has the tempo stored, with which that loop was playing by default, in addition to which all DAWs have the tempo of the project set and available. Garage Band will automatically time-stretch the loop, to adapt to the project tempo. Most of the DAW programs I know, do not do this automatically.

A common ability the open-source applications offer though, is to time-stretch the sample manually after importing it, which can be as easy as shift-clicking on one of the edges of the sample and dragging it.

In order for this to be intuitive, it is helpful if the sample has first been processed with a Beat Slicer, so that the exact size of the rectangle will also snap into place with the timing marks on the project view, and the sample-tempo will match the project-tempo.

## libsamplerate

In This Posting, I gave much thought, to how the ‘Digital Audio Workstation’ named QTractor might hypothetically do a sample-rate conversion.

I thought of several combinations, of “Half-Band Filters” that are based on the Sinc Function, and ‘Polynomial Smoothing’. The latter possibility would have often caused a computational penalty. But there was one, simpler combination of methods, which I did not think of.

QTractor uses a GPL Linux library named ‘libsamplerate‘. Its premise starts out with the idea, that a number of Half-Band Filters can be applied in correct sequences with 2x oversampling or 2x down-sampling, to achieve a variety of effects.

But then, ‘libsamplerate‘ does something ingenious in its simplicity: A Linear Interpolation! Linear interpolation will not offer as clean a spectrum as polynomial smoothing will in one step. But then, this library makes up for that, by just offering a finer resolution of oversampling, if the client application chooses it.

This library offers three quality levels:

1. SRC_SINC_FASTEST
2. SRC_SINC_MEDIUM_QUALITY
3. SRC_SINC_BEST_QUALITY

Now, in This Posting, I identified an additional issue which arises, when we are doing an “Arbitrary Re-Sampling” and down-sampling. This issue was, that the source stream contains frequency components that are higher than the output stream Nyquist Frequency, and which need to be eliminated, even though the output stream is not in sync with the source stream.

To the best of my understanding, this problem can be solved, by making a temporary output stream 2x as fast as the final output stream, and then down-sampling by a factor of 2 again…

Sincerely,

Dirk

(Edit 07/21/2016 : ) The ‘GPL’ requires that this library be kept as free software, because it is in the nature of the GPL license, that any work derived from the code must also stay GPL, which stands of the “General Public License”.

But, because the possibility exists of some commercial exploitation being sought after, the Open-Source Software movement allows for a type of license, which is called the ‘LGPL’, which stands for the “Lesser General Public License”. The LGPL will allow for some software to be derived from the original code, which can be migrated into the private domain, so that the author of the derived code may close their source-code and sell their product for profit.

There exists a library similar to this one, that is named ‘libresample‘, with the express purpose that that one be LGPL code.

Yet, the authors of ‘libsamplerate‘ believe that this GPL version of the library is the superior one, which they would therefore have kept in the public domain.