이 블로그 검색

2023년 12월 11일 월요일

임베디드 비트연산자.

함수를 만들면 함수까지도 다, 메모리를 차지해서, 
임베디드에서는 매크로를 엄청 쓴다. 

#define _BV(bit) (1<<(bit))

#define bit_is_set(sfr,bit) ( SFR_BYTE(sfr) & _BV(bit ) )
#define bit_is_clear(sfr,bit) ( !(SFR_BYTE(sfr) & _BV(bit )) )

#loop_until_bit_is_set(sfr, bit) do { } while (bit_is_clear(sfr, bit))
#loop_until_bit_is_clear

최적화를 피하기 위해서 이런식으로 작성된 듯하다. 

set,clear,invert,read bit

  |= _BV(bit)
  &= ~_BV(bit)
  ^= _BV(bit)
  |= _BV(bit)
(SFR_BYTE(value) &_BV(bit) ) >> bit)

뭐 어려운 것은 없다. clear bit 같은 것도 처음 생각하는거만 어렵지 알면 간단하다.

2023년 12월 8일 금요일

C/C++에서 비트단위로 1과 0을 쓰는 법.

aduino, raspberry pi, MCU   (FGBA는 필요 없겠다. 그냥 비트를 쓰자.)

1비트를 작성하는 법.


value  |= ( 1<<n ) ;   // n=0..7 (8bit) 0..15 (16bit) 0..31(32bit)
를 사용하면 다른 값을 변형하지 않고, 쓸 수 있으며.

반대로 해당 비트에 0을 쓰는 방법은 다음과 같다. 

value &= ~(1<<n);    


2023년 11월 24일 금요일

4세대 아이돌 영어인터뷰 영상 비교 --> 이따위 영상은 왜 있는 걸까?

 

전제로 영어는 잘해야 하는 것이고, 잘하는 것이 우월하다는 생각이 깔린 것 같은데.


뭐... 원어민한테 영어 잘한다고 여기저기 그 팬들이 자랑하는 거부터 맛이 간 상황이니 아무런 상관이 없는 걸까.



딱 대중에 맞는 컨텐츠일지도.

2023년 11월 15일 수요일

이재용 재판 삼성 바이오로직스 등 삼성측 주장.

 반면 이 부회장 측은 합병은 경영상 필요에 따라 합법적으로 진행됐고, 주주들의 이익도 충분히 고려됐다고 반박한다.


또 불법적인 주가 시세 조종은 없었으며, 회계 논란 역시 대부분의 회계 전문가들은 회계 기준 위반이 아니라는 의견을 제시했다는 입장이다. 이 회장도 합병 과정에 대한 대부분의 사항을 보고받지 않았다며 무죄를 주장하고 있다.


대부분의 회계 전문가들은이 중요한것  아니지 않나... 당연히 삼성 측이 의뢰 하는 회계 전문가란 사람들이 위반 아니라고 할거고, 위반이라고 하는 사람은 의견을 안쓰겠지.

주주들의 이익이 충분히 고려됐으면, 그런 식으로 애초에 승계를 안했겠지... 
합병 과정에 대한 대부분의 사항을 보고 받을 필요 있나, 지금은 어렵지만 모든 처리가 끝나면 승계가 마무리 될 것입니다. 하고 마무리 되었습니다. 보고만 하겠지.

근데 그게 누구를 위한 일인지가 중요하겠지. 

블로그 10년의 수익입니다.

 



옛날에 유튜브 구독자수 제한같은거 없을 때, 던전앤드래곤 게임영상 올려놓은게

4년에 10달러는 되었는데... 블로그는 뭐.. 이 모양입니다. 

2023년 11월 6일 월요일

정의당 지도부 총사퇴가 무슨의미가 있나...

 사실 자기선거가 더 급한데... 뭐 지도부하면서 남의 동네 뗘 줄 필요 있나.


잘되면 다시 당권 먹으면 되고, 안되면 나만 잘살면 되지라는 생각 아닐까.


심상정 다시, 국힘 2중대에서 나오려는거 같은데... 얼마나 오래가겠어.

2023년 11월 3일 금요일

[언론 토크] 김포시 서울 편입 논란…’메가 서울’ 시작부터 난항 (msn.com)

 김포시 서울 편입 논란…’메가 서울’ 시작부터 난항 (msn.com)


김포시  서울 흡수야 뭐...


현재 서울에 땅가지 기득권 층한테 피해 안주면서, 서울에 혐오시설 

놓으라는 여론을 잠재우기 위한 방안 아닌가.... 뭐 화장터 서울에 더 놓으라 그러면 

벽제화장터 은평구로 편입시킬 인간들인데...


서울 부동산 쟁이들과, 서울 편입지역 부동산 쟁이들이 모두 환영하는 괴상한 정책이지

이게 대한민국의 발전과는 거리가 멀다고 본다. 코인쟁이, 주식쟁이보다 나쁜 새끼들이 

부동산 쟁이들이다. 국가의 재물을 빼앗가 가는걸 목적으로 하는 쓰래기들이야... 

진짜 재화를 다루지만, 그 가치는 스스로 창출을 하지 못하고 어디선가 빼앗아 와야한다면,

코인쟁이들과 무슨 차이가 있나, 그냥 돈 벌려고 장난질치는거지...


지도를 봤을 때, 구리랑 하남 말고는, 서울 편입을 시도해도 되는 경기도 지역은 

존재하지 않는다고 생각한다. 


그리고 고양시가 북도니 남도는 그게 무슨 의미가 있나... 

이미 특별자치도로 올라갔는데, 뭐 나라 정책상 땅 긋는거에나 상관 있겠지... 


그리고 고양시는 당연히 북도지... 특히 서쪽은 인천과 서울이라는 경계가 명확한데,

김포랑 고양이 경기 남북도 나누는데, 남도가 되야할 이유가 어디있다는 건지... 


뭐 동쪽도, 남양주랑 양평을 경계로 나누면 남북이 깔끔하게 나뉘는거고... 





2023년 11월 1일 수요일

몇년만에... 속도위반 과태료...

뭐 내가 운전하다가... 과속했으니, 과태료는 내야지... 

그래도 조수석 앉아있던 대표님과 반반하기로 해서 적어지근 했음

대구외곽순환고속도로 ... 왜.... 여기는 카카오내비에서 안알려주냐.... 




 

2023년 10월 31일 화요일

권고는 하지않아도 된다는 보장 아닌가? >> [단독]국토부, 車 제조사에 페달용 블박 설치 권고한다

 https://news.mt.co.kr/mtview.php?no=2023103108412355379&VMT_PT


??? 권고면 하고 싶으면 하고 말고 싶으면 말라는거 아닌가... 당연히 안하겠지.


요즘 자동차 에어컨도 제대로 작동안해서 재부팅 해야하는 일도 있던데,


차에 있는 다른 디지털 장비가 정상작동 안하는데, 주행쪽에 문제 없으란 보장이 어딨나...


한번 터지면 보상 와르르라 절대 못함.

2023년 10월 25일 수요일

이메일로 블로그 포스팅 테스트

안녕하시렵니까 이메일을 보내렵니다. 

--
Hyeok KIM ( Ph.D.)
Many-body physics Lab.
Department of Physics, Konkuk University
Seoul, 143-701, S. Korea

2023년 10월 12일 목요일

윈도우 wsl2에서 cifs 외부 마운트가 안되는 상황의 해결법.

 /mnt 폴더를 보면 /mnt/c라고 c드라이브가 마운트가 되어 있다. 


mount 명령을 넣으면 다음 결과가 나온다. 


마이크로소프트에서 호스트컴퓨터와 데이터 통신을 할 수 있도록 공간을 열어 두었다. 

wsl과 도커까지 연동이 되는 상황이라 이게 보안에 있어 좋지 않을 수도 있지만, 연결이 되는 것이 중요합니다. 

windows에서는 폴더 정리를 위해서 1. xxx 2. yyyy 3. zzzz 식으로 폴더를 정리를 해놓고나서,

10개가 넘어가는 순간 01. xxxx로 바꾸기 위해서는 상당히 머리가 아프다, powershell 쓴다고 해서, 윈도우가 perl을 기본으로 깔아주지도 않기 때문에, rename.pl이라는 위대한 도구를 사용할 수 없다. 

그래서 생각한 것이, wsl을 사용하여 파일이름을 바꾸는 게 어떻가 하는 생각이었다.

그런데 문제가, mount.cifs로 nas가 잡히지 않고 계속 에러가 뜨는 것이었다. 웹에 나온방법을 다 뒤져도 안되길래 찾아보니, 드라이브 패쓰를 그대로 마운트 하는 방법이 있다고 하더라
(교정을 bing chat으로 시켰더니, 보안에 안좋으니, 다시 mount.cifs 쓰라는데 안되는데 어카라는겨...   교정하다말고 왜 다시 정보를 주는건지.)

뭐 결국은 이 방법을 써서, nas를 마운트한 Z:\와 y:\를 연결해서 작업을 했다. 

bash는 자신 있으니, bash를 쓰는 그냥 rename.pl을 쓰던간에 이제 저 일을 난 할 수 있다.  


2023년 9월 8일 금요일

X-touch mini relative{1,2,3} 모드와 ardour general midi map 맞추기.

 일단 마키모드의 Pot1..8 기능이 정말 훌륭한 기능이긴하다만, Ardour에서 에러가 너무나며, 

Bank Next 버튼 등이 없다. 고로 잘 세팅이 되도 8채널만 쓴다고 생각해야 할 것이다. 


결국은 General midi로 변화를 주어야 할텐데, x-touch editor에서는 mackie모드 같은 느낌의 

상대적 변화 모드 세팅이 총 relative1, relative2, relative3으로 세가지가 있어서, 어떤게 맥키 모드인지 알 수가 없다. Ardour는 자체적으로 enc-r, enc-l, enc-2, enc-b 모드로 4가지의 상대적 인코더 변화 모드를 지원한다. 

이 3x4의 경우의 수 중에 서로 맞는게 하나는 있을거라, 지원을 해주는 것일 테니, 일일이 테스트를 해보는 수밖에 없을 것이다. 해보자. 


Ardour는 4가지의 모드를 말로 그리고 예제로 설명하므로 X-touch를 실험해보자.


먼저 인코더1은 relative1로 인코더2는 2로 인코더3은 3으로 설정한 후 확인할 수 있다. 


인코더 1은 오른쪽으로 돌릴 때,  01(속도에따라 02,03으로 올라감) 왼쪽으로 돌릴 때, 7f가 나온다. 7bit 2의 보수 방식이다. 7f(16) --> 1111111 -> - (~(111111) +1)  ->  -1(16)

인코더 2는 우로 41, 좌로 3f가 나온다. 0x40 즉 64를 기준으로 작동하는 방식이다. 

인코더 3은 우로 돌릴 때, 1 좌로 돌릴 때 41이 나온다. 64보다 크면 - 부호가 붙는 방식이다. 7번째 비트가 부호를 말하며, 보수는 사용치 않는다. 


이 3개의 인코더에 해당하는 모드를 Ardour의 설명으로 찾으면 다음과 같다. 

Ardour의 enc-r은 0svvvvvv 부호비트가 있으면 positive라고 한다. 

Ardour의 enc-l도 0svvvvvv  이며 부호 비트가 없으면 positive라고 한다.  이 것이 맥키 프로토콜이 사용하는 방식이다. relative3(Mackie)라고만 배링거가 써줬으면 얼마나 좋았을까...

이건 시간이 나면, binary에서 relative3을 찾아 mackie로 바꾸면 쉽게 이해할 수 있겠다. 

enc-l    = relative3 이며, enc-r ~= relative3  도 유사하다


Ardour의 enc-2는 이름부터 2의 보수 느낌이 난다. 0-64는 양수이며, 그 이상은 7비트 부호 숫자 기준으로 2의 보수를 취한다. 

enc-2    = relative1 이다.

Ardour의 enc-b는 Relative Binary Offset으로 64를 기준으로 차이값을 말한다. 

enc-b   = relative2 이다.

<Binding channel="2"  ctl="17"                   uri="/route/pan       B2"/> 이런 식으로 써진, midi map을 변환할 수 있다. 

ctl을 enc-l로 바꾼다.  X-touch editor를 사용해, 기본 셋팅 파일을 불러온 후, Encoder의 Minimum을 눌러, relative3으로 바꾼다. 

X-touch mini로 덤프를 하고, 해당 설정 파일을 LayerA_enc-l LayerB enc-r이라는 이름으로 저장해, 헛갈릴 일이 없도록 준비를 하자. 

그 후로는 다양한 일을 할 수 있다. 



2023년 9월 7일 목요일

Oneman Band Video는 어떻게 만들까 혼자만 고민하기.

 인터넷을 보면 수많은 사람들이 혼자서 멀티 비디오 촬영으로 Oneman band 영상을 올리는 것을 볼 수 있다. 허접한 연주 실력이지만 이걸 시도해 본 적이 있는데, 영상을 실시간으로 하나씩 추가하는 것은 불가능에 가까웠고 해당하는 소프트웨어가 뭔지도 알 수 없었다. 

그렇다면, 영상을 일일이 촬영한 후 싱크를 맞추어 올린 것일 거다. 

뭐 많아봐야 16개의 영상의 싱크를 맞추는게 어려울까? 어렵다. 악기가 16번이면, 리테이크도 여러번일 거고 소리는 별로라도 일부분만 영상과 함께 쓸만하면 넣을 수 있기에 16개가 아니라 더 많은 영상을 가지고 있다. (예전에는 정말 어려웠으나) 요즘에는 다만 비디오 편집 툴이 오디오를 기준으로 싱크를 단번에 맞춰준다. 컴퓨터도 빨라졌으니 그냥 트렉에 올려서 마우스 몇 번 누르거나, 명령 하나를 입력하면 바로 가능할 것이다. 음악 배경에 잡음이 여러 들어가 있어도 알아서 잘 맞춰준다. 각 영상이 잘 통제된 환경이라면, 베이스 소리 따로 MR따로 일 테니, 컴퓨터가 이 음악에 대해서 잘 알지 않는 이상 제대로 맞추지 못할 것이다. 

그렇다면 예전에는 이걸 어떻게 했을까? 이건 매우 긴 역사를 가지고 있다. 정확히는 잘 모른다. 내가 이걸로 논문을 쓸 것도 아니기에, 적당히 인터넷을 긁은 후 내가 느끼기 편하게 정리해 말하는 것이기에 어쩔 수 없다. 과거에는 Linear timecode 또는 SMPTE timecode라고 부르는 시계를 대신할 수 있는 오디오 트랙을 하나 사용해 영상에 시간표를 다는 방식을 사용했다.  더 이전에는 동시녹음의 시대가 아니므로 영상 앞 단에 슬레이터에 써 놓은  씬 넘버 컷넘버 등이 큰 영역의 시간표가 된다. 

원맨밴드 영상이야 한씬만 가지고 있으니, 영화하는 사람들이 자료를 정리한 후 인력으로 싱크 맞추는일부터 할테니 쉽지 않겠냐 할 수 있겠지만, 영화하는 사람들은 죽어라 영상만 보는 사람들이고, 원맨밴드 올리는 사람은 영상은 부차적인 것이니 마냥 쉽지는 않을 것이다. 

동시녹음의 시대에 들어와서도, 비디오 촬영기계에 있는 오디오를 그대로 사용하는 경우는 없다. 홈비디오에서야, 캠코더가 녹음하는 현장소리를 그대로 사용할테지만, 영화촬영장만 봐도, 전문 음향감독님들이 별개의 녹음기를 사용해 녹음을 한다. 

영상이 우선일 때도, 공을 들이듯이, 원맨밴드 영상은 당연히 음향에 공을 들인다. Pro Audio Interface를 사용해 DAW에 각 테이크의 음성을 잘 맞춰서 녹음을 한다. 

그러면 당연히 영상촬영기기가 녹음한 음성정보가 남아 있을 것이다. 옛날 컴퓨터는 Timecode를 사용해 완전히 동일한 음성데이터를 기준으로 각 영상의 Sync를 맞추며, 요즘 컴퓨터는 알아서 맞춰주겠지 생각하며 주위 현장음음 담으면 될테다.


그러면 그냥 웹캠을 사용해서 LINUX에서는 어떻게 하면 될 까?   나는 Ardour라는 DAW툴을 사용한다. 

Ardour와 같은 DAW는 본인의 Timecode를 LTC(audio 시계), MTC(미디 시계) 등을 출력하여, 옛날 날 테이프로 녹화하고 녹음하던 시절 사용하던 데크를 통제할 수 있도록 하고 있다. 

Ardour를 Jack audio connection Kit을 사용해 실행한 후 (윈도우에서 ASIO 같은 역할을 한다), Ardour의 Ltc out을 다른 오디오 채널에 넣어줄 수 있다. 리눅스에서는 오디오 인터페이스에서 루프백을 지원하지 않더라도 루프백과 비슷한 일을 할 수 있다. 

윈도우에서 WDM에 해당하는 Pulseaudio라는 툴이 있는데, pacmd load-module module-jack-source 명령을 사용하면, Jack의 출력을 Pulseaudio의 마이크 입력 장치로 모사할 수 있다. 

이제 시스템의 기본 마이크를 jack-source로 사용하면, 기본 웹캠 녹화 장비가 기본 마이크라고 생각을 하고 함께 녹화 한다. 

나는 guvcview라는 프로그램을 사용하는데 


 
다음처럼 영상을 녹화하면서 타임코드를 담아서 영상을 녹화하고, 영상끼리는 timecode를 기준으로 맞추고, 음성은 DAW에 녹음을 한 후 최종에 영상과 소리를 약간 Shift해서 맞추면 되겠다. 

연습삼아 남의 음원을 따라만들기를 한다면, Timecode대신 그냥 해당 MR의 출력을 LTC대신 사용해도 된다. 어차피 같은 음성이면 충분하며, 영화처럼 씬이 많은거 아니면 의미가 없다. 혼자서 클래식을 한다면 ... 그냥 LTC를 쓰는걸 추천하며, 7분이내 라면 고정된 기본 음원으로도 알아서 컴퓨터가 잘 해 줄 것이다. 

webcam이 아니라 캠코더를 사용한다면, Audio interface의 한개 출력으로 음원이나 LTC 신호를 빼서 녹화를 하면 되겠다. 

가장 문제는 녹화 버튼을  DAW를 통해 통제하는 방법이 있을 지에 대한 문제이다. 페달이나 MIDI 장비로 GUI환경을 다루던가, guvcview 같은데서 dbus를 지원하면 가능할 것이고, 외부 웹캠 장비는 방법이 없다. 그냥 요즘 SD카드가 싸니까 앞뒤로 길게 녹화되던가 말던가 길게 찍는게 좋을 것이다. 중간에 컨버터를 주렁주렁 달면 Sony 가정용 캠코더도, RS232 Serial 접속으로 명령을 넣는게 가능하지만, 이 컨버터는 Sony홈페이지에서도 안파니, 어떻게하는건지도 모르는 WIFI Direct로 캠코더를 원격조정한다거나 하는 방법을 써야할 것이다. 어렵다 가능할 것 같지 않다. 정품 무선리모콘 제품을 산 후 적외선 신호를 후킹해서, 컴퓨터로 적외선 신호를 내뿜는 방법도 쓸 수 있지만, 이런걸 할 기술 스택을 쌓는건 시간 낭비가 무지막지하다. 

그냥 길게 녹화하고, 끄는 걸 까먹으면 그냥 나중에 잘라서 쓰는걸 추천한다. 

  어찌되던 간에 이제 리눅스에서 원맨밴드를 잘 할 수 있는 방법을 알게 되었다. 영상을 찍어보자.

그 전에 악기 연습을 좀 해야겠지.


Violin은 B flat,F,C,G,D,A 빠르지만 않으면 가능하고, Cello는 이제 배워서 현란하지만 않으면 D,G(조금) 코드 곡 가능할 것이다. 

기타는 스트럼은 웬만하면 될 거고, 안되면, 카포를 이용하면 될거다.

기타 솔로는 한마디 테이크를 한 20번 하면 녹음이 가능하다. 

드럼은 그냥 마스터키보드로 찍고, 피아노도 마스터 키보드로 찍고, 

베이스는 근음 셔틀 아주 잘 가능하고 

자 열심히 해봐야 악기 몇개 안된다. ...그냥 이거 쓸 시간에 수동으로 싱크 맞추는게 제일 좋은 방법이었다. 

근데 나같은 초보는 하루만에 이걸 다 할 리 없으니,  영상에 시간표를 다는 이 방법이 얼마나 좋은가.

가장 많이 본 글