-
vvvv gamma : Audio React / week5Graphics/VVVV gamma 2023. 11. 16. 23:02
지난번에 Audio 관련된 프로젝트를 개인적으로 만들었었는데, 이번에 조금 더 구체적으로 배웠다.
이런 형태인데 오디오의 크기에 반응하여 주전자(Teapot)의 크기가 변한다.
또한 일정 볼륨이 넘어가면 파란색에서 분홍색으로 색이 바뀐다.
전체적은 패치는 위와 같다.
AudioPlayer를 통해 오디오 파일을 불러와준다.
이미지 파일과 마찬가지로 맥에서 불러올때에는 맥 경로가 아닌,
윈도우 경로를 통해 불러와주어야 경로 이탈 문제가 생기지 않는다.
AduioPlayer는 AudioOut과 연결되어야 소리가 들린다.
ToMono는 지금 오디오가 좌우 사운드를 다 가지고 있는 스테레오 타입이므로
편리한 오디오 데이터 사용을 위해 모노로 바꿔주는 과정이다.
또한 Meter 노드도 상당히 생소한데 Help창의 설명에 따르면 "Carculates the maximum dB of an audio signal."이라 나와있다.
간단하게 데시벨을 계산해주는 노드라고 이해하면 될 것 같다.
이와 같이 노드들이 연결되어 있어야 오디오 데이터의 소리를 듣고, 이 데이터를 받아오는 과정이 완성된 것이다.
받아온 오디오 데이터 값이 0.0xxx로 너무 작기 때문에 20정도 곱해주었다.
그리고 이를 Teapot의 Scale를 결정하는 UniformScale 노드의 Scaling 인풋과 연결했다.
UniformScale : (in) - Input(Matrix), Scaling(Float32),
(out) - Output(Matrix)
크기가 부드럽게 애니메이션으로 바뀌도록 사이에 Damper 노드를 추가한다.
UniformScale 노드 대신 TransformSRT와 Damper(3D)노드를 사용해도 된다고 한다.
Rotate 부분은 Vector(join)과 LFO를 활용하여 X축과 Z축으로만 회전하도록 했다.
이제 색이 바뀌는 부분을 살펴보자.
TogEdge와 Toggle의 조합은 상당히 유용하게 자주 쓰일 것 같다.
먼저 Merter에서 받아온 값에 조건문을 붙였다.
오디오 데이터 값이 0.10이 넘을 때, true를 반환한다.
그 다음, Boolean 값은 MonoFlop 노드에 들어간다.
MonoFlop : (in) - Set(Boolean), Time(Float32), Retriggerable(Boolean), Reset(Boolean)
(out) - Value(Boolean), Inverse Output(Boolean)
=> 이름과 달리 사운드와 큰 연관은 없는 것 같다.
Time 마다 한번씩 들어온 set값을 확인하여 True나 False 값을 value로 반환한다.
또한 Inverse Output 값에는 반대 값이 반환된다. (value가 true면 true, false면 false.)
이 패치에서는 MonoFlop이 0.5초마다 값을 확인하고 true 또는 false를 반환하고 있다.
Time을 설정하여 원하는 시간마다 한번씩 값을 확인할 수 있다는게 MonoFlop 노드의 큰 장점이라는 생각이 든다.
그 다음 TogEdge와 Toggle 부분이다.
TogEdge : (in) - Value(Boolean),
(out) - Up Edge (Boolean), Down Edge (Boolean)
=> value가 False에서 True로 바뀌는 순간, Up Edge 아웃풋이 true를 반환한다.
반면 Down Edge는 True에서 False로 바뀌는 순간 아웃풋이 true를 반환하는 것으로 보인다.
TogEdge는 순간적인 변화를 감지하는 것이기 때문에
Toggle 노드가 스위치같은 역할을 한다. 특정 볼륨보다 높을때마다 True에서 False로, False True로 값이 바뀌도록 한다.
Toggle : (in) - Filp (Boolean)
(out) - Boolean
MonoFlop, TogEdge, Toggle의 조합은 매우 자주 쓰일 수 있을 것 같다.
지금 당장 모든 작동원리를 이해하기는 어렵지만, 자주 쓰면서 익혀보자!
마지막으로 Switch를 연결해 Toggle을 통해 값이 Flip 될때마다 색이 바뀌도록 하고,
PBRMaterial에 적용해 마무리해준다.
'Graphics > VVVV gamma' 카테고리의 다른 글
vvvv gamma : Audio Visualization (with FFT) #2 / week5 (0) 2023.11.20 vvvv gamma : Audio Visualization (with FFT) #1 / week5 (2) 2023.11.19 vvvv gamma : SimplexNoise와 UI / week4 (1) 2023.11.13 vvvv gamma : Stride Sphere와 연결된 Line 만들기 / week4 (0) 2023.11.10 vvvv gamma : Definitions 활용하기 / week4 (0) 2023.11.08