@ihabdevteam/core 0.272.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 +98 -0
- package/dist/components.cjs.js +173 -173
- package/dist/hooks.cjs.js +1 -1
- package/dist/i18n.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +85 -85
- package/dist/ihabdevteam-core.d.ts +33 -2
- package/dist/packages/core/src/components/Training/AudioPlayerWaveForm.js +16 -4
- package/dist/packages/core/src/components/Training/TrainingStepCard.d.ts +17 -1
- package/dist/packages/core/src/components/Training/TrainingStepCard.js +10 -1
- package/dist/packages/core/src/components/Training/trainingStepAudioPlayerTypes.d.ts +22 -7
- package/dist/packages/core/src/utils/audioPeaks.d.ts +9 -2
- package/dist/packages/core/src/utils/audioPeaks.js +43 -8
- package/dist/packages/core/src/version.d.ts +1 -1
- package/dist/packages/core/src/version.js +1 -1
- package/dist/utils.cjs.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,94 @@ 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
|
+
|
|
70
|
+
## 0.273.0
|
|
71
|
+
|
|
72
|
+
### **뜸은 재생 속도를 안 탄다** — 정한 자리를 적어 둔다
|
|
73
|
+
|
|
74
|
+
말귀가 (78) 을 닫으며 물었다: 느리게 들을 때 뜸도 함께 늘어져야 하나. **아니다.**
|
|
75
|
+
|
|
76
|
+
말귀 실측(0.272.0): 같은 단어가 0.75x 에서 **1022ms**, 1.5x 에서 **506ms** 로 갈리는데
|
|
77
|
+
**사이 뜸은 둘 다 2003~2004ms** 다. 뜸을 `setTimeout` 으로 재니 **저절로 그렇게 되는 것**인데,
|
|
78
|
+
그것이 옳은 쪽이라 그대로 둔다 — 다만 **저절로 되는 자리일수록 왜 그런지 적어야** 다음
|
|
79
|
+
사람이 "버그 아닌가" 하고 고치지 않는다.
|
|
80
|
+
|
|
81
|
+
까닭: 뜸은 **들을 채비**와 **견주는 틈**이지 소리의 일부가 아니다. 느리게 듣는 것은 *소리를
|
|
82
|
+
더 잘 듣기 위해서*이고, 그때 채비 시간까지 늘어질 까닭이 없다. 소음 하 훈련에서 앞 뜸은
|
|
83
|
+
**귀가 소음에 자리를 잡는 시간**인데(0.268.0), 그 시간은 사람 쪽 사정이라 소리 빠르기와
|
|
84
|
+
무관하다. 다르게 가려면 쓰는 쪽이 값을 주면 된다(`leadInMs={1000 / rate}`) — 코어가 정하지 않는다.
|
|
85
|
+
|
|
86
|
+
### 손으로 적은 목록이 **늙지 않게** 센다 — 셋째 문 (말귀 결)
|
|
87
|
+
|
|
88
|
+
`trainingStepListenForwards` 는 **빠진 것**과 **적어 놓고 안 쓰는 것** 둘을 센다. 그 둘이
|
|
89
|
+
`여기서정한다` 라는 **손으로 적은 목록**에 기대는데, 그 목록이 늙으면(재생기에서 없어진
|
|
90
|
+
프롭이 남아 있으면) 아무도 모른다 — 목록이 조용히 자라고 두 문이 그만큼 눈을 감는다.
|
|
91
|
+
|
|
92
|
+
말귀가 저쪽 지킴이에 "**어느 목록에도 없는 새 러너**가 생기면 울게" 둔 결을 가져와, 셋째를
|
|
93
|
+
둔다: **목록의 이름이 전부 재생기에 실재하는가.** 늙은 이름을 심어 보고 빨개지는지 확인했다.
|
|
94
|
+
|
|
95
|
+
> **세 번째가 있어야 목록이 안 늙는다** — 말귀 말이다. 두 문이 목록을 **읽기만** 하면,
|
|
96
|
+
> 목록은 한쪽으로만 자란다.
|
|
97
|
+
|
|
10
98
|
## 0.272.0
|
|
11
99
|
|
|
12
100
|
### 재생 속도가 **소리를 실을 때마다 지워졌다** (말귀 요청 (78))
|
|
@@ -29,6 +117,16 @@ All notable changes to this project will be documented in this file.
|
|
|
29
117
|
하나가 둘이 되는 순간 운다. 거기에 명세대로 되돌리는 `load()` 를 흉내 내 **빠르기가 살아
|
|
30
118
|
남는지** 실제로 재는 시험 넷을 뒀다.
|
|
31
119
|
|
|
120
|
+
**실물로도 쟀다**(놀이터 `#training-step` → `0.75배로 듣기`, 새로 고친 뒤 진짜 클릭):
|
|
121
|
+
|
|
122
|
+
1115 loadstart rate=0.75 def=0.75
|
|
123
|
+
1147 canplay rate=0.75 def=0.75
|
|
124
|
+
4015 play rate=0.75 def=0.75
|
|
125
|
+
21453 ended rate=0.75 def=0.75 ct=13.09
|
|
126
|
+
|
|
127
|
+
**소리가 실제로 17438ms 걸렸다** — 셈은 13090 ÷ 0.75 = 17454ms(차이 16ms), 보통 빠르기면
|
|
128
|
+
13090ms 다. `load()` 를 지나며 빠르기가 안 지워진다. 끝난 뒤 다음 `canplay` 에서도 0.75 다.
|
|
129
|
+
|
|
32
130
|
> **문이 우는지 확인하다 한 번 속았다.** 고침이 두 겹이라 **한 겹만 걷으면 다른 겹이 가려
|
|
33
131
|
> 준다** — "걷었는데 통과한다" 를 잠든 문으로 읽을 뻔했다. 나간 판의 결함을 **그대로
|
|
34
132
|
> 되살려** 재니 넷이 빨개졌다. 두 겹짜리 고침을 지키는 문은 한 겹씩이 아니라 **결함
|