Hello all,
I thought it would be good to put together some simple instructions to integrate a turntable, or any other analog source, into a 2022 wifi streaming environment.
My own experinece tells me there are at least two reasons one would want or need to do this:
1. There is a tendency nowadays to use the cheap DACs we adore as preamplifiers, and they do a terrific job. Low noise, remote control, source selection... but there are very few models that have analog inputs, and the ones that have them (think matrix audio mini i pro, minidsp flex, sonos environment, edit: the new wiim mini can also do the job as pointed out by Jmudrick. 106eur in Amazon.de. I don't know if you need two of them or if it can stream to any other streamer you have, maybe someone using it can comment) don't come cheap if the only extra feature you need is this.
2. No cables! I always had my music rig separated from the tv rig, but recently i moved my speakers to both sides of the screen like so many people do... and in the average little european room, chances are that there is no space there for a turntable, or at least not in a way that is comfortable to use. This means that the turntable ends up at a relatively long distance from the amplifier and running cables across the room starts to be a problem... Additionally, a streaming system allows you to have a headphones rig anywhere in the house, or even in your mobile phone, and you might want to listen to your records there too, why not?
I was in this situation one year ago, and being a complete noob in audio and audio electronics, let alone linux and raspberry pi, it took me some time and reading to find the right way to do it and instructions detailed enough to my level of knowledge (= 0).
There is nothing new in this tutorial, everything is relatively easy to find in the internet, the intention is just to put everything together in one place with instructions detailed enough so that everyone can follow them successfully without having to look anywhere else.
Additionally, and in line with my other instructions for noobs threads, i have chosen to explain a minimum cost solution. The people who are willing to spend significant money in this can access to solutions that work out of the box.
what do you need?
- Turntable (obviously)
- Phono pream (not necessary but recommended)
- Raspberry pi zero 2w - the older zero w also works, but the price difference is so ridiculous that doesn't really make sense)
- Creative Sound Blaster HD - or any USB card with analog input really. I use this here because it also has a phono stage built in. The popular Behringer UFO 202 and similar also work well, have a built in phono stage and sometimes are sold in amazon for 10 $. I had the two but not simultaneously, so i can't tell which one is better.
I think the line in ADC of the Sound Blaster is very good and generates very little to almost no noise, so if you already have a phono preamp that you like, this can be a killer cheap combination. On the contrary the phono stage is... meh.... I mean, it is usable, but i think to remember that the one in the Behringer was a bit better in terms of noise.
The Sound Blaster HD is discontinued but you can find it in ebay very cheap. I think i paid 30 euros for mine and I am sure it can be found even cheaper.
- micro SD card: a very small one will do. You can just use a 8Gb one and if you already have something smaller, you can even give it a try.
- USB phone charger: i use an old one that gives 1.5 A and is enough for the pi, the usb card and a 1 tb HDD. I bet that for just the pi and the card, something smaller could do. But remember, if you use one less powerful and you find issues, the lack of power could be the reason.
- Connectors: the pi zero family have a ***** micro USB host socket, and this makes the connectivity to the USB card a bit difficult. The best thing is to buy a male micro USB to female USB-A and connect this to the male USB A terminated cable that comes with your card (if you dont have it, the Sound Blaster HD needs a USB A to mini USB. The Behringer has a fixed cable)
Streaming sound from your turntable.
When you start searching around for a solution, very soon you realize that there are zillions of solutions to use almost anything as a streamer, but what you need here is a server to output your signal to the rest of your equipment, and the solutions available to do this, my friend.... aren't many.
In this instructions i will use Logitech Media Server (LMS), and to be honest, i doubt there is something better and easier than it. No need to say that is completely free.
One way to get and use LMS is piCorePlayer (pCP). This software comes bundled and integrated with LMS, and the at pCP are active in the Logitech Squeezebox forum, where you can ask questions, find information and make donations if you wish (in their website).
Forum:
https://forums.slimdevices.com/showthread.php?114828-Announce-piCorePlayer-8-0-0
And with no further delay, there go the instructions.
1. Download piCorePlayer 8.1.0 - Standard Version here:
you will notice that there is a 64bit kernel version as well. If you are using the pi zero w, you can only use the standard version, not the 64bit. With the zero 2w, in theory, you could use both. When the 2w was released they adapted piCorePlayer to work with it, and when i asked them in those days they recommended to go first with the standard version to avoid troubles, as it was a fresh release. This was a few months ago, so maybe today the 64bit version works without issues, but i can't confirm that. What I can confirm is that the standard version works beautifully.
2. Download and install in your computer BalenaEtcher here:
This is an app that allows you to write piCorePlayer to your SD card
3. Download Putty here:
4. Download Advanced IP scanner here:
5. Set up piCorePlayer.
The guys at piCorePlayer have excellent instructions that are way better than mine here:
But remember that the aim of this post is to have all the information together, so i will still explain here what is the minimum you need to do to stream your analog source without any of the other features ot pCP
5.1 Insert the SD card in your computer and open balenaEtcher. Select the pCP zip folder that you downloaded (no need to decompress it) and burn it to your SD card following the steps that BalenaEtcher tells you.
When BalenaEtcher tells you it is done, extract the SD card from your computer and insert it again.
5.2 Open a new windows notepad document in your computer and paste the following text:
# Maintained by piCorePlayer
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=staff
# Two Character Country Code
country=LU
update_config=1
network={
ssid="the name of your wifi"
psk="the password of your wifi"
key_mgmt=WPA-PSK
auth_alg=OPEN
}
Please notice the text in red that you will need to fill in with your information. Don't really know what is the purpose of the country code but there it is... Leave the "" with the ssid and password.
Save the notepad documet with the name wpa_supplicant and save it in the SD card.
This little document will allow pCP to access to your wifi.
Eject the SD card and insert it in your raspberry pi, with the USB card already connected.
5.3 Accessing pCP from your computer.
In order to continue setting up pCP you need to find out what is the IP address of your raspberry pi. You can use Advanced IP scanner to find out. Just open it, press scan, and you will see a list of devices with their IP addresses. There will be one called pCPsomething. This is the one you need. Copy the IP address of this one (in the example below, pCP.fritz.box is the one.
Paste the IP address in a web browser and you will see the main control page of pCP/LMS. It looks like this:
As mentioned before, this package contains piCorePlayer and LMS. For our purpose we are only interested in LMS, so i will go straight to the point and will not inclued piCorePlayer in this tutorial.
Go to the bottom of the page and select the tab called "beta". This will allow you to access settings that otherwise you would not see:
then return to the top of the page and go to the LMS tab.
5.4 Install LMS
The first thing to do here is to install LMS. Press "Install LMS"
The installation will not work, instead, you will be asked to create a partition and to select the size of said partition. Select 300 Mb. The partition will be created.
After this you might be requested to reboot. Do so.
Then you can press again "Install LMS" and this time it will work.
When finished, you will see a lot of new buttons. Press "Start LMS"
5.5 Create a squeezebox account (edit: See @somebodyelse post #8 if you prefer not to create a squeezebox account)
This is the most peculiar part of all this. Believe it or not, in 2022, several years after logitech abandoned all this, you can still create a LMS account. What is more, you must do so to use it. Don't ask me how this is possible, but it is, and of course it is for free and you don't need to own any Logitech device.
Still in the LMS tab, press "LMS webpage"
And it will bring you to the login website of LMS. There you can create an account (clicking the selfexplanatory "I need to create a mysqueezebox.com account") and get your credentials. With them, you can enter the LMS control website.
Once in, you will need to pass a series of tabs that ask you to select where is your music etc. You can just skip all of them as they are not necessary for this project, and you will get to the LMS main page. It looks like this:
Once here, you need to go to "settings" at the bottom left corner and you will see several tabs. Go to the one called "plugins"
5.6 Wavinput plugin
Here you need to activate the plugin that allows to capture the analog in signal, it is called wavinput. Just select it and click "apply" in the lower right corner. If you intend to stream the analog signal to other upnp streamers (i.e. volumio, moodeaudio, your tv, etc.) you can do it if you activate as well a second plugin called "UPnP bridge".
You will need to reboot after activating the new plugins.
5.7 Set up the analog input as a favorite
In the main LMS page, go to favorites, and clicking on the pencil icon you can create a favorite. It only asks you for a name, and you can call it as you want, i.e. turntable, and an URL. The URL field MUST be wavin:default
And that's it, when you "play" this favorite you created, you will be playing the signal it is getting as an audio input from the analog source of your USB card.
6 Setting up the USB soundcard.
As explained at the beginning, you can use different USB cards with line or phono inputs. If you are using the Sound Blaster X-fi HD, you can choose between a line level input (if you already have a phono stage or you are using an analog source with a line level output, i.e. a casette deck or a reel to reel tape) and a phono input (to connect directly to your turntable without using a separate phono stage). I don't find the built in phono stage of the Sound Blaster good enough, but might be worth checking out if you dont want to invest in a separate phono stage.
To select between the two options, you can go use alsamixer.
Alsamixer is a tool you can access from a ssh client. In order to do so, open the Putty app you downloaded at the beginning. You will see a window like this:
here you need to input the IP address of your pi (that you found out before), port must be 22 and connection type SSH. Below these fields you are offered to save these values so that next time you use it don't need to retype them again. However this is not necessary.
When done, press Open and you will access a command window for your pi. You will requested to input a login and a password:
Login as: tc
Password: piCore
you will see this:
then you can type alsamixer, and you will get into the alsamixer window of your card:
It looks like this, very 80s:
As you can see to the right, above PCM capture source, "Line" (line level input) is selected as default. If you want to use the built in phono stage of the card, use your cursor to move to the left and then with the cursor up/down you can select between Line, Phonograph and Mic. Phonograph refers to the phono stage. Select it, press "esc" to exit alsamixer, and in order to make your change permanent when you switch off your system, type:
sudo alsactl store
And basically that's it. Everything should be up and running now. You should be able now to go to favorites, select your analog input, and stream your turntable signal to your piCorePlayer streamer, or if you activated the upnp bridge plugin, you will find your volumio/moode/tv/upnp streamer in the list of players on the top right corner of your screen. You just select the one you want to use, and it will get the signal from your LMS.
If you want to control your LMS from your android smartphone, there are several apps you can choose from. i use Squeezer. It is a very simple app from where you can connect to your LMS and access a simplified version or the LMS GUI, from where you can select your streamer and send your analog signals.
And here you have the result (sorry for the mess, normally all this is hidden behind the shelf). The soundcard is the box sitting on top of the phone stage, the led is not as bright as it seems in the picture. As you can see I have a USB connected to the pi so I can plug, additionally that small 1 TB SSD drive with my ripped CDs to it. This is one of the additional features (actually the main one) of LMS. You can have your music library there too. But I didn't want to include that part in this tutorial in order to keep it as simple as possible.
PS. Latency: my system, as described here, has a latency of ca. 5-6 seconds. It is a lot, but for me it doesn't really matter. I would even prefer to have a longer latency so that i have time, from the moment i drop the stylus on the record, to go and grab my headphones. I don't know if the latency could get reduced if, for instance, you use a raspberry pi 4 instead of the zero. There are some settings that can have some effect in the latency, but i dont think you can make it much shorter.
Note on the Behringer UFO 202: If you are really on a budget and you don't have a phono preamp, this card can be the one for you. It sells regularly for 20 eur and I have seen it in Amazon.com for 10$. You can find it used in ebay sometimes for as little as 5 eur, and to be honest, it works surprisingly well and you have your turntable server all set up for as little as 30-35 eur. An additional advantage of the Behringer is that it has a physical switch to select line in vs phone in, so you can skip the alsamixer part of the tutorial.
That's all folks, enjoy your music and feel free to correct or add whatever you think might be useful. Cheers!
I thought it would be good to put together some simple instructions to integrate a turntable, or any other analog source, into a 2022 wifi streaming environment.
My own experinece tells me there are at least two reasons one would want or need to do this:
1. There is a tendency nowadays to use the cheap DACs we adore as preamplifiers, and they do a terrific job. Low noise, remote control, source selection... but there are very few models that have analog inputs, and the ones that have them (think matrix audio mini i pro, minidsp flex, sonos environment, edit: the new wiim mini can also do the job as pointed out by Jmudrick. 106eur in Amazon.de. I don't know if you need two of them or if it can stream to any other streamer you have, maybe someone using it can comment) don't come cheap if the only extra feature you need is this.
2. No cables! I always had my music rig separated from the tv rig, but recently i moved my speakers to both sides of the screen like so many people do... and in the average little european room, chances are that there is no space there for a turntable, or at least not in a way that is comfortable to use. This means that the turntable ends up at a relatively long distance from the amplifier and running cables across the room starts to be a problem... Additionally, a streaming system allows you to have a headphones rig anywhere in the house, or even in your mobile phone, and you might want to listen to your records there too, why not?
I was in this situation one year ago, and being a complete noob in audio and audio electronics, let alone linux and raspberry pi, it took me some time and reading to find the right way to do it and instructions detailed enough to my level of knowledge (= 0).
There is nothing new in this tutorial, everything is relatively easy to find in the internet, the intention is just to put everything together in one place with instructions detailed enough so that everyone can follow them successfully without having to look anywhere else.
Additionally, and in line with my other instructions for noobs threads, i have chosen to explain a minimum cost solution. The people who are willing to spend significant money in this can access to solutions that work out of the box.
what do you need?
- Turntable (obviously)
- Phono pream (not necessary but recommended)
- Raspberry pi zero 2w - the older zero w also works, but the price difference is so ridiculous that doesn't really make sense)
- Creative Sound Blaster HD - or any USB card with analog input really. I use this here because it also has a phono stage built in. The popular Behringer UFO 202 and similar also work well, have a built in phono stage and sometimes are sold in amazon for 10 $. I had the two but not simultaneously, so i can't tell which one is better.
I think the line in ADC of the Sound Blaster is very good and generates very little to almost no noise, so if you already have a phono preamp that you like, this can be a killer cheap combination. On the contrary the phono stage is... meh.... I mean, it is usable, but i think to remember that the one in the Behringer was a bit better in terms of noise.
The Sound Blaster HD is discontinued but you can find it in ebay very cheap. I think i paid 30 euros for mine and I am sure it can be found even cheaper.
- micro SD card: a very small one will do. You can just use a 8Gb one and if you already have something smaller, you can even give it a try.
- USB phone charger: i use an old one that gives 1.5 A and is enough for the pi, the usb card and a 1 tb HDD. I bet that for just the pi and the card, something smaller could do. But remember, if you use one less powerful and you find issues, the lack of power could be the reason.
- Connectors: the pi zero family have a ***** micro USB host socket, and this makes the connectivity to the USB card a bit difficult. The best thing is to buy a male micro USB to female USB-A and connect this to the male USB A terminated cable that comes with your card (if you dont have it, the Sound Blaster HD needs a USB A to mini USB. The Behringer has a fixed cable)
Streaming sound from your turntable.
When you start searching around for a solution, very soon you realize that there are zillions of solutions to use almost anything as a streamer, but what you need here is a server to output your signal to the rest of your equipment, and the solutions available to do this, my friend.... aren't many.
In this instructions i will use Logitech Media Server (LMS), and to be honest, i doubt there is something better and easier than it. No need to say that is completely free.
One way to get and use LMS is piCorePlayer (pCP). This software comes bundled and integrated with LMS, and the at pCP are active in the Logitech Squeezebox forum, where you can ask questions, find information and make donations if you wish (in their website).
piCorePlayer
www.picoreplayer.org
Forum:
https://forums.slimdevices.com/showthread.php?114828-Announce-piCorePlayer-8-0-0
And with no further delay, there go the instructions.
1. Download piCorePlayer 8.1.0 - Standard Version here:
you will notice that there is a 64bit kernel version as well. If you are using the pi zero w, you can only use the standard version, not the 64bit. With the zero 2w, in theory, you could use both. When the 2w was released they adapted piCorePlayer to work with it, and when i asked them in those days they recommended to go first with the standard version to avoid troubles, as it was a fresh release. This was a few months ago, so maybe today the 64bit version works without issues, but i can't confirm that. What I can confirm is that the standard version works beautifully.
2. Download and install in your computer BalenaEtcher here:
balenaEtcher - Flash OS images to SD cards & USB drives
A cross-platform tool to flash OS images onto SD cards and USB drives safely and easily. Free and open source for makers around the world.
www.balena.io
3. Download Putty here:
4. Download Advanced IP scanner here:
Advanced IP Scanner - Download Free Network Scanner
Advanced IP Scanner shows all network devices, gives you access to shared folders, and can even remotely switch computers off. Download it Free.
www.advanced-ip-scanner.com
5. Set up piCorePlayer.
The guys at piCorePlayer have excellent instructions that are way better than mine here:
But remember that the aim of this post is to have all the information together, so i will still explain here what is the minimum you need to do to stream your analog source without any of the other features ot pCP
5.1 Insert the SD card in your computer and open balenaEtcher. Select the pCP zip folder that you downloaded (no need to decompress it) and burn it to your SD card following the steps that BalenaEtcher tells you.
When BalenaEtcher tells you it is done, extract the SD card from your computer and insert it again.
5.2 Open a new windows notepad document in your computer and paste the following text:
# Maintained by piCorePlayer
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=staff
# Two Character Country Code
country=LU
update_config=1
network={
ssid="the name of your wifi"
psk="the password of your wifi"
key_mgmt=WPA-PSK
auth_alg=OPEN
}
Please notice the text in red that you will need to fill in with your information. Don't really know what is the purpose of the country code but there it is... Leave the "" with the ssid and password.
Save the notepad documet with the name wpa_supplicant and save it in the SD card.
This little document will allow pCP to access to your wifi.
Eject the SD card and insert it in your raspberry pi, with the USB card already connected.
5.3 Accessing pCP from your computer.
In order to continue setting up pCP you need to find out what is the IP address of your raspberry pi. You can use Advanced IP scanner to find out. Just open it, press scan, and you will see a list of devices with their IP addresses. There will be one called pCPsomething. This is the one you need. Copy the IP address of this one (in the example below, pCP.fritz.box is the one.
Paste the IP address in a web browser and you will see the main control page of pCP/LMS. It looks like this:
As mentioned before, this package contains piCorePlayer and LMS. For our purpose we are only interested in LMS, so i will go straight to the point and will not inclued piCorePlayer in this tutorial.
Go to the bottom of the page and select the tab called "beta". This will allow you to access settings that otherwise you would not see:
then return to the top of the page and go to the LMS tab.
5.4 Install LMS
The first thing to do here is to install LMS. Press "Install LMS"
The installation will not work, instead, you will be asked to create a partition and to select the size of said partition. Select 300 Mb. The partition will be created.
After this you might be requested to reboot. Do so.
Then you can press again "Install LMS" and this time it will work.
When finished, you will see a lot of new buttons. Press "Start LMS"
5.5 Create a squeezebox account (edit: See @somebodyelse post #8 if you prefer not to create a squeezebox account)
This is the most peculiar part of all this. Believe it or not, in 2022, several years after logitech abandoned all this, you can still create a LMS account. What is more, you must do so to use it. Don't ask me how this is possible, but it is, and of course it is for free and you don't need to own any Logitech device.
Still in the LMS tab, press "LMS webpage"
And it will bring you to the login website of LMS. There you can create an account (clicking the selfexplanatory "I need to create a mysqueezebox.com account") and get your credentials. With them, you can enter the LMS control website.
Once in, you will need to pass a series of tabs that ask you to select where is your music etc. You can just skip all of them as they are not necessary for this project, and you will get to the LMS main page. It looks like this:
Once here, you need to go to "settings" at the bottom left corner and you will see several tabs. Go to the one called "plugins"
5.6 Wavinput plugin
Here you need to activate the plugin that allows to capture the analog in signal, it is called wavinput. Just select it and click "apply" in the lower right corner. If you intend to stream the analog signal to other upnp streamers (i.e. volumio, moodeaudio, your tv, etc.) you can do it if you activate as well a second plugin called "UPnP bridge".
You will need to reboot after activating the new plugins.
5.7 Set up the analog input as a favorite
In the main LMS page, go to favorites, and clicking on the pencil icon you can create a favorite. It only asks you for a name, and you can call it as you want, i.e. turntable, and an URL. The URL field MUST be wavin:default
And that's it, when you "play" this favorite you created, you will be playing the signal it is getting as an audio input from the analog source of your USB card.
6 Setting up the USB soundcard.
As explained at the beginning, you can use different USB cards with line or phono inputs. If you are using the Sound Blaster X-fi HD, you can choose between a line level input (if you already have a phono stage or you are using an analog source with a line level output, i.e. a casette deck or a reel to reel tape) and a phono input (to connect directly to your turntable without using a separate phono stage). I don't find the built in phono stage of the Sound Blaster good enough, but might be worth checking out if you dont want to invest in a separate phono stage.
To select between the two options, you can go use alsamixer.
Alsamixer is a tool you can access from a ssh client. In order to do so, open the Putty app you downloaded at the beginning. You will see a window like this:
here you need to input the IP address of your pi (that you found out before), port must be 22 and connection type SSH. Below these fields you are offered to save these values so that next time you use it don't need to retype them again. However this is not necessary.
When done, press Open and you will access a command window for your pi. You will requested to input a login and a password:
Login as: tc
Password: piCore
you will see this:
then you can type alsamixer, and you will get into the alsamixer window of your card:
It looks like this, very 80s:
As you can see to the right, above PCM capture source, "Line" (line level input) is selected as default. If you want to use the built in phono stage of the card, use your cursor to move to the left and then with the cursor up/down you can select between Line, Phonograph and Mic. Phonograph refers to the phono stage. Select it, press "esc" to exit alsamixer, and in order to make your change permanent when you switch off your system, type:
sudo alsactl store
And basically that's it. Everything should be up and running now. You should be able now to go to favorites, select your analog input, and stream your turntable signal to your piCorePlayer streamer, or if you activated the upnp bridge plugin, you will find your volumio/moode/tv/upnp streamer in the list of players on the top right corner of your screen. You just select the one you want to use, and it will get the signal from your LMS.
If you want to control your LMS from your android smartphone, there are several apps you can choose from. i use Squeezer. It is a very simple app from where you can connect to your LMS and access a simplified version or the LMS GUI, from where you can select your streamer and send your analog signals.
And here you have the result (sorry for the mess, normally all this is hidden behind the shelf). The soundcard is the box sitting on top of the phone stage, the led is not as bright as it seems in the picture. As you can see I have a USB connected to the pi so I can plug, additionally that small 1 TB SSD drive with my ripped CDs to it. This is one of the additional features (actually the main one) of LMS. You can have your music library there too. But I didn't want to include that part in this tutorial in order to keep it as simple as possible.
PS. Latency: my system, as described here, has a latency of ca. 5-6 seconds. It is a lot, but for me it doesn't really matter. I would even prefer to have a longer latency so that i have time, from the moment i drop the stylus on the record, to go and grab my headphones. I don't know if the latency could get reduced if, for instance, you use a raspberry pi 4 instead of the zero. There are some settings that can have some effect in the latency, but i dont think you can make it much shorter.
Note on the Behringer UFO 202: If you are really on a budget and you don't have a phono preamp, this card can be the one for you. It sells regularly for 20 eur and I have seen it in Amazon.com for 10$. You can find it used in ebay sometimes for as little as 5 eur, and to be honest, it works surprisingly well and you have your turntable server all set up for as little as 30-35 eur. An additional advantage of the Behringer is that it has a physical switch to select line in vs phone in, so you can skip the alsamixer part of the tutorial.
That's all folks, enjoy your music and feel free to correct or add whatever you think might be useful. Cheers!
Last edited: