지난번에 소개한 자작 기타 멀티이펙터. 7월 한달정도 방치해뒀다가, 최근 진척이 많았음.
우선 5월 시점에 여기까지 만들어졌었다.
이 시점에서 이 기계 이름은 뽁스 (백작부인 안), Pitone-stomp (Pistomp라는 유사 프로젝트가 있어서 좀 켕기는 작명) 등등이 경합하고 있었음. 매일 밤마다 어떤 이름이 좋을까 고민하다가 밤을 새워버린 적도 있을 정도로 과몰입하고 있었다.
다만 만들고 나니 생각보다 플라스틱 케이싱 안에 열이 쌓인다 + 디자인이 후지다…라는 점 때문에 바로 해체하고 v2를 준비함.
알리엔 정말 별게 다 있어서.. 콘솔 제어반용 철제 하우징 같은 물건도 팔고 있더군요. 처음엔 격투게임 스틱용 철제 하우징같이 납작하고 넓은 하우징을 알아보고 있었는데 결과적으로 더 적절한거 잘 가져온듯 하다.
그리고 고민끝에 맘에 드는 제품명도 떠올릴 수 있었다. GCaMP는 요새 신경과학 연구할 때 쓰는 혼종 단백질인데, 뇌세포 안에 발현시키면 세포가 활성화 될때 형광을 띄는 물질이다. 뇌에다 작은 내시경같은거 삽입해두면 동물이 특정 행동을 할 때 나타내는 뇌세포 활성 패턴을 관찰할 수 있는 것이다. 제일 대중화된 버전이 6고, 현재는 8까지 나왔다고 함.
거기서 이름을 빌려다가 General Computational amp Modeling Processor라고 이름을 붙임.
여하튼 이제 저 풋스위치로 프리셋 변경/조절하는 코드 짜 넣으면 끝…이라고 생각하는데, 좀처럼 진도가 잘 안나감.
처음엔 프리셋을 불러왔을 때 각각의 이펙터가 켜졌는지 꺼졌는지 확인만 하고, 그 상태를 풋스위치에 반영하는 한편, 현제 로딩된 이펙터의 목록이 뭐인지 읽어와서 풋스위치에 각각 매칭하는 코드가 필요했는데, 이걸 하려고 이펙터 소프트웨어 코드도 뜯어보고, 원활하게 web ui 상태를 읽어오려고 내가 짠 코드도 심어보고 하다보니 점점 원하는 기능이 늘어나게 된 것임…
최종적으로는 플러그인 배치 등의 편집만 원래 웹ui가 담당하게 되고, 현재 페달의 각종 수치 조절이나 on/off 상황 표시는 따로 간단한 ui 프로그램에서 이루어질 수 있게 하고 싶다는 것이 현재 새로 설정된 목표임.
이하는 몇가지 노트.
- footswitch/LED 조절을 위해 I2C GPIO 확장 모듈로 처음엔 PCF8574를 썼는데, 내가 알리발 짭만 사서 써서 그랬는지는 몰라도 신뢰성있게 동작을 안한다. 자꾸 고장나고. MCP23017로 옮긴 다음에 문제가 해결됨.
- PCF8574는 input output 모두 지원한다고 하지만 실질적으로는 voltage sink인 output모드만 존재함. input 모드는 output high인 상태에서 핀 전압을 읽어서 ground이면 인풋이구나 하고 읽는 방식임. 인터널 풀업이 있는건지 없는건지도 모르겠고, 풀업저항을 달아줘도 풀업이 잘 안되는 느낌이었음. (이건 내가 회로를 잘 못짜서 그럴수도 있으나.. 여튼 피곤)
- MCP23017은 정식으로 인터널 풀업여부 조절 가능한 input과, voltage drive/sink 모두 가능한 output이 지원됨. 다만 A채널과 B채널 7번 핀에 버그가 있어서, 값을 읽는 중에 상태가 변하면 칩을 리셋하기 전까지 바보가 된다고 함. 따라서 입력용 핀으로는 사용하기 어려움. 내 경우 스위치가 4개니까 해당 문제는 피해갈 수 있었다. 오래전에 발견된 문제고 유명한 문제지만 여튼 참고바람.
- 풋스위치 입력이 두+개가 짧은 시간 내에 들어왔을 때, 소프트웨어 디바운스 로직에 따라 인터럽트를 한번만 읽는 경우가 잘 생김. 근데 MCP23017 인터럽트는 읽히기 전까지는 상태가 그대로 유지됨. 따라서 이후로 발생하는 인풋에 대한 인터럽트가 씹히는 문제가 있음. 결국 내 경우 인터럽트 방식으로 로직을 짜는걸 포기하고 폴링 하기로 함.
답글 남기기