작성자: nakwonelec

스테레오 믹스처럼 원하는 소리만 추출하여 방송프로그램으로 전달하기

예전에는 윈도우에서 재생되는 소리중 일부만을 스테레오 믹스에 넣으면 녹화프로그램 등에서 가져와다 쓸 수 있었는데 요즘은 안되는 것 같습니다.
그래서 별도의 프로그램을 사용하여 데스크탑에서 재생되는 모든 소리가 아닌 일부 소리만 캡쳐할 수 있는 방법을 알려드리고자 합니다.

https://www.vb-audio.com/Voicemeeter/ 에서 Voicemeeter EXE file을 다운받습니다.

다운받은 프로그램을 실행시키면 설치 화면이 나옵니다. ‘Install’을 클릭합니다.

설치가 다 되면 컴퓨터를 재부팅하라는 문구가 나옵니다. 닫고 컴퓨터를 재부팅해줍니다.

사운드 장치를 보면 VoiceMeeter Input이라는 출력장치랑 VoiceMeeter Output이라는 입력장치(Input과 Output을 반대로 적은 것이 아닙니다)가 보입니다.

이제 ‘바탕화면 오른쪽 하단 작업표시줄의 사운드 아이콘 오른쪽 클릭 -> 소리 설정 열기’ 또는 ‘설정->시스템->소리’에 있는 소리으로 들어갑니다.

소리 설정에서 아랫쪽에 있는 ‘고급 사운드 옵션 -> 앱 볼륨 및 장치 기본 설정’으로 들어갑니다.

여기서 사운드를 분리하고자 하는 프로그램의 출력을 ‘기본값’에서 ‘VoiceMeeter Input’으로 변경합니다.

그럼 이상태에서는 그 프로그램의 소리는 안들려야 정상입니다. 만약 들린다면 그 프로그램을 껐다 켜주세요

만약 껐다 켰는데도 안된다면 프로그램이 사운드 장치를 설정할 수 있는지 확인합니다.

그런 것 조차도 없다면, 프로그램을 실행하기 전에 시스템의 기본 출력장치를 VoiceMeteer로 변경하고 프로그램을 실행한 뒤 다시 원래 출력장치로 바꿉니다.

프로그램 실행 전에 재생 디바이스를 VoiceMeeter Input으로 변경
프로그램을 실행한 다음 원래 사용하던 재생 디바이스(여기서는 스피커(Realtek …))로 변경

소리가 정상적으로 설정되었는지 확인하려면 볼륨 Mixer를 띄워서 장치를 VoiceMeteer로 변경하신 다음 확인해보시면 됩니다. 프로그램간 소리 크기도 여기서 조절하시면 됩니다. Mixer를 사용하고 난 뒤에는 기본 재생장치를 원래 장치로 돌려놓으셔야합니다. 이상태로 쓰시면 그 이후에 실행되는 프로그램들이 전부 VoiceMeeter로 출력을 할 껍니다.

이렇게 분리된 사운드를 방송 프로그램에서 사용하려면 각종 프로그램에서 마이크/보조/입력 장치에서 VoiceMeteer Output를 선택하면 됩니다.

OBS기준으로 마이크/보조 오디오 2에 VoiceMeeter Output을 설정해두었고 OBS의 오디오믹서에서 정상적으로 사운드가 들리는지 시각적으로 확인해봅니다.

이렇게 사운드를 다른 장치로 돌리면 이걸 컴퓨터로 직접 듣고 싶다할때는 VoiceMeeter를 실행해줍니다.

그리고 Engine 로딩이 끝난 후 HARDWARE OUT에 A1을 클릭하고 WDM으로 시작하는 원래 사용하던 사운드 출력장치를 선택합니다. 그러면 VoiceMeeter Input으로 사운드가 출력되게 설정한 프로그램의 소리도 데스크탑에서 들을 수 있습니다.

이렇게 설정해두시면 OBS에서는 데스크탑 사운드는 꺼두셔야합니다. 아니면 소리가 두번 들립니다.

OpenTTD mac static compile

https://wiki.openttd.org/Compiling_on_Mac_OS_X 공식 웹사이트에 컴파일을 한 파일을 배포하면 개발과 상관없는 사람이 실행했을 때 ‘문제가 있기 때문에 OpenTTD을(를) 열 수 없습니다.’ 라는 오류가 발생했다고 뜨는 현상이 발생한다. 이는 거의 대부분 실행에 필요한 라이브러리가 설치되어 있지 않기 때문이며, 컴파일할 때 –enable-static 옵션을 주어도 필요한 라이브러리 중 일부가 바이너리 파일(실행 파일)에 포함되지 않기 때문에 발생하는 오류이다. 오류가 발생했을 때 리포트를 클릭하고 세부사항 보기를 누르면 Dyld Error Message에 Library not loaded에 표시된 파일을 읽어올 수 없다고 표시가 뜰 것이다. 정확한 이유는 모르겠지만 일부 아리브러리 중에서 static으로 컴파일 할 수 없는 라이브러리가 있어서 그런 것이라 파악되고 이러한 라이브러리를 직접 컴파일 한 후 OpenTTD를 컴파일 할 수 있는 방법을 소개하고자 한다.

계속 읽기 “OpenTTD mac static compile”

ESXi Let’s Encrypt auto renewal in ESXi host

It show How to auto-renewal “Let’s Encrypt” certificate in ESXi host. When I search, I can find a method in case that a site is received DNS service from AWS Route 53.1) But, there is no way to renewal Let’s Encrypt certificate in ESXi host itself.  So, I wrote this article.

If you find Korean lecture, please visit ‘ESXi Let’s Encrypt 자동 renewal

계속 읽기 “ESXi Let’s Encrypt auto renewal in ESXi host”

ESXi Let’s Encrypt 자동 renewal

ESXi 호스트에서 Let’s Encrypt를 자동으로 renewal 하는 방법이다. 지금까지 살펴본 결과 AWS Route 53를 통하여 DNS 서비스를 제공받는 경우에는 방법이 있으나1) 그 외의 경우에는 ESXi 호스트 자체적으로 Let’s Encrypt 인증서를 생성하고 renewal 하는 방법이 없어 강좌를 작성한다.

If you find english lecture, please visit ‘ESXi Let’s Encrypt auto renewal in ESXi host

계속 읽기 “ESXi Let’s Encrypt 자동 renewal”

유니티 게임의 한글화와 패치 제작 – 폰트 엔진(플러그인) 소개(미완성)

유니티 게임에서 화면에 나오는 모든 오브젝트는 GameObject로 존재한다. 화면에 표시되는 글자도 마찬가지로 하나의 GameObject로 이루어져있고 GameObject의 컴포넌트인 MonoBehaviour에 글자를 어떻게 출력할지 기술되어있다. 그리고 Text GameObject에서 사용되는 폰트는 별도의 GameObject(또는 MonoBehaviour 단독)로 만들어져있다. 그 외에 Sprite를 Text와 혼용해서 사용하는데 보조를 해주는 것 같이 글자 출력과 관련된 작업을 도와주거나 맡아서 하는 것을 폰트 엔진이라 부른다.

글자가 출력될 때 어떠한 과정을 거치는지, 유니티 엔진에서 통상적으로 사용하는 폰트 엔진은 무엇이 있는지, 해당 폰트 엔진을 사용한 게임을 빌드하면 어떤 결과가 나오는지를 알아보고자 한다.

계속 읽기 “유니티 게임의 한글화와 패치 제작 – 폰트 엔진(플러그인) 소개(미완성)”

유니티 게임의 한글화와 패치 제작 – 유니티 에셋의 Serialization

유니티 엔진이 프로젝트를 빌드하면 에셋들은 일정한 규칙대로 assets 파일들에 합쳐진다. 이때 각 에셋들은 유니티 엔진에 기술된 방법대로 Serialized 된다. 에셋의 Dump를 추출할 수 있고, 이를 수정하는 것이 편리하나 특별한 이유에 의해 에셋의 Raw 파일이 필요할 때가 있다. 에셋의 Raw 형태에서 특정한 변수의 값을 확인, 수정하기 위해서는 유니티 엔진의 Serialization에 대해 알아보도록 한다.

계속 읽기 “유니티 게임의 한글화와 패치 제작 – 유니티 에셋의 Serialization”