@ihabdevteam/core 0.273.0 → 0.275.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,66 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.275.0
11
+
12
+ ### 진폭이 **진짜 0 인 자리**에 막대를 그리지 않는다 (말귀 요청 (82))
13
+
14
+ 둘이 겹쳐 있었다. 하나는 **내가 0.266.0 에서 넣은 규칙이 너무 넓었던 것**이고, 하나는
15
+ **소음 파일 자체**였다.
16
+
17
+ **(가) 바닥값을 뜸 자리에만 깐다.** 0.266.0 은 "깔개(소음 층)가 없으면 문장 막대를 안
18
+ 숨긴다" 였는데, 그 **모든** 칸에 깔았다. 그래서 **소리 구간 한가운데의 진짜 무음까지** 4px
19
+ 막대가 되어 **없는 소리를 있다고 그렸다** — 말귀 실측(소음 비율 0): 100칸 중 0 인 칸이
20
+ 하나도 없고 최소가 바닥값 0.0889. 사용자가 그 가로줄을 짚었다.
21
+
22
+ 가름선은 **왜 비었나** 다. 뜸 자리는 **설계로** 소리가 없는 곳이라 끊기면 파형이 잘려
23
+ 보이고, 소리 구간 안의 무음은 **그 소리가 실제로 조용한 것**이라 그리면 거짓이 된다.
24
+ 이제 바닥은 뜸 자리에만 깔린다.
25
+
26
+ > 0.266.0 때 "양끝이 잘려 보인다" 고 적은 것은 **내가 놀이터에서 본 것**이었고, 사용자가
27
+ > 짚은 것은 소음 층 쪽이었다(그건 (76) 에서 따로 고쳤다). **내 눈보다 쓰는 사람의 눈이
28
+ > 먼저다.** 그때 쓴 시험 둘이 이번에 막아섰는데 — **그 둘이 지키던 값이 틀린 값**이었다.
29
+
30
+ **(나) 루프되는 바탕 소리는 앞머리 무음을 건너뛰고 뜬다.** mp3 는 인코더 지연 때문에 앞에
31
+ 무음이 붙는다. 실측(2026-10-06, 소음 파일 넷 · 48kHz):
32
+
33
+ noise1 45.6ms noise4 62.0ms
34
+ noise2-01 66.3ms noise3-01 62.4ms
35
+
36
+ **하나도 빠짐없이** 46~78ms 가 비어 있다. 긴 창에서는 안 보이는데 **창이 짧으면 그 무음이
37
+ 앞칸 여럿을 먹는다** — 1초 창에 100칸이면 한 칸이 10ms 라 **앞 6~8칸**이 봉우리 0 이 된다
38
+ (말귀가 화면에서 센 수와 같다: *"앞부분 노이즈 파형이 왜 작아?"*).
39
+
40
+ 게다가 소음은 **루프**라 그 무음은 맨 처음 한 번만 지나가는데 그림은 내내 보여 준다 —
41
+ **들리는 것과 다른 것을 그리고 있었다.** 그래서 소음만 앞머리 무음을 건너뛰고 뜬다.
42
+ **문장에는 안 켠다**: 문장의 앞 무음은 진짜 그 소리의 일부이고 앞뒤 뜸((74))이 그 위에서
43
+ 셈된다.
44
+
45
+ 고친 뒤 실측(놀이터, 소음 켠 재생기): 소음 앞 10칸이 **0.383~0.393** 이고 바닥값과 같은
46
+ 칸이 **0개**(전에는 앞 6~8칸이 0.0889 로 눌려 있었다).
47
+
48
+ ## 0.274.0
49
+
50
+ ### `모두 듣기` 의 **낱말 사이 뜸** — `playAllGapMs` (말귀 요청 (79))
51
+
52
+ `TrainingStepCard` 의 `모두 듣기` 는 앞 카드가 끝나자마자 다음을 틀었다. 그래서 들리는
53
+ 사이가 **설계된 값이 아니라 그 카드를 받아 오는 시간**이었다 — 남은 시간이지 정한 시간이
54
+ 아니다. 말귀 실측(`첫 음절이 같은 단어 맞히기` 카드 셋): 안 받아 둔 판 1895ms · 555ms,
55
+ **같은 단추를 다시 누른 판 11ms · 9ms.**
56
+
57
+ 낱말끼리 **견주는** 훈련인데 9ms 면 세 낱말이 한 숨처럼 이어져 가를 수가 없다. 그리고
58
+ 그 사이가 **망 속도로 정해진다** — 빠른 망에서 더 어려워지는 훈련은 조건이 안 선다
59
+ ((74) 에서 겹치기를 안 한 까닭과 같다).
60
+
61
+ `playAllGapMs` 를 더한다(기본 0 — 안 주면 전과 똑같다). **앞 카드가 끝난 뒤부터** 세고,
62
+ 마지막 뒤에는 안 둔다. 멈춤 신호와 함께 기다려 **누르는 순간 바로 걷힌다.**
63
+
64
+ `leadInMs`·`tailMs` 와 같은 결이다 — 그쪽은 한 소리의 앞뒤, 이쪽은 카드와 카드 사이.
65
+ 뜸이 그렇듯 **재생 속도를 타지 않는다**(0.273.0).
66
+
67
+ `test/cardPlayAllGap.test.tsx` 는 **값이 아니라 차례**를 묻는다 — 앞 카드가 *끝난 뒤* 세는가,
68
+ 마지막 뒤에는 안 두는가, 기본 0 이면 전과 같은가. 뜸을 빼 보고 빨개지는지 확인했다.
69
+
10
70
  ## 0.273.0
11
71
 
12
72
  ### **뜸은 재생 속도를 안 탄다** — 정한 자리를 적어 둔다