2020년 3월 29일 일요일

T-Wave 제작 #3 - WSG 출력은 스테레오

오디오 출력은 스테레오입니다. 왼쪽~ 오른쪽~ ㅋ

물론 헤드폰잭을 꽂아야 가능하겠구요. 외부 오디오 믹서로 적당하게 밸런스를 맞추시면 되겠습니다.

헤드폰잭이 없으면 모노로 믹스되어 본체의 SOUNDIN 단자로 입력됩니다.


보드는 이렇게 생겼습니다~






오디오 왼쪽 채널은   WSG-L + DCSG-L + SCC-I

오디오 오른쪽 채널은 WSG-R + DCSG-R + SCC-I


SCC-I는 이어잭으로 스테레오 출력을 하더라도 좌우 똑같은 소리가 나와요. 참고하시구요~

DCSG 출력은 다음편에 언급하기로 하고, 오늘은 WSG 얘기만 하도록 하겠습니다.


WSG-L/R은 주파수 배율 및 샘플 파형을 각각 설정합니다.

본체 리셋되면 WSG-L은 x0.5배율, WSG-R은 x1.5배율로 기본설정됩니다.

왼쪽은 한옥타브 낮은 음이 출력되고, 오른쪽은 반옥타브 높은 음이 출력되겠습니다.


본체의 PSG가 모노 3채널, T-Wave에서 왼쪽 3채널, 오른쪽 3채널을 담당하니까 밸런스가 잘 맞습니다.

이리저리 들어보면 스테레오 듣는게 훨씬 재밌네요! ㅎ.ㅎ

XAK 등의 게임은 FM을 메인 BGM으로 쓰지만 PSG도 함께 사용하고 있는데요.

이 경우에도 WSG 화음이 섞이면 꽤 괜찮은 스테레오를 느낄 수 있더라구요. 예상밖의 소리가 나서 깜놀~ㅋ


아래는 오디오 믹서로 녹음된 모습입니다.

왼쪽과 오른쪽 오디오의 음색이 많이 다른걸 볼 수 있죠?





백문이 불여일견이 아니라... 이건 소리를 들어봐야합니다ㅋㅋ

영상으로 보시죠~

스테레오로 녹음되어구요. 몇가지 게임실행 모습과 카라시스2의 노래 두곡을 담아봤습니다.





그럼, 다음편에서 계속됩니다.

즐거운 일요일되세요~ ㅎ.ㅎ/


2020년 3월 8일 일요일

T-Wave 제작 #2 - 화음을 만들어보아요

먼저 WSG 구조를 설명드려야겠죠?

T-Wave에는 WSG 엔진이 두개 들어있구요. 대강 이렇게 생겼습니다~ (그림은 없어요ㅋ)


1) 샘플 데이터는 SCC와 동일한 Signed 8BIT PCM를 사용합니다.

SCC의 1주기(32바이트)으로 동작하는 SCC와는 조금 다른 부분이 있어요.

최대 256바이트(8주기)의 샘플 데이터를 사용할 수 있습니다.

파형이 지속적으로 변하는걸 만들 수 있다는 얘기입니다.


뭐, 데이터 크기를 좀 더 늘리면 간단한 트레몰로/비브라토 효과도 만들 수 있겠지만,

대부분 게임에서는 S/W적으로 효과를 내고 있으니...

어설프게 중복 효과를 넣기보다는 없는편이 더 듣기 좋을 확률이 높습니다.


2) PSG와 동일한 방식의 Noise 합성을 지원합니다.

WSG의 주 목적이 본체의 PSG와 화음을 만드는 것이니 Noise 부분도 있어야되겠죠? ㅎ.ㅎ

실제 구현해서 들어보니 Noise 처리가 없을 때는 상당히 어색하더라구요.


3) 기본 레지스터는 PSG와 같은 구성으로 되어있습니다.

이 때문에 화음모드에서는, 기존 S/W를 변형(패치)없이 WSG로 동작가능합니다.

사실 이게 메인 기능이죠. PSG 포트로 함께 동작하는 화음모드~ ㅎ.ㅎ


4) 전체 주파수 비율을 조절하는 기능과 최종 출력 Gain을 조절할 수 있습니다.

주파수 조절은 화음을 만들 때 필수겠죠?

PSG 톤의 2/8배수부터 16/8배수까지 1/8배수 단위로 주파수 조절이 가능합니다.

WSG 2개를 각각 다른 배수로 설정할 수 있어요.


5) WSG 2개는 2개의 DAC으로 각각 출력이 됩니다.

3.5파이 이어잭 단자를 쓰면 그대로 스테레오로 들을 수 있어요.

내부적으로는 WSG-L, WSG-R로 이름붙였습니다ㅋ


참고로 이어잭을 꽂으면, 슬롯의 SOUNDIN으로는 출력이 들어가지 않습니다.

이어잭을 뽑으면, 모노로 믹스되서 SOUNDIN으로 들어가게 되겠구요.



대충 어떻게 동작되는지 아시겠죠? ㅎ.ㅎ

설명이 길었으니 그냥 동영상으로 동작 모습을 보시면 되겠습니다.

아직 PCB를 찍은건 아니라서, 기존 MMC/SD V4 두개로 구현한 상태입니다.

현재 사운드 출력은 슬롯 SOUNDIN으로 믹스되서 모노로 들리는데요.

다음주에 이어잭으로 분리해서 한번 녹음해보려고 합니다. (납땜이 귀찮귀찮...ㅋ)



아래 영상에서는 WSG 두개를 화음모드로 동작하는 모습입니다.

WSG 1번은 0.5배 주파수로 설정되어있고,

WSG 2번은 1.25배 주파수로 설정되어있습니다.

샘플 파형은 사인파와 톱니파를 섞어서 사용합니다.


주파수 배율 및 파형 설정은 Switched I/O 포트(40H ~ 47H)로 구현되어 있구요.

실제 보드가 완성되면 외부 스위치(조그 다이얼)로 쉽게 조절가능하겠습니다.


영상에서는 사운드 비교를 위해, 처음에는 본체 PSG 음악(몽대륙)이 잠깐 나오구요.

WSG 화음모드 설정 후에는 끝까지 화음모드로 나옵니다.





혹시 실제 파형이 궁금하신 분이 있을까봐 MP3도 하나 첨부합니다.

몽대륙의 BGM 하나를 일반 PSG 녹음한 것과 WSG 화음모드로 녹음한 파일입니다.

MP3 두개가 들어있어요. 교대로 들어보시면 차이를 확~ 느끼실 수 있겠습니다~ ㅎ.ㅎ

Download: 20200308_WSG_Chord_BGM.zip


그럼, 다음편에서 이어지겠습니다~


2020년 3월 1일 일요일

T-Wave 제작 #1 - 섞어사운드!!

2020년을 맞아, 사운드 카트리지를 한번 만들어보기로 합니다.

생각해보니, 사운드 전용기기의 제작은 이번이 처음인 듯 하네요. ㅎ.ㅎ



[서론]


실기로 듣는 사운드를 좋아하시나요?


제 경우는, 주변기기가 없던 시절에는 GT에 SC-88 연결해서 MIDI 감상이나 하는 정도였구요.

사실 이건 실기의 소리라고 하긴 좀 그렇네요. 그냥 롤랜드 사운드캔버스의 소리?ㅋ


고속의 디스크 환경(MMC/SD V1)이 되면서부터, 실기로 사운드를 많이 즐기게 되었습니다요.

그 때부터 주변기기도 하나둘 늘어나기 시작됐구요.


근데 주변기기들이 다 채워지고 나니까, 뭔가 오리지널(PSG, FM)이 아닌 소리들을 주로 듣게 되더라구요.

최근 십여년동안 주로 듣던걸 떠올려보니, MP3, OPLx 음악(VGM, IMS 등)들이군요.

아무래도 PSG, SCC, FM(OPLL) 쪽은 오랫동안 들어왔으니까 그런게 아닐까 싶기도...ㅎ.ㅎ


그리고, MMC/SD V4가 나온 후로는 PSG2SCC 기능으로 게임을 하거나, MV 동영상도 많이 본 것 같습니다.

.

.

.

그러다가 문득 생각이 들더라구요. '사운드 카트리지를 한번 만들어볼까?'



[본론]


뭔가 새로운 기기를 만들게 되면 늘~~~ 한가지 문제에 부딛히게 됩니다.

'닭이 먼저냐? 알이 먼저냐?'


S/W가 없는 H/W는 쓸모가 없죠. 맞나요?

물론 H/W가 없으면 S/W를 만드는 사람도 없겠죠. ㅎ.ㅎ;


그럼 이 문제를 어떻게 해결하느냐? H/W와 S/W를 한사람이 다 만드는거죠ㅋ

근데 사운드 쪽은 좀 문제가 있어요.

제가 소리를 듣는건 좋아하지만, 트래커로 곡을 만들거나, 아님 트래커 S/W를 만들거나... 그런적은 없었거든요.


--> 결론: 완전 새로운 기기를 만들면? 본인도 쓰지못함ㅋ



사실, 사운드 카트리지 만들 생각을 하게 된 이유는 V4의 PSG2SCC 기능때문입니다.

이걸 실제로 써보니 재밌더라구요. 아마 써보신 분은 별로 없겠...죠?

그래서 '본체의 PSG와 연동하는 전용의 카트리지를 만들자'라는 생각으로 시작이 되었습니다.

기존 S/W를 그대로 쓸 수 있으면 쉽게 활용이 가능하니까요.


그럼, 몇가지 생각들을 정리해봅니다.


1. PSG 도우미를 만들자.

   - PSG로는 불가능한 사인파, 톱니파 등의 다양한 파형을 섞어보자.

   - 파형뿐만 아니라 주파수 조절로 화음도 구현. (장3화음으로?)

   - 칩 컨트롤은 포트 I/O를 사용.


2. 부가 사운드도 넣으면?

   - SCC-I 사운드(메모리 128KB) 추가. SCMD 및 보이스패치 게임롬 활용. (V3 친구도 환영)

   - 듀얼 DCSG 추가. VGMPlay 및 SG-1000 롬 활용.



일단 MMC/SD V4 보드를 이용해서 기본기능을 만들어보니, 6채널의 PSG 도우미와 SCC-I는 구현이 가능하네요.

CPLD 용량이 모자라면 노이즈 채널을 줄여야할 가능성도 좀 있긴합니다.


그럼, 이쯤에서 카트리지의 이름을 정해야겠죠? 사실 이름 정하는게 젤 힘듭니다요~

'T-Wave'라고 지어봅니다. 세가지 사운드 - Triple Wave 정도로 생각하시면 되겠습니다.


그리고, 새로 제작되는 PSG 도우미 엔진은 WSG라고 이름을 붙였습니다.

Wave Sound Generator 일까요? ㅎ.ㅎ;



[요약]


사운드 카트리지 T-Wave를 제작합니다.

Triple Wave! 3종류의 사운드를 사용!


1. WSG:   본체의 PSG와 화음을 내는 6채널 사운드 엔진 (다양한 샘플 파형 지원)

2. SCC-I: 코나미 SCC-I 카트리지 호환 (메모리 128KB)

3. DCSG:  듀얼 SN76489AN 칩 내장



그럼, 오늘은 여기까지이구요. WSG의 구조는 다음편에서 이어지겠습니다~