2025년 11월 2일 일요일

펜탁스 Q10과 함께 전주 나들이

펜탁스 Q10과 여분의 배터리를 챙겨서 가을의 분위기가 물씬 나는 전주 한옥마을을 다녀왔다. 한동안 잊고 있었던 조작법을 기억에서 다시 되살리는 기분이다. 작고 가벼우니 가방속에 쑤셔넣거나 늘 목에 걸고 다녀도 전혀 부담이 없다. 화면은 크기나 밝기 등 모든 면에서 스마트폰의 그것보다 나을 것이 없다. 밝은 야외에서는 도대체 잘 보이지 않는다. 그렇지만 화면 터치가 아니라 하드웨어 버튼과 휠에 의한 '조작'의 재미가 있으며, 촬영 후 화상에 이리저리 효과를 주면서 즐거움을 더할 수 있다.

"극채색" 효과에 의해서 자동차와 단풍잎의 색조가 잘 대비된다. 집을 떠나기 직전.

중이 제 머리 못 깍는다고, 이것과 바로 다음 사진은 휴대폰을 찍은 것. 찍은 사진을 구글 포토에 옮기고 나서 어느 카메라로 찍었는지 가장 쉽게 확인하는 방법은 종횡비율이다. 4:3이면 Q10, 16:9면 스마트폰. 







예쁜 골목의 모습을 수채화로 그리는 젊은 여성이 있었다.



최명희 문학관 앞에서. 보수 중이라 문을 닫았다.


누군가 잊어버리고 간 물건. 아침까지 내린 비로 젖은 것을 보니 아마도 며칠 동안 이 자리에 있었던 것 같다. 담배가 거의 꽉 차 있었는데...

영화의거리까지 걸어가서 조이앤시네마에서 영화 "빅 볼드 뷰티풀(원제: A Big Bold Beautiful Journey)를 보았다. 넓은 객석에는 우리 부부를 포함하여 단 네 사람밖에 없었다. 영화관의 팝콘이란 원래 쏟거나 남기라고 만든 것.

영화가 끝난 뒤 저녁을 먹고 나서 객사길을 걷다. 야경은 SCN 모드에서 있다는 것을 기억하지 못해서 프로그램 모드에서 -1.3스톱 줄여서 촬영해 보았다.

다음은 동영상 촬영 결과물이다. 쇼츠 형태, 즉 세로 포맷으로 바꾸려면 오픈샷 비디오 에디터 작업을 해야 한다.


렌즈에 햇빛이 직접 닿으면 화질이 좋을 수가 없다. 


출시된지 이미 십여 년이 훌쩍 지난 펜탁스 Q10의 센서(이면조사형 CMOS) 크기는 1/2.3인치로 갤럭시 S23의 1/1.56인치보다 작다. 소형 경량화를 위한 어쩔 수 없는 선택이었을 것이며, 대신 당시로서는 활용도가 높은 아기자기한 기능을 많이 넣은 것으로 알고 있다. 즉, 진지하고 사실적인 기록을 위한 사진기라기보다는 '재미'를 위한 사진기라고 보는 것이 타당하다. 여행길에 가볍게 들고 다닐 수 있는.

캐논 EOS 500D는 언제나 되어야 펜탁스 Q10만큼의 관심을 받게 될런지 알 수가 없다. 아마 집에서 동영상을 찍어야 할 때나 쓰게 될 것 같다.

2025년 10월 31일 금요일

펜탁스 Q10으로 담은 도심의 가을 풍경

되살아난 펜탁스 Q10을 들고 서울 출장을 다녀왔다. 워낙 작고 가벼워서 휴대하는데 별다른 부담이 없다. 남대문 근처의 풍경을 몇 장 찍어서 콜라주를 만들었다. 일부 사진은 '극채색' 효과를 넣어 보았다.


HDR(High Dynamic Range) 기능은 스마트폰을 따라갈 수 없다. 하지만 필름 카메라 시절을 생각해 본다면, 한 화면 내에서 밝은 곳이 완전히 날아가는 것을 감내하지 않았던가.

마침 쿠팡에 주문했던 40.5mm 렌즈캡도 도착하였다. 앞으로 어딜 다니든지 갖고 다니면서 잘 활용해 볼 생각이다. 


아두이노 나노 에브리(왼쪽; ATmega4809)와 아두이노 나노(ATmega328P) 호환보드.

 

얼마 전에 구입해 놓았던 아두이노 나노 에브리에 핀 헤더를 납땜하였다. 그런데 컴퓨터에 연결할 방법이 없다. 아두이노 나노에서 쓰이는 USB mini B도 아니고, 휴대폰에 쓰이는 USB-C도 아니다. 아... 휴대폰 생태계에서 퇴출되었던 마이크로 5핀 타입(micro type B)인 것 같다. 라즈베리파이 3B의 전원 커넥터에도 쓰이던 썼던 바로 그것.  그러나 갖고 있는 케이블을 연결해 보니 Arduino IDE에서 인식이 되지 않는다. 케이블이 고장났거나, 또는 충전 전용 케이블이거나. 쿠팡에서 케이블을 새로 주문하였다. USB 커넥터의 다양한 타입에 대해서는 나무위키의 그림 자료(링크)를 확인해 보자.


2025년 10월 30일 목요일

[Nano Ardule] MIDI 파일 재생기를 만들기가 이렇게 어렵다니...

그림 자료를 곁들여 꽤 긴 글을 쓰고 있었는데 순식간에 날아가 버렸다. 키보드를 잘못 건드린 것도 없는데 도대체 무슨 일이 벌어진 것일까? 시스템 또는 서비스의 일시적인 문제라고 믿기로 했다. 지금까지 이런 일은 없었기 때문이다.

Nano Adrule MIDI controller는 키보드 컨트롤러와 사운드 모듈 사이에 위치하여 음색을 바꾸거나 레이어 또는 스플릿을 하기 위한 목적으로 만든 것이다. 여기서 말하는 사운드 모듈은 디스플레이나 조절 기능이 없이 아주 단순한 구조로 된 것을 뜻한다. 즉, 노래방 반주기에서 적출한 도터보드 형태의 것을 포함한다.

내놓기 민망한 수준으로 회로를 꾸미고 아두이노를 제어하기 위한 스케치(.ino) 파일을 만들어 소기의 목적을 달성하는 데에는 성공하였다. 이 과정에서 챗GPT가 큰 기여를 하였다. 처음에는 마이크로SD카드에 저장한 type 0 MIDI 파일을 재생하는 기능까지 넣으려고 했으나 아두이노 나노라는 제한된 '두뇌'에 펌웨어를 다 밀어넣기가 곤란하여 일단 기능을 분리하게 되었다. 아두이노 나노 호환보드와 아두이노 나노 에브리를 하나씩 갖고 있으니 각각에 대해여 서로 다른 기능의 펌웨어를 업로드해 놓은 뒤 필요에 따라 소켓에 바꿔 끼워 가면서 쓸 수도 있을 것이다.

그러나 안정적인 MIDI 파일 재생 기능을 구현하는 것이 키보드 컨트롤러의 보조 역할을 하는 것보다 훨씬 어렵다는 것을 알게 되었다. 마이크로SD카드에서 파일 목록을 얻는 것부터 쉽지 않았다. 실패를 반복하면서 거의 포기 상태로 한동안 손을 놓고 있다가 또다시 열정을 갖고 파고들기 시작하였다. 수없는 시행착오를 거쳐서 SD카드 접근용 라이브러리 SDFat를 선택하고, MIDI 파일명을 기록한 인덱스 파일(INDEX.TXT)을 통해서 개별 파일을 접근하는 등 최적화를 위해 할 일이 너무나 많았다. 단계별로 적용하여 재생 안정화에 기여한 대책을 정리해 보면 다음과 같다.

MIDI 파싱/타이밍(논리) 안정화

  • 러닝 스테이터스 규칙 고정: runningStatus는 오직 채널 보이스(0x80–0xEF)에서만 갱신.
  • 메타(0xFF)/SysEx(0xF0/0xF7) 이후에는 runningStatus를 건드리지 않음.
  • 프리롤 정합성: Δ=0 구간에서 메타·SysEx는 소비하되, 첫 채널 상태를 만나면 firstStatusPending = true, runningStatus = 해당 상태로 초기화 후 메인루프에 인계.
  • 데이터바이트 보호: runningStatus 없이 데이터바이트(<0x80) 등장 시 다음 상태바이트(≥0x80)까지 스캔하여 동기화(트랙 경계 내에서만).
  • 트랙 경계 가드: trackEndPos를 프리롤/메인루프/메타파서 전 구간에 적용하여 조기 EOT/읽기 초과 방지.
  • 절대시간 스케줄러: songStartMicros + tick*micro_per_tick 방식으로 이벤트 스케줄, Δ=0 클러스터도 순차 처리.

“버스트(폭주)” 완화/전송 안정화

  • 스타트 가드: 재생 시작 시 2비트(count-in) 지연 + 15ms 프리롤로 초기 버스트 완화.
  • TX 페이싱(옵션): parseMidiEvent() 끝에 delayMicroseconds(200~350) 삽입해 UART 과부하 예방.(권장값: 250µs. 문제 파일에서만 필요하면 컴파일 타임 옵션으로 관리)
  • 하드웨어 버퍼 대기(대안): 필요 시 Serial.write() 전에 UDRE 체크로 송신 버퍼 여유 확인.
SD 파일 접근 안정화
  • SPI 속도 보수화: SD.begin(CS, SD_SCK_MHZ(1)) 로 1 MHz로 시작(호환성↑).
  • 오픈 재시도 래퍼: sdSafeOpen()으로 최대 3회 재시도 후 실패 판정.
  • 고정 버퍼 라인리더: String 대신 char[] 버퍼 기반 readNextLine()로 CR/LF/CRLF, BOM(UTF-8) 처리.→ countIndexLines(), loadIndexPage() 모두 이 라인리더 사용.
  • INDEX 포맷 규칙: 8.3 파일명, 빈 줄/주석(#) 무시, 마지막 줄 개행 보장. 필요 시 PC에서 파이썬 스크립트로 BOM 제거 + 줄바꿈 통일.
UI/입력 안정화

  • 버튼 디바운스: 모든 버튼에 소프트 디바운스(약 18ms + 릴리즈 대기).
  • 인코더 스텝 고정: detent=2 기준(두 클릭=1스텝)으로 과다 이동 억제.
  • 방향 반전은 #define ENC_DIR_INVERT 한 줄로 토글.
  • 표시 정렬: Vol/BPM/Reb/Kit 숫자 3자리 고정(오른쪽 정렬)로 상태 확인 용이.

모듈/보드 특성 대응

  • /SONGS vs /DRUMS 분리: 
    • /SONGS: 원본 그대로 재생(초기 CC/PC 미전송) → 불필요한 설정 충돌 차단
    • /DRUMS: 시작 시 CH10에만 Volume/Reverb/DrumKit(PC) 전송(SAM9703는 PC만으로 킷 변경)
  • All Notes Off: 인코더 버튼 롱프레스로 긴급 음 끊김 방지.

나노 아두이노 설계를 시작할 때만 하더라도 이렇게 복잡하고 까다로운 난관을 타개해 나가야 할 것이라고는 전혀 생각하지 못하였다. PC에서 .mid 파일을 만나면 단순히 더블클릭만 해서 어쨌든 소리를 들을 수 있다. 하지만 아두이노는 그렇지 못하다. 예를 들어 C:\Windows\Media 폴더에 전통적으로 존재해 오던 ONESTOP.MID라는 약 4분 분량의 MIDI 파일을 보자. html-midi-player("Play and display MIDI files on the web")에 업로드하면 노트 정보의 시각화는 물론 재생까지 이루어진다. 이 는 다양한 악기가 여러 장르를 거쳐 연주되는 매우 수준 높은 MIDI 파일이다.

html-midi-player("Play and display MIDI files on the web")에 로드한 ONESTOP.MID 파일.

Nano Ardule은 이 파일을 재생하다가 1분이 되기 전에 타악기 소리를 와르르 쏟아내고는 멈춘다. 그 이유를 알기 위해서 문제가 일어난 구간의 MIDI 파일의 이벤트를 텍스트 형태로 출력한 뒤(챗GPT를 이용하여 이러한 용도의 파이썬 스크립트를 만들었음) 분석을 해 보았다. 이외에도 부수적으로 만든 파이썬 스크립트가 여럿 있다.

00:35:000 ~ 00:45:500 
Time(mm:ss:ms) | AbsTick | Δ? | Kind | Detail 
----------------+---------+----+--------+-------------------------------------- 
00:35:051 | 9125 | 0 | CHAN | NOTE_ON ch= 1 note= 72 vel= 0 
00:35:067 | 9129 | 4 | CHAN | NOTE_ON ch= 1 note= 74 vel= 64 
00:35:082 | 9133 | 4 | CHAN | NOTE_ON ch= 8 note= 72 vel= 0 
00:35:121 | 9143 | 10 | CHAN | NOTE_ON ch=12 note= 38 vel=115
...

분석 결론은 다음과 같았다. 핵심은 노트보다 컨트롤 메시지(특히 Pitch Bend, CC, Bank/PC)가 폭주하는 구간이 있다는 점이다.

  • Pitch Bend 홍수
  • Bank Select + Program Change의 동시 발생
  • Mode Wheel(CC#1), Volume(CC#7) 연속 변화
  • Δ=0/2/4 정도의 촘촘한 이벤트 다발

PC에서는 내부 버퍼·타임스탬프 큐·멀티스레드로 완충되지만, 아두이노는 UART 대역폭과 싱글 루프 때문에 그대로 내보내면 밀립니다.

오늘의 목표는 ONESTOP.MID 파일을 제대로 재생하게 만드는 것이다. 그 다음으로는 드럼 연주 데이터만 들어있는 MIDI 파일을 2-마디 패턴으로 분해한 뒤 반복 재생하거나. 또는 '패턴 체인' 형태를 만들어서 곡 전체에 해당하는 드럼 연주를 제공하는 것.

아두이노를 이용한 드럼 패턴 플레이어를 만들기 위해 많은 아이디어가 스쳐 지나갔다. 실은 구글에서 online drum machine이라고만 입력하여 검색을 해도 꽤 좋은 서비스가 많다. 하지만 나는 인터넷에 연결되지 않은 상태에서도 이동하면서 사용 가능한 드럼 패턴 플레이어를 원한다. 

2마디 단위의 드럼 패턴을 그리드 형태로 양자화한 파일(Ardule Drum Pattern System; 바이너리 파일은 .ADP, 사람이 이해하기 쉬운 텍스트 버전은 .APT)을 마이크로SD카드에 저장해 놓은 뒤 원하는 것을 골라서 반복 재생하는 방식을 비롯하여 MIDI 파일을 2마디 단위로 직접 쪼개서 별도의 파일로 저장한 다음 활용하는 것에 이르기까지 여러 방법의 가능성을 따져 보았다. ADP 체계는 마이크로SD카드 의 MIDI 파일 접근이 쉽지 않아 애를 먹던 시절, 아예 메모리에 저용량의 패턴 데이터를 담아 보려고 생각한 것이다. 코드에 넣어 두었다면 Flash(PROGMEM)을, SD에서 불러온 패턴이라면 SRAM(겨우 2KB!)를, 그리고 사용자 커스텀 패턴이라면 EEPROM(이건 겨우 1kb에 불과함)를 쓰려고 했었다.

텍스트 형태인 APT(Ardule Pattern Text)의 사례. 이는 설계 및 편집을 위한 저장용 포맷이고, 실제로 프로그램 내부에서는 바이너리 형태(ADP)로 저장하려고 계획하였다. 드럼 전용이라면 ADT라고 쓰는 것이 옳다.


챗GPT의 해결책에는 이해하기 어려운 전문적인 내용도 많다. 계속되는 질문과 대답 속에서 다음과 같은 방법으로 거의 구체화가 되어가고 있다.

  1. (PC) 드럼 연주 정보가 담긴 type 0 MIDI 파일을 2마디 단위의 패턴으로 나눈 뒤, 출현빈도 역순으로 정리한다. 하나의 MIDI 파일에서 유래한 각 패턴은 위치 정보와 MIDI 이벤트 형태로 묶어서 하나의 파일에 정리한다. 이를 self-contained multi-ADT(.MAD)라고 부르기로 한다.
  2. MAD 파일의 뒷부분에는 완성된 곡 형태의 ARR 데이터를 담을 수 있다.
  3. (Nano Ardule) .MAD 파일을 읽어서 지정한 패턴의 반복 연주, 또는 ARR 데이터 연주를 실시한다.

초창기에는 ADP system을 고려하다가 표현력에 제한이 있으리라는 것을 이내 알게 되었다. 따라서 온전한 형태의 드럼 MIDI 파일을 아두이노에서 로드한 뒤 스캔하여 패턴 위치 및 빈도 정보를 추출한 뒤 이를 반복 재생하는 방법을 생각했었다. 그러나 서로 떨어진 위치의 패턴을 조합하여 체인을 만들기에는 아두이노에게 부담이 된다. 그래서 이러한 방식까지 진화하였다. .MAD의 개념 도입 초기에는 원본 MIDI 파일을 참조하는 방식을 생각했다가 생각을 바꾸었다. 하지만 ADP는 데모용 기본 리듬 등으로 활용할 가치가 있으니 아직 내다 버리지는 말도록 하자.

제안: multi-ADT 포맷 (권장 확장자: .MAD)

  • 파일명: FOO.MAD (8.3 호환)

  • 목적: 여러 2-bar 패턴 + 어레인지(패턴 번호/반복수) + 메타(템포, 드럼킷, 카운트-인) 모두 한 파일에.

  • 재생: 아두이노는 헤더의 오프셋 테이블을 읽어 패턴 위치로 즉시 seek끊김 없이 루프/점프.

바이너리 구조(간결 사양)

Offset Size Field 0x00 4 Magic = "MADT" 0x04 1 Version = 1 0x05 1 Flags (bit0=RAW-tick, bit1=GRID, bit2=HasTempoMap ...) 0x06 2 PPQN (e.g., 480) 0x08 2 Default BPM (for count-in; 곡 중 템포맵은 패턴 내 이벤트에 포함 가능) 0x0A 1 DrumKit PC (채널10 전제; 0=무시) 0x0B 1 CountIn Beats (2 or 4) 0x0C 2 PatternCount (N) 0x0E 2 ArrangeCount (M) // (패턴번호, 반복수) 개수 0x10 4*N PatternOffset[i] // 각 패턴 레코드의 파일 오프셋 ... 4*M ArrangePairs[j] // packed: (hi16=patternIndex, lo16=repeats) --- 각 패턴 레코드 --- PattHdr: +0 4 length_ticks (대개 2bar = 8*PPQN) +4 4 event_bytes (아래 이벤트 스트림 길이) +8 ? 이벤트 스트림 (델타-타임 + 미디메시지) Event Stream 인코딩(가볍고 빠르게): [VLQ delta] [Status or 0x00=running] [data1] [data2?] - 메타/시스엑스는 필요 시 스킵 가능 옵션(Flags) - 드럼 전용이면 CH10 메시지 위주로 간소화 가능

포인트: tick→byte 인덱스가 이미 파일 안에 내장되어 있어 패턴 시작 시 즉시 seek만 하면 됩니다.
템포가 바뀌는 패턴은 패턴 이벤트 안에 FF 51 03 메타를 넣어도 되고(Flags로 RAW모드), 대부분의 드럼 패턴은 고정 템포로 충분합니다.

텍스트 디버그 버전(선택): .MADT (사람 읽기용)

MADT, v=1, ppqn=480, bpm=120, kit=26, countin=2 PATTERN 1, len_ticks=3840 dt=0, 90 24 64 dt=120,90 2A 64 ... PATTERN 2, len_ticks=3840 ... ARR: 1x4,2x2,3x4,2x2,1x8

개발 단계에서 가독성↑ / 최종 배포는 .MAD 사용.


장점 요약

  • 무지연 점프/루프: 패턴 오프셋으로 즉시 seek → 카운트-인 동안 준비 끝.

  • 사이드카 정리: .MID + .PAT + .ARR한 파일로 통합.

  • 버스트 감소: 시작·전환부에 필요한 CC/PC/템포 이벤트를 패턴 전에 삽입해 둠.

  • 8.3 안전: FOO.MAD 하나로 끝.

설계를 구체화하기 위해 너무나 많은 문제와 해결책, 그리고 잘 모르던 개념 사이를 방황하고 다녔더니 이렇게라도 문서로 정리하지 않으면 다 잊어버릴 것만 같다.

MIDI와 오픈 사이언스를 연결할 수 있을까? 자동 생성으로 쓴 간단한 글 한편을 소개한다.

MIDI, 오픈 사이언스가 배워야 할 표준의 철학 

밴드 KRIBBtonite의 벼락치기 공연(2025년 10월 29일)

불현듯 무엇을 해야 되겠다고 마음에 떠올랐을 때, 여건을 따지지 않고 일단 저질러 보는 것이야말로 젊음의 특권 아닐까. (나보다) 젊은 사람들이 같이 있기 때문에 가능한 일이다. 공연은 그렇게 불과 일주일 전에 결정되었다.

포스터 제작: Dr. 조근형

공연 자체보다 준비 과정이 더 즐거웠다. 밤을 새다시피 업무에 시달리면서도 연습시간이 되어 마이크를 붙잡으면 치솟아오르는 열정을 어떻게 설명할 수 있을까. 멤버 중에는 악기를 배운 뒤 남 앞에 서서 연주를 하는 것이 처음인 사람도 있었다. 그러나 정확한 박자와 타격으로 든든한 연주를 해 주었다.


우리 밴드의 퍼포먼스 자체는 완벽하지 않았다. 창립 초창기라서 연습이 절대적으로 부족했고, 현장에서 사운드 체크를 해 줄 전문가가 있는 것도 아니었기 때문이다. 악보가 바람에 날아가거나 무선 마이크 전원이 켜져 있지 않은 것을 확인하지 않은 상태에서 노래를 시작하는 등 프로페셔널의 무대에서는 결코 허용할 수 없는 일이 일어났다. 나 역시 베이스를 연주하다가 실수를 종종 범하였고.

그렇지만 열정을 갖춘 멤버와 관객이 있었기에 너무나 보람이 느껴지는 무대였다. 특히 그동안 하나씩 장만해 온 장비—카날스 MW-620 2채널 무선 마이크와 인터엠 L1800 파워앰프(중고)—가 소규모의 야외 공연에서 충분하다는 것을 경험으로 알게 되었다는 점이 큰 성과이다. 이날의 공연에서는 모니터 대책은 적극적으로 마련하지 못했다. 몇 명의 멤버가 무선 인이어 모니터링 시스템을 단일 송신기로부터 공유하여 사용한 정도였다. 나는 별도의 모니터링 방안을 마련하지 않았는데, 있으면 좋을 것 같다. 

만약 강당 공연이라면 이러한 수준의 음향 장비를 잘 세팅하여 사용하면 되고, 오늘과 유사한 야외 무대라면 드럼에 유선 마이크를 1~2개 추가하면 될 것이다. 

만약 조금 더 완성도를 갖춘 뒤에 공연을 하기로 마음먹었다면 이날의 공연은 성사되지 않았을 것이다. 그러나 일을 저지르고 난 다음, '하기를 잘 했다'라고 생각하지 않는 사람은 하나도 없으리라.

규모는 제각각이지만 올해 벌써 4번의 공연을 치렀고, 12월 중에도 1~2회 정도 무대에 오르게 될 것 같다. 꿈을 현실로 만들고 성장하는 사람들의 모습을 보는 것이 즐겁다.

2025년 10월 28일 화요일

펜탁스 Q10 되살리기 - 고장 또는 메모리 카드 오류?

알리익스프레스에서 주문한 펜탁스 Q10용 배터리(D-LI68)와 충전기 세트가 드디어 배송 완료되었다. 220V 교류 전원에 꽂는 것 정품 충전기와 달리 이 아니라 USB-C 타입의 휴대폰 충전기를 이용하도록 되어 있다. 




배터리를 충전기에 꽂아 보니 거의 충전 상태였다. 카메라에 장착한 뒤 전원을 넣어 보았다. 켜지지 않으면 어떻게 하나 걱정을 하였지만 기우였다. 날짜 설정은 2012년부터였다. 출시연도를 짐작하게 한다. 캐논 EOS 100D는 2009년이었다. 

아내와 함께 2017년에 전주국제영화제를 찾아서 찍은 사진이 들어 있었다. 무려 7년 전의 사진이다. 우리에게 이렇게 젊은 시절이 있었나 싶은 정도로. 하지만 오늘은 남은 인생에서 가장 젊은 날이 아닌가. 배터리 주문과 관련한 글은 10월 18일에 작성한 나도 국민 삼각대 TMK-244B를 갖고 있었다 - 취미의 통섭(通涉, consilience)이다. 


과연 펜탁스 Q10이 휴대폰의 편리함을 대신할 수 있을까? 워낙 소형 경량의 미러리스 카메라이니 시험삼아 들고 다녀볼까 한다. 수시로 매뉴얼을 보면서 사용법을 다시 익혀야 되겠다. 딸아이가 어린 시절 수학여행에 들고 갔다가 잃어버린 직경 40.5 mm 렌즈캡도 주문하였다.

Helios-44M 렌즈를 찍어 보았다. 아니, 정확하게 말하자면 Q10으로 헬리오스 렌즈를 촬영한 것은 아니다. 단지 화면에 나오게 만들었을 뿐. 올림푸스 DSLR 바디가 하나쯤 더 있다면 지금 보유한 두어개의 렌즈를 활용할 수 있을 터인데.



낡은 보급형 미러리스 또는 DSLR로부터 스마트폰 카메라에는 없는 그 무엇인가의 의미를 찾아보고 싶다. 무의미한 시도라고 결론이 날지도 모르지만.


2025년 10월 29일 업데이트

치명적인 문제점을 발견하였다. 촬영 후 카드에 이미지가 저장이 되지 않고 있다. 어제 배터리를 살린 직후 찍은 단 하나의 이미지만 저장이 되었고, 오늘은 "화상을 저장되지 않았습니다"라는 메시지가 나오고, 대상 이미지를 보기 위해 재생 버튼을 누르면 "이 화상을 표시할 수 없습니다"라는 메시지가 나온다. 배터리를 되살린 의미가 전혀 없다. 수리가 필요한 상태인 것일까? 우선은 SD카드에 문제가 있을 것이라고 짐작해 본다.

카드를 꺼내어 컴퓨터에 연결해 보았다. 망가진 이미지가 많다. 포맷을 해 보아도 새로 촬영한 이미지를 저장하지 못하는 현상은 달라지지 않았다.


2025년 10월 30일 업데이트

새 SD카드(Axxen 32GB)를 구입하여 Q10에 장착해 보았다. 촬영된 화상이 잘 저장됨을 확인하였다. 카메라의 문제는 아니었다.

왼쪽의 것이 문제가 있던 기존의 메모리 카드.




달리기 입문 15개월째에 처음 받은 인사

원래 어제 달리기를 하는 날이었으나 저녁 식사가 너무 늦었고 오른쪽 무릎에 약간의 통증이 있어서 하루를 더 건너뛰었다. 점심시간을 이용한 밴드 공연을 앞두고 일과시간이 끝난 후 막바지 연습을 하느라 퇴근이 조금씩 늦었다. 공연 결정은 지난주에 별안간 이루어졌다. 올해를 넘기기 전에 정식 창단을 기념하는 공연을 하자고 이야기를 나누다가 요즘 바깥 공연을 하기에 적당한 날씨이고 다들 의욕이 넘치는 상황이니 아예 이 열기가 식기 전에 먼저 일을 저질러 보자고 뜻을 모았다. 특히 여성 멤버들의 열성과 실력이 대단하다. 다들 이런 '끼'를 속에 품고 어떻게 살았을까.

밴드 KRIBBtonite. 맨 왼쪽에 뒤통수를 보이고 있는 사람이 나(베이스 연주자). 촬영자: Dr. 김상옥.


오늘은 동네 한바퀴(3 km)를 달리기로 작정하고 집을 나섰다. 기온은 영상 7도. 이제 겨울로 접어드는 느낌이다. 런데이 앱에서 나오는 소리를 놓쳐서 총 5 km를 뛰는 것으로 마무리를 하였다. 4 km가 되기 조금 전이었을까, 반대 방향으로 달리던 한 젊은이가 나와 마주쳐 지나가면서 주먹을 불끈 쥐어 올리면서 '화이팅!'을 외치는 것이 아닌가.

나도 엉겁결에 주먹을 쥔 손을 번쩍 들어 올렸다. 소리를 지르지는 않았지만. 달리기를 시작한지 15개월째에 맞는 신선한 충격이었다.



도로 턱을 지나면서 착지를 잘못하는 바람에 무릎이 좀 아프다. 얼음찜질을 하면서 글을 마무리한다. 

2025년 10월 20일 월요일

Nano Ardule 소개용 동영상 만들기

마이크 스탠드에 휴대폰을 거치할 수 있는 부품을 구입하자마자 가장 먼저 한 일은 Nano Ardule MIDI Controller의 소개용 동영상을 찍은 것이었다. 분량은 5분 57초. 좁은 책상 위에서 작업을 하느라 키보드 컨트롤러는 Korg X2를 쓰지 않고 AKAI MPK mini를 택했다. 컴퓨터 내 MIDI 신호의 라우팅(USB 키보드 -> 노트북컴퓨터 -> Mackie Onyx Producer -> Nano Ardule -> SAM9703 board)에는 고전적인 프로그램인 MIDI-OX를 사용하였다. MIDI-OX는 Windows 11에서도 여전히 잘 돌아간다! 2채널 아날로그 입력을 받는 오디오 인터페이스인 Mackie Onyx는 5핀 DIN 단자를 갖춘 MIDI 인터페이스를 갖고 있어서 매우 편리하다. 정말 잘 선택한 중고 오디오 기기이다.

위 이미지는 말 그대로 이미지이니 유튜브 동영상 링크(https://youtu.be/ZyeiwCxAJcU)을 클릭하시기를...


시놉시스를 먼저 만들고 촬영을 한 뒤 내가 직접 내레이션을 입힐까 생각했다가 자막으로 대체하였다. 만약 대사를 읽어서 녹음한 뒤 후편집을 하여 추가하였다면 분량이 훨씬 길어졌을 것이다. 

영상은 휴대폰으로, MIDI 사운드 모듈(SAM9703)의 출력은 Mackie 오디오 인터페이스로 녹음하였다(Audacity 사용). 오픈샷 비디오 편집기에서 두 자료를 싱크하느라 애를 먹었다. 갖고 있지는 않지만 슬레이트를 친다 하여도 SAM9703의 스테레오 오디오 출력이 오디오 인터페이스의 입력 채널을 전부 차지하고 있으니 휴대폰으로는 녹음이 되어도 Mackie 쪽으로는 그 소리를 보낼 수 없기 때문이다. 왼손 손가락으로 스냅을 튕기면서 오른손으로 건반을 세게 친다? 그것도 나쁘지는 않겠다.

휴대폰 영상에 녹음된 소리는 삭제할 생각이었는데, 막상 스위치를 딸깍거리는 소리를 들어 보니 나쁘지 않아서 그대로 살렸다. 현재의 영상에서 설명을 더 길게 넣으려면(자막이든 음성이든) 비디오 클립 중간을 이미지로 export한 뒤 이를 길게 삽입해야 한다. 그러려면 영상은 이미지 삽입 위치에서 둘로 잘라야 할 것이다.

동영상 편집 작업을 하면서 오픈샷의 기능을 조금 더 익히는 좋은 계기가 되었다. 

이번 시연용 동영상은 철저히 준비한 뒤에 만든 것고 아니고, 그 결과도 아주 만족스럽다고 할 수는 없다. 초점이 키보드에 맞는 바람에 Nano Ardule은 약간 흐릿하게 나왔다. 다행스럽게도 LCD의 글씨를 식별하지 못할 정도는 아니었다. 자막을 넣는 과정에서 'Edit thie caption...'이라는 안내 문구를 지우지 않은 곳도 있었다. 그러나 '너무 오래 준비만 하느라 시간을 소비하지 말고 적절한 순간에 빨리 공개한다'는 철학에 맞추어 일을 저질렀다. 어제 자정을 넘겨서까지 마무리 작업을 하느라 좀 피곤하다.

이 동영상을 편집하여 쇼츠를 만드는 것이 가능할까? 새로 촬영하는 것이 낫겠다. 세로 구도이므로 Nano Ardule과 건반을 어떻게 배치하는 것이 좋은지 고민을 좀 해야 한다. 알리익스프레스에서 휴대폰 고정용 크로스바가 배송되면, 보다 넓은 공간에서 Korg X2와 삼각대를 펼쳐놓고 다시 찍도록 하자. 3분 이내에 핵심을 뽑아라! 가능하다면 1분 이내로...