edit - preferences

 

midi - midi port config 에 가보면

악기 번호 이런것도 없고 그냥 바로 보인다.

 

in / out 모두 체크해주고

 

신나게 막 눌러보면 아래처럼 레벨미터가 뜬다.

 

근데 어떻게 기록하지?

'모종의 음모 > midi 피아노' 카테고리의 다른 글

악보 - 보표와 옥타브  (0) 2026.09.09
lmms 악기 교체(프로그램)  (0) 2026.09.09
피아노 운지법  (0) 2026.09.08
피아노 55잭에 소리가 작아!  (0) 2026.09.08
피아노 강좌  (0) 2026.09.04
Posted by 구차니

openSCAD 와 다르게 python / javascript 로 작동되는 파라매트릭 설계 라이브러리

 

[링크 : https://github.com/gumyr/build123d] python  기반

[링크 : https://fluidcad.io/] javascript 기반

    [링크 : https://wikidocs.net/blog/@jaehong/11371/]

'프로그램 사용 > openSCAD' 카테고리의 다른 글

openSCAD + claude.ai = 파라메트릭 모델링  (0) 2026.07.13
openSCAD MCP  (0) 2026.06.20
pythonSCAD  (0) 2026.06.20
openSCAD cheatsheet  (0) 2026.06.20
openSCAD 설치  (0) 2026.06.20
Posted by 구차니
embeded/Cortex-M3 STM2026. 9. 10. 21:41

흐음...?

일단 gpio 읽을 row high + col read 조합으로 하는데 (풀때는 row low)

col 하나가 눌리면 다른 row에서 해당 col은 읽히지가 않아서 찾아보니

high-z로 가야지 읽을수 있다고 한다. 테스트는 필요함

 

by claude

STM32 HAL에는 "Hi-Z로 쓰기" 함수가 없어서, 핀 모드를 **입력(No Pull)**으로 바꿔야 Hi-Z가 됩니다. 행을 스캔할 때만 출력으로 바꾸고, 끝나면 다시 입력으로 돌리면 됩니다.


static void row_pin_mode(uint16_t pin, uint32_t mode)
{
    GPIO_InitTypeDef init = {0};
    init.Pin   = pin;
    init.Mode  = mode;
    init.Pull  = GPIO_NOPULL;
    init.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA, &init);
}



static inline void pin_hiz(GPIO_TypeDef *port, uint16_t pin)
{
    uint32_t pos = __builtin_ctz(pin) * 2U;
    port->MODER &= ~(0x3U << pos);                               // 00: Input (Hi-Z)
}

static inline void pin_output(GPIO_TypeDef *port, uint16_t pin)
{
    uint32_t pos = __builtin_ctz(pin) * 2U;
    port->MODER = (port->MODER & ~(0x3U << pos)) | (0x1U << pos); // 01: Output
}

 

 

by chatgpt

GPIOA->CRL &= ~(0xF << (1 * 4));
GPIOA->CRL |=  (0x4 << (1 * 4));

여기서 0x4는:

MODE = 00  → Input
CNF  = 01  → Floating input

여러 핀을 한꺼번에

예를 들어 PA1, PA2, PA3을 모두 Hi-Z로:

GPIOA->CRL &= ~(
    (0xF << (1 * 4)) |
    (0xF << (2 * 4)) |
    (0xF << (3 * 4))
);

GPIOA->CRL |= (
    (0x4 << (1 * 4)) |
    (0x4 << (2 * 4)) |
    (0x4 << (3 * 4))
);
Posted by 구차니
프로그램 사용/freecad2026. 9. 10. 17:06

freeCAD에서 openFOAM을 이용해서 cfd 할 수 있는 플러그인

솔리드웍스 처럼 통합은 못해도 쓰는게 편하기라도 하면 좋겠네

 

[링크 : https://blog.naver.com/heennavi1004/223829709527]

[링크 : https://yyman.tistory.com/1053]

[링크 : https://blog.naver.com/localid/222302561603]

'프로그램 사용 > freecad' 카테고리의 다른 글

gemini + freecad  (0) 2025.09.01
claude mcp + freecad  (0) 2025.08.31
freeCAD + openFOAM  (0) 2025.08.29
freecad + MCP  (0) 2025.08.29
freecad on ubuntu 24.04  (0) 2025.05.18
Posted by 구차니

nvidia dgx 의 v100, a100 이런 애들이 쓰는 소켓인데

[링크 : https://en.wikipedia.org/wiki/SXM_(socket)]

 

맨날 이런 은색 8개만 있는 것들만 사진으로 봐서 8핀짜리 초고속 인터페이스 인가 싶어 검색해보니

이런식으로 접점이 어마어마한 녀석이었나 보다.

 

먼가.. nvidia에서 한거라서 그런가. jetson tx 모듈 커넥터 비슷한 느낌이기도 하다

[링크 : https://l4rz.net/running-nvidia-sxm-gpus-in-consumer-pcs/]

 

[링크 : https://connecttech.com/product/nvidia-jetson-tx2-module-900-83310-0001-000/]

'하드웨어 > 커넥터 (Connector)' 카테고리의 다른 글

i-pex 커넥터 MHF1 / MHF4L  (0) 2026.03.19
press fit type 커넥터  (0) 2025.05.16
FAKRA  (0) 2022.08.17
USB3.0 커넥터  (1) 2022.03.24
m.2 와 mini PCI-e  (0) 2022.01.26
Posted by 구차니

먼가 이해가 안되서 끄적끄적

row 0(윗줄)에 high로 흘리고

col 0 / col 1 에서 읽으면 키를 눌러서 연결되어있으니 둘 다 읽히고

 

row 1(아랫줄) 을 읽기 위해서 row 0을 low로 하고 row 1을 high로 하면

row 0, col 1 과 row 1, col 1이 전기적으로 이어지면서 row 1의 전기가 row 0로 넘어가게 되고

row0 를 타고 col 0에 들어가서

눌리지 않은 row 1, col 0이 눌린것으로 오인식되게 된다.

 

신기하네..

그래서 다이오드 쓴다고.

 

얘는 누르지 않아는데 눌린걸로 착각하는 "고스팅"

얘는 스캔라인이 다른데 두개 누르면 안눌린걸로 착각하게 되는 현상인데.. 이건 딱히 용어가 없네

잘은 모르겠지만.. col 쪽 gpio의 threshold를 넘길수 없어서 안눌린걸로 인식되는걸까?

다른 row는 0으로 되어있으니 다른쪽으로 쭈르르르륵 다 빨려들어가서 0으로 되거나?

+

GPT 말로는 2 key roll over / masking 이라고 표현한다고 하는데.. 맞나?

그리고 gpio를 row에서 low/high 값 대신 high-Z(init) / high로 해보란다.

레지스터 직접 건드리면 init까진 아니어도 된다는데 CRL 레지스터에 쓰면 된다고 한다.

 

블로킹은

소스코드(그러니까 작동 알고리즘상)에서 고스팅을 방지하기 위해서 어떤 키가 잘못 눌리는지 판단해서 차단해버리는거

여긴 진짜로 눌렀는데 고스팅 처리에 의해서 막혀서 안눌리게 되는걸 의미하는 듯.

'모종의 음모 > USB 자작 키보드' 카테고리의 다른 글

kicad로 키보드 설계하기  (0) 2026.09.10
커스텀 키보드 자작 아이디어  (2) 2026.09.01
Posted by 구차니
Posted by 구차니

도는 도인데

왼손 한옥타브 위는 오른손 가온도 위치이고

악보상에서 왼손에서 내려가면 한 옥타브 낮은 도는 둘째칸에 생긴다.

 

낮은 음자리표 도에서 7개(도시라솔파미레도) 내려가보면 오른쪽이 나온다.

[링크 : https://m.blog.naver.com/piani312/222121550244]

 

 

한 음표만 특정 옥타브로 8va 이렇게 표시해서 보내버릴수도 있고 

8 줄 치고 혹은 8va 줄 쳐서 해당 영역의 옥타브를 같은 악보상에서 표현할 수 있다고 한다.

가온도는 C4 라고 표시되는데(4번째 옥타브, 도)

8va는 올리거나 내리라는 의미라고 하고

실제로 아래 보면 C3 / C1 / C1 이라고 쓰여있는데

가온도가 C4(오른손 도) 에서 한옥타브 래여와서 왼손이 C3 치고 있는데

거기서 하나더 내려오면 C2 인데 8va 붙여서 C1 으로 치게 되나보다..

와.. 어려워 -_-

[링크: https://m.blog.naver.com/ysymk/222257262619]

'모종의 음모 > midi 피아노' 카테고리의 다른 글

ardour6 midi 연결  (0) 2026.09.13
lmms 악기 교체(프로그램)  (0) 2026.09.09
피아노 운지법  (0) 2026.09.08
피아노 55잭에 소리가 작아!  (0) 2026.09.08
피아노 강좌  (0) 2026.09.04
Posted by 구차니

얼핏 보기로는 국제 표준으로 버튜버 모델에 대한게 있다고 하던데 그 샘플인가?

 [링크 : https://miko.aituberonair.com/ko/]

 

음.. 일단 플러그인도 있으니 나중에 시도는 해봐야겠다.

[링크 : https://vrm-addon-for-blender.info/en-us/]

'프로그램 사용 > Blender' 카테고리의 다른 글

blender sculpting - trim  (0) 2026.09.04
blender 객체 중심에 오게 하기  (0) 2026.09.04
blender spot light  (0) 2026.09.04
blender eevee / cycle 렌더 헤드리스  (0) 2026.09.04
blender 창 나누기. 카메라 뷰 보기  (0) 2026.08.28
Posted by 구차니
Linux API/linux2026. 9. 9. 17:17

gpt 말로는 scanf() 같이 터미널에서 입력 받는 등, pipe 보다는 터미널의 영향을 받는 프로그램을 테스트 하기 좋다고. 

forkpty는 fork + openpty 라는데 한번 둘러는 봐야겠다.

 

The openpty() function finds an available pseudoterminal and returns file descriptors for the master and slave in amaster and aslave. If name is not NULL, the filename of the slave is returned in name. If termp is not NULL, the terminal parameters of the slave will be set to the values in termp. If winp is not NULL, the window size of the slave will be set to the values in winp.
The login_tty() function prepares for a login on the terminal fd (which may be a real terminal device, or the slave of a pseudoterminal as returned by openpty()) by creating a new session, making fd the controlling terminal for the calling process, setting fd to be the standard input, output, and error streams of the current process, and closing fd.

The forkpty() function combines openpty(), fork(2), and login_tty() to create a new process operating in a pseudoterminal. The file descriptor of the master side of the pseudoterminal is returned in amaster, and the filename of the slave in name if it is not NULL. The termp and winp arguments, if not NULL, will determine the terminal attributes and window size of the slave side of the pseudoterminal.

[링크 : https://linux.die.net/man/3/openpty]

[링크 : https://linux.die.net/man/3/forkpty]

'Linux API > linux' 카테고리의 다른 글

kernel driver  (0) 2026.04.06
커널 cmdline 관련 함수  (0) 2026.04.03
kernel input_event()  (1) 2025.12.23
linux 시리얼 포트 열기(termios)  (0) 2025.10.11
LD_DEBUG=libs  (0) 2025.06.02
Posted by 구차니