카테고리 없음

라즈베리파이 Audio Play Station 만들기 (feat. moOdes)

파란풍선타고 2022. 2. 15. 16:47

Intro

  • 라즈베리파이를 HiFi음악용 소스플레이어(musicBox, mBox)로 사용하는 것을 목표로 한다. 최근의 상황은 미디어 소스, 특히 음악 소스들 형태는 Digital이고, Digtal인 상태로 취급되며, 이 음악 소스를 Analog로 변환하여 사용하는 방식이다.
  • HW부분의 핵심인 DAC을 좋은 것을 사용하는 것이 좋은 음질의 소스를 만드는 가장 중요한 부분이다. 사용할 DAC은 라즈베리파이에 기본 내장된 DAC의 Audio Out을 사용해도 되지만, I2C HAT방식으로 라즈베리파이에 AddOn되는 별도의 HiFi전용 DAC HW를 사용하고, 이 DAC의 Audio Out을 앰프의 Line In으로 구성하여 사용하는 방식으로 구성한다.
  • SW부분의 핵심은 음악 소스들을 취급하여 Play하고, 그 음악 스트림을 DAC으로 보내어 출력하도록 DAC을 잘 활용하는 Player가 필요하고 좋은 Software가 중요하다.
  • 필요한 것
    • 라즈베리파이: 2B,3B,4B (2B로도 잘 된다. 물론 2B에서는 WiFi 동글만 잘 추가하면 된다.) 라즈베리파이를 위한 microSD(min. 4GB, require 8GB<), Keyboard/Mouse, Monitor, UTP, 전원 등등은 알아서 준비한다.
    • DAC HAT Hardware: 라즈베리파이에 AddOn되는 HiFi Audio를 전담할 DAC
    • Audio Station Software: moOde Audio

mBox를 위한 HiFi Audio용 I2C HAT 들

라즈베리파이의 I2C인터페이스로 AddOn되는 Audio용 HAT들은 그 종류가 약 70여 종으로 무척 많지만, 가장 유명한 것은 IQAudio DAC제품과 HiFiBerry DAC제품인 것 같다. 다른 글을 참고해 보니, 전통적 강자는 Allo사의 제품들이었던것도 같지만, 현재 유행하는 것으로 준비하여 진행해 본다.

비교해 볼 요량으로 2개의 DAC(IQaudio DAC Pro, HiFiBerry DAC2 Pro)을 구매하였으나, 완벽한 비교 환경을 만드는 것은 요원하므로, 간이로 막귀 테스트를 해본 결과, 2개 모두 라즈베리파이(라즈베리파이 내장 Audio) 또는 PC(PC내장 Audio)보다는 훌륭하다. 그리고, Apple제품을 소스기기로 사용하는 것보다는 낫다고 심리적 위안을 가져본다.

2개의 DAC을 사용해본 결과, IQAudio DAC Pro도 훌륭하지만, HiFiberry DAC2 Pro가 조금 더 나은 제품인 것 같은데, 비싼게 좋은 것이라는 플라시보인지도 모른다. 이참에 2개 제품의 사용 소감을 잠깐 나열해 본다. 음향, 음질에 대한 부분은 어차피 주관적 영역이고, 개인적으로 그것을 구별하는 능력이 되지 않으므로, 주관적 느낌만 나열해 본다.

  • PCM5242를 사용하는 IQaudio DAC Pro도 라즈베리파이 자체의 출력보다는 훨씬 훌륭하다.
  • HiFiberry DAC2 Pro의 3.5mm Phone단자는 RCA단자보다 출력 볼륨이 작다. RCA단자 사용이 권장된다.
  • IQaudio DAC Pro보다. HiFiberry DAC2 Pro가 약간 출력 볼륨이 더 크고, 음향적 느낌이 더 섬세하게 느껴 진다.

HiFiBerry: my HiFiBerry DAC2 Pro, $44.90

IQAudio: IQaudio DAC Pro, $28.00

가장 유명한 것은 IQAudio 제품이며, TI의 PCM5122 또는 PCM 5242(PCM5242가 조금 더 낫다고는 한다.)가 가장 일반적으로 사용된다.

IQaudio는 2015년 설립된 독립된 회사였으며, 그 제품이 무척 인기가 많았던 것 같다. Raspberry는 자신들의 전략 로드맵의 Audio부분을 채우기 위해 2020년 iQaudio를 인수했다고 함. [해당기사]

  • IQaudio DAC+ : 24bit 192kHz : [rPi Page] : TI PCM5122 DAC, on GPIO at rPi 1,2,3,4
    • support headphono/RCA line level output (0~2Vrms) w/headphone
  • IQaudio DAC Pro : 24bit 192kHz : [rPi Page] : TI PCM5242 DAC, on GPIO at rPi 1,2,3,4
    • support phono/RCA line level output (0~2Vrms) w/headphone
    • (opt. spin-model) supports XLR balanced/differential output in parallel (0-4Vrms)
  • IQaudio DigiAMP+ : IQaudio DAC+, DAC Pro에 외부증폭기(TI TAS5756M) 포함. 35W구동
  • IQaudio Codec Zero : for Raspberry Pi Zero, Dialog Semicondictor DA7212 DAC

mBox를 위한 Audio Station Software들

여러 Software중, 아래의 2개가 가장 유명하다. 과거 Volumio가 더 유명했던 것 같은데, moOde가 무료&기부 방식으로 바뀌고, Volumio보다 몇몇 기능의 장점들이 나오면서, 최근은 대부분 moOde를 사용한는 것 같다.

라즈베리파이의 Raspbian을 다운로드 받아 microSD에 Imager로 Writing하여, 라즈베리파이를 부팅하여 사용하듯이,해당 Software는 제작사의 홈페이지에서 다운로드 받아 microSD에 Imager로 Writing하여, 이것으로 라즈베리파이를 부팅하여 사용한다.

moOde, volumio이외에도 다른 Software들이 있다.

  • foobar2000
  • ...

라즈베리파이에 moOde Audio설치하기

  • Last Release: 7.61 at Jan 2022
    • 74 addon devices, 226 radio stations
  • Key Features:Radio, Folder, Tag and Album viewsRadio view with sort/group and metadataSelective resampling and SoX recipes12-band Parametric EqualizerCrossfeed for Headphone listeningAuto-shuffle Track or Album modeAirplay, Spotify, Squeezelite, RoonBridgeMiniDLNA UPnP A/V media serverQobuz and Tidal access via UPnPWiFi Access Point (AP) ModeNetwork scan for easy WiFi connection64bit driver support for Allo USBridge SIGIn-Place Software updates
  • Backup/Restore Manager and Auto-config
  • Connect to other moOde™ players
  • Samba scan for easy NAS connection
  • Local Touchscreen or HDMI display
  • UPnP browser with folder scan
  • UPnP media renderer for MPD
  • Bluetooth with w/SBC XQ CODEC
  • CoverView full screen UI for Album Art
  • 10-band Graphic Equalizer
  • CamillaDSP with Pipeline editor
  • Multiroom synchronized audio
  • Advanced Library search/filtering engine
  • Adaptive UI version 7
  • 해당 이미지를 microSD에 Write하려면, RaspberryPi Imager툴이 필요하고, 이것은 라즈베리파이 사이트에서 얻을 수 있다: https://www.raspberrypi.com/software/
    • Imager로 microSD에 설치할 때, 옵션(Command+Shift+X)을 선택하여, 암호, 호스트이름, SSH등의 설정을 미리하고 설치를 진행 할 수도 있다.
  • moode 처음 설치, 라즈베리파이 가동 후의 ID/Password : pi / moodeaudio

moOde Audio가 설치후, 기본 설정하기

(1) 라즈베리파이의 IP Address 알아 내고, 고정하기

처음 할 일은 해당 라즈베리파이에 할당된 IP를 알아내는 일이다. 웹브라우저로 첫 접속 이후, 다시는 첫 화면으로 접속되지 않는 경우가 있을 수도 있으므로, 가장 먼저 할 일은 라즈베리파이에 할당된 IP를 알아내는 것이다

  • (방법1) 초기에는 라즈베리파이의 Wifi가 설정되어 있지 않을 것이므로, 집에서 사용중인 AP에 UTP를 연결한다. 그런 이후, PC에서 웹브라우저로 http://moode.local/로 접속하여 첫 화면을 접속한다.
    • 여기에서 우측 상단의 “m” > Network 에서 Ethernet에 할당된 IP를 확인한다. (아마도 AP에서 DHCP로 할당한 IP이다.)
    • moode.local로 접속이 잘 되지 않는다면, 결국 라즈베리파이를 껐다가 다시 켜서 접속해 보아야 한다. 이런 삽질을 하지 않으려면 라즈베리파이의 IP를 반드시 알아 놓는다.
  • (방법2) 방법1로 안된다면, 라즈베리파이에 연결해 놓은 AP에 접속해서 현재 AP에 접속되어 있는 단말들 중에서 라즈베리파이를 찾고 해당 라즈베리에 할당된 IP를 찾아야 한다.
    • 라즈베리4B 라면, MAC은 E4:5F:01로 시작하는 주소일 것이다.
    • 라즈베리2B 라면, MAC은 1C:BF:CE로 시작하는 주소일 것이다.

라즈베리파이에 할당된 IP를 알았다면, 이제 부터는 이 IP를 사용하여 moOde에 접속하여 사용한다.

해당 IP는 AP에서 할당된 DHCP이므로, AP에 Static으로 IP가 할당되도록 설정하여, DHCP이지만, IP가 바뀌지 않도록 한다. 가능하다면, 라즈베리파이에서 고정된 IP를 할당해 줄 수도 있다. (이 이상의 설명은 리눅스, tcp/ip Networking관련 내용이므로 라즈베리파이의 네트워크 설정관련 정보를 찾아봐라)

(2) 라즈베리파이 WiFi설정하기

웹브라우저로 moOde에 접속하여, m(웹화면 우측상단) > configure > Network에서 아래 왼쪽처럼 Wireless(WiFi)설정을 하고, 최종 “Save”하여 반영 한다. 해당 설정은 Reboot을 하여야 적용 된다.

moOde를 탑재한 라즈베리파이의 Reboot는 m > Power > Restart 하거나, ssh 터미널로 접속하여 아래 명령으로 Reboot한다. Reboot후, 위의 오른쪽 처럼 그 내용을 확인 할 수 있다.

$ sudo reboot

이제 UTP 유선으로 연결된 IP가 아닌 WiFi 무선 IP로 moOde 라즈베리파이에 접속할 수 있다.

(3) moOde 기본 설정하기 #1

moOde에서 기본적인 설정들을 진행한다. moOde는 설정을 변경하면, 항목 옆의 “SET” 또는 설정화면에 있는 “SAVE”를 눌러 그 설정된 내용을 반영하여야 한다.

  • m > Configure > System: Timezone: Asia/Seoul
  • (opt.) m > Configure > Local Display: Local UI Display: ON
    • 라즈베리파이에 연결된 Display에서 moOde 화면을 사용하려면 ON
  • (opt.) m > Configure > Local Services: SSH term server: ON
    • 웹브라우져에서 ssh터미널을 직접 접속하는 방식을 사용하려면 ON
  • m > Configure > Audio > I2S Audio Device: Named Device:
    • 나에게 맞는 Device를 고른다. 내가 구매한 IQaudio DAC Pro, HiFiberry DAC+ Pro도 옵션에 있으므로 맞는 것을 골라서 설정한다. 설정은 Reboot되어야 반영된다.
    • Named Device가 아니라, DT Overlay에 설정하여도 된다. 둘의 차이는 따로 알아보아야 할 것이다.
  • m > Configure > Audio > ALSA Options: Output mode: Direct (hw)
    • 일단은 “Direct (hw)”로 사용하는데, 진정한 차이와 이유는 알아봐야 한다. 특히 zero-pad 알고리즘관련, 외부장치의 샘플링 관련으로 추정됨
    • (default: plughw) zero-pad bit의 삽입 변환을 수행. PCM stream복사본을 제공하기 위해 Loopback device를 software로 만들서 사용하게 된다.
    • (direct: hw) 자동변환을 수행하지 않음. 오디오 장치가 해당기능을 지원해야함. 그렇지 않으면 재생되지 않음. MPD, BT(inbound), Airplay, Spotify renderers, CamillaDSP가 지원한다. Loopback device는 제공되지 않는다. Crossfeed, EQ는 이 설정과 관계없이 작동한다.
  • m > Configure > Audio > UPnP Client for MPD:
    • UPnp로 접속하여 사용할 경우 ON

(4) (opt.) moOde 설정 : 정확히 알고 사용하여야 하는 설정 들, 개인적으로 차이는 잘 모르겠음

  • m > Configure > Audio > MPD Options: MPD settings(MPD config): SoX Resampling
    • DAC이 PCM5122일때만 설정을 적용하라고 원작자는 권고하는데, 더 살펴봐야만 하는 옵션이다.
    • Enabled: Yes
    • Bit depth: Any
    • Sample Rate: 384 kHz
    • Quality: Custom recipe
    • Precision: 32bit
    • Phase response: 50 (or 46)
    • Pasband end: 95 (or 95.4)
    • Stopband begin: 100 (or 104.6)
    • Attenuation: 1
    • Flags: 26
    • Multithreading: Yes
    • Auto buffer size: 20MB
    • Output buffer size: 256MB (or 512MB)

(Library Play) SMB로 NAS의 디렉토리를 moOde의 Library로 연결하기

Network에 존재하는 플레이 하고자하는 음악파일들을 저장해 놓은 저장소에서 라즈베리파이의 moOde가 해당 저장소에 접근하여, 음악파일을 플레이하도록 구성할 수 있다. 대표적으로 Synology NAS같은 저장소에 음악파일을 담아두고, 그 파일들을 라즈베리파이 moOde에 음악앨범 Libarry로 등록하여 놓고, 플레이하는 방식이다.

NAS를 저장소로 연결하는 방법은 SMB를 사용하거나, NFS를 사용하게 되는데, 가장 간단한 방법인 SMB를 사용하여 진행해 본다. 당연히 NAS(여기서는 Synology)에는 음악파일이 저장되어 있는 해당 디렉토리가 SMB로 공유될 수 있도록 설정 되어 있어야 한다.

이제 라즈베리파이의 moOde에서 SMB를 지원하는 NAS의 Mount point를 Music Source로 연결하여 사용하려면, 아래의 설정을 참고하여 설정하고, “SAVE”를 선택하면, 설정 된다.

  • m > Configure > Library > Music Source > CREATE
    • Server > Type: SMB
    • Server > Path: shared directory name on SMB at NAS
    • Server > User ID & Password: SMB ID, passwortd
    • Advanced > Charset: UTF8

설정 반영 이후, 아래의 화면과 같은 내용으로 확인할 수 있다.

이제, m > Configure > Library > Music Database에서 “REGENERATE”를 선택하여, Music Library의 내용을 생성한다. 양이 많은 경우, m메뉴 옆에 Progress Circle이 돌아가게 되는데, 끝날때까지 내버려 두라고 경고하고 있는것에 주의한다.

저장소의 음악파일들이 Scan되어 Library가 Regeneration되면, 아래와 같은 화면을 볼 수 있다.

(Radio Play) 인터넷 Radio Channel(in Korea)을 moOde의 Library로 연결하기

인터넷에 존재하는 Radio의 Live Stream Channel을 라즈베리파이 moOde에서 Library로 등록해 놓고 Radio를 들을 수 있다. 전세계의 유명한 Radio채널들은 moOde에 이미 기본으로 설정되 있다. (Reference Link가 잘못된 것도 일부 있음)

한국내의 Radio Channel사업자들도 마찬가지로 moOde의 Library에 등록하면 사용할 수 있는데, 등록하고자 하는 Radio Channel의 Link(m3u pls URL)을 알아내어 직접 등록하면 된다.

아래는 그 예로서 CBS 라디오 채널의 Stream URL정보이다. 그 외의 라디오 채널들은 인터넷에서 찾아봐야 한다.

(AirPlay Play) iPhone에서 플레이하고, AirPlay로 moOdes로 출력하기

iPhone, iPad, macOS에서 음악파일을 플레이하고, 해당 출력 스트림을 Airplay를 통해 moOdes로 전달하고, moOdes가 해당 스트림을 DAC으로 플레이하도록 하는 방법이다.

라즈베리파이의 moOde에서 Configure > Audio > Audio Renderers > Airplay Renderer에서 아래의 내용을 설정한다.

  • Airplay항목을 ON하고, 적절한 이름을 부여하고 “SET”한다.

이제 iPhone의 기본 음악플레이어에서 음악을 플레이 한다. 아마도, iPhone으로 출력이 나올텐데, 플레이화면 아래쪽의 Airplay로고를 선택하면, 출력으로 선택할 수 있는 moOde를 확인할 수 있을 것이고, 출력을 이것으로 선택하면 된다.

참고로, Air Play설정과 동일한 방법으로 moOde에서 BT를 활성화 하고, iPhone에서 BT를 통해 moOde를 출력장치로 잡아 사용할 수도 있다. 단지, moOde에서 BT설정할 때, “Bluetooth”기능과 이름만 설정하는 것이 아니라, “Pairing Agent”를 ON하여야지만, Pairing기능이 동작한다.

+==