General Computational amp Modeling Processor

지난번에 소개한 자작 기타 멀티이펙터. 7월 한달정도 방치해뒀다가, 최근 진척이 많았음.

우선 5월 시점에 여기까지 만들어졌었다.

기존에 구상하던 치킨상자모양의 하우징을 제작하려니 난관이 너무 많아보여서 기성품 하우징을 이용하기로. (CAD 도면 작성, 3D프린트 혹은 아크릴/철판 절곡 가공 의뢰 등등… 안해본 일/해보고싶지 않은 과정이 너무 많았음)

이 시점에서 이 기계 이름은 뽁스 (백작부인 안), Pitone-stomp (Pistomp라는 유사 프로젝트가 있어서 좀 켕기는 작명) 등등이 경합하고 있었음. 매일 밤마다 어떤 이름이 좋을까 고민하다가 밤을 새워버린 적도 있을 정도로 과몰입하고 있었다.

다만 만들고 나니 생각보다 플라스틱 케이싱 안에 열이 쌓인다 + 디자인이 후지다…라는 점 때문에 바로 해체하고 v2를 준비함.

알리엔 정말 별게 다 있어서.. 콘솔 제어반용 철제 하우징 같은 물건도 팔고 있더군요. 처음엔 격투게임 스틱용 철제 하우징같이 납작하고 넓은 하우징을 알아보고 있었는데 결과적으로 더 적절한거 잘 가져온듯 하다.

그리고 고민끝에 맘에 드는 제품명도 떠올릴 수 있었다. GCaMP는 요새 신경과학 연구할 때 쓰는 혼종 단백질인데, 뇌세포 안에 발현시키면 세포가 활성화 될때 형광을 띄는 물질이다. 뇌에다 작은 내시경같은거 삽입해두면 동물이 특정 행동을 할 때 나타내는 뇌세포 활성 패턴을 관찰할 수 있는 것이다. 제일 대중화된 버전이 6고, 현재는 8까지 나왔다고 함.

거기서 이름을 빌려다가 General Computational amp Modeling Processor라고 이름을 붙임.

여하튼 이제 저 풋스위치로 프리셋 변경/조절하는 코드 짜 넣으면 끝…이라고 생각하는데, 좀처럼 진도가 잘 안나감.

처음엔 프리셋을 불러왔을 때 각각의 이펙터가 켜졌는지 꺼졌는지 확인만 하고, 그 상태를 풋스위치에 반영하는 한편, 현제 로딩된 이펙터의 목록이 뭐인지 읽어와서 풋스위치에 각각 매칭하는 코드가 필요했는데, 이걸 하려고 이펙터 소프트웨어 코드도 뜯어보고, 원활하게 web ui 상태를 읽어오려고 내가 짠 코드도 심어보고 하다보니 점점 원하는 기능이 늘어나게 된 것임…

최종적으로는 플러그인 배치 등의 편집만 원래 웹ui가 담당하게 되고, 현재 페달의 각종 수치 조절이나 on/off 상황 표시는 따로 간단한 ui 프로그램에서 이루어질 수 있게 하고 싶다는 것이 현재 새로 설정된 목표임.

이하는 몇가지 노트.

  1. footswitch/LED 조절을 위해 I2C GPIO 확장 모듈로 처음엔 PCF8574를 썼는데, 내가 알리발 짭만 사서 써서 그랬는지는 몰라도 신뢰성있게 동작을 안한다. 자꾸 고장나고. MCP23017로 옮긴 다음에 문제가 해결됨.
  2. PCF8574는 input output 모두 지원한다고 하지만 실질적으로는 voltage sink인 output모드만 존재함. input 모드는 output high인 상태에서 핀 전압을 읽어서 ground이면 인풋이구나 하고 읽는 방식임. 인터널 풀업이 있는건지 없는건지도 모르겠고, 풀업저항을 달아줘도 풀업이 잘 안되는 느낌이었음. (이건 내가 회로를 잘 못짜서 그럴수도 있으나.. 여튼 피곤)
  3. MCP23017은 정식으로 인터널 풀업여부 조절 가능한 input과, voltage drive/sink 모두 가능한 output이 지원됨. 다만 A채널과 B채널 7번 핀에 버그가 있어서, 값을 읽는 중에 상태가 변하면 칩을 리셋하기 전까지 바보가 된다고 함. 따라서 입력용 핀으로는 사용하기 어려움. 내 경우 스위치가 4개니까 해당 문제는 피해갈 수 있었다. 오래전에 발견된 문제고 유명한 문제지만 여튼 참고바람.
  4. 풋스위치 입력이 두+개가 짧은 시간 내에 들어왔을 때, 소프트웨어 디바운스 로직에 따라 인터럽트를 한번만 읽는 경우가 잘 생김. 근데 MCP23017 인터럽트는 읽히기 전까지는 상태가 그대로 유지됨. 따라서 이후로 발생하는 인풋에 대한 인터럽트가 씹히는 문제가 있음. 결국 내 경우 인터럽트 방식으로 로직을 짜는걸 포기하고 폴링 하기로 함.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

* Copy This Password *

* Type Or Paste Password Here *