## Some Issues, with Multiple Input Ports, on One PulseAudio Sound Device

My situation is such that my Linux computers have elaborate Graphical User Interfaces, as well as the Pulse Audio Server, for use in multimedia. Yet, to adapt them to my own needs, I have done some customizing of the Audio Server, specifically, giving it a ‘Loop-Back’ module, so that when I play music from my FM Receiver, to the Line Input jack of the PC in question, that music is ‘looped back’, to my speaker amp, for my enjoyment. Such configuration changes can have consequences on how to perform other multimedia tasks, such as Screen Recording, which, on the computer named ‘Phosphene’, requires that I plug a microphone into the Front Mic Jack because that Tower-PC has no internal Web-Cam or Mic.

Ever since I made the ‘loopback’ configuration change, I never retested the ability to plug in a Mic into the front jack, until only a few days ago. But when I finally did, it was with the initial purpose of testing whether certain Screen-Recording software works, which is different software from the software I’d normally use, which was not designed primarily for use with Linux, but the ability of which to connect to my sound inputs is as good, as that of the Web-browser (Chrome) that the extension runs within.

I got a rude surprise when running this test, in that plugging in an input, to the Front Mic Jack, borked my sound, at least until I restarted Pulse Audio. But beyond that, I learned that my sound issue was not due to this browser extension, but rather due to the way I had configured Pulse Audio, as well as perhaps, due to hardware limitations of the ‘Creative Sound Blaster X-Fi Xtreme’ sound card. I.e., Even if I did nothing to relaunch this extension I was first testing, but only plugged in a mike to the Front Mic Jack, during a clean Pulse Audio Server session, the malfunction came back.

So, what was the nature of this malfunction?

According to Pulse Audio, a computer could have one or more Sound Devices, which corresponds to the number of Analog-to-Digital Converters it has, in the case of capture devices, but each of those could have more than one Port, which would be the specific analog input, that is feeding the Sound Device in question. And, Pulse Audio supports the H/W feature of modern sound cards, to detect whether a plug has in fact been inserted into each jack, thus making the Port available. By default, what Pulse Audio would do is simple: Switch the input of the Sound Device, to the newly-plugged analog input. But, it doesn’t work.

When I plugged my external mike into the Front Jack for any reason, while the Line Input in the back of the computer was also active, which it is by default, just so that I could turn on my FM Receiver and hear music,

• I got no sound input from the Front Mic, even though the GUI shows that the input has been switched,
• Switching the input manually produced no difference in behaviour,
• The loopback module will go into a corrupted state, in which it will loop back sound from the Line Input, but with a 10-30 second time delay. I was hearing music, long after I had turned my FM Receiver off…

I took numerous, lengthy steps to find out why this was happening, but my conclusion was, that the actual hardware is unable to activate the Front Mic Jack, as long as the (rear) Line Input is plugged in simultaneously. And this cannot be corrected from the software side, with my present H/W. And so, what I needed to do was, to develop a workflow that would ease switching from ‘Music Enjoyment Mode’, to ‘Screen Recording Mode’, and back again, in the fastest time possible, and without requiring excessive restarts…

In other words, even if I was setting up a Screen-Recording to be created using the native application I’d normally use, because either solution is a user-space program, I’d need to follow the same steps to make them work.

## Dealing with a picture frame that freezes.

I recently bought myself a (1920×1080 pixel) digital picture frame, that had rave reviews among other customers, but that began the habit of freezing after about 12 hours of continuous operation, with my JPEG Images on its SD Card.

This could signal that there is some sort of hardware error, including in the internal logic, or of the SD Card itself. And one of the steps which I took to troubleshoot this problem was, to try saving the ‘.jpg’ Files to different SD Cards, and once even, to save those pictures to a USB Key, since the picture frame in question accepts a USB Memory Stick. All these efforts resulted in the same behaviour. This brought me back to the problem, that there could be some sort of data-error, i.e., of the JPEG Files in question already being corrupted, as they were stored on my hard drives. I had known of this possibility, and so I already tried the following:


find . -type f -name '*.jpg' | jpeginfo -c -f - | grep -v 'OK'



Note: To run this command requires that the Debian package ‘jpeginfo’ be installed, which was not installed out-of-the-box on my computer.

This is the Linux way to find JPEG Files that Linux deems to be corrupted. But, aside from some trivial issues which this command found, and which I was easily able to correct, Linux deemed all the relevant JPEG Files to be clean.

And this is where my thinking became more difficult. I was not looking for a quick reimbursement for the picture frame, and continued to operate on the assumption that mine was working as well, as the frames that other users had given such good reviews for. And so, another type of problem came to my attention, which I had run in to previously, in a way that I could be sure of. Sometimes Linux will find media files to be ‘OK’, that non-Linux software (or embedded firmware) deems to be unacceptable. And with my collection of 253 photos, all it would take is one such photo, which, as soon as the frame selected it to be viewed, could still have caused the frame to crash.

(Updated 1/16/2020, 17h15 … )

## 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…

## Using MPD with Cantata.

One of the common ways in which Linux users have been playing music on their computers has been a traditional way, which would be, with an application that has a GUI, and which runs in their user-space, and which therefore has access to a personal music folder. ‘Clementine’ and ‘Amarok’ are only two out of several applications which do this under Linux. But there is another way to stream music through a Linux computer, in the form of the “Music Player Daemon” (‘MPD’), that can be configured to run in the root file system, as a system process, and in the background, while using up far less RAM or CPU cycles than either of the top-heavy, GUI-driven apps use. And one good place to use such an arrangement is, if we want to have ‘relaxation music’ playing through our life space, but again, without taking up much in the way of resources on whichever computer is generating the sound output.

‘MPD’ itself has no user interface and is configured in a single configuration file, in the case when it is not configured per-user. Therefore, one thing that users and admins alike might do – but mainly plain users – is to install one out of numerous MPD Client programs, and the client program which I chose happens to have a GUI:

This front-end is named ‘Cantata’.

There already exist good references on the Web, on How to configure an ‘MPD’ system process, just using a Text Editor, and the command-line. (Yes, the stock client is installed with a package named ‘mpc’, and is driven from the command-line.) I think that the article which I just linked to is well-written, and that its author seems very knowledgeable.

The only problem with the article linked to above is, that the author just forgot to explain one fact. Not knowing this fact, and being new to how ‘MPD’ works, cost me several hours close to midnight on one recent day. I found this fact written in exactly one other article on the Web. Just so that other users do not suffer from the distress that can be caused, because they, too may want to run ‘MPD’, but caused, from not knowing this fact, I just decided to create the second spot on the Web that I know of, which mentions it…

(This fact concerns a possible problem in using ‘MPD’, due to which a single user’s private Music Collection does not want to appear.)

(Updated 11/26/2019, 13h05 … )