@ihabdevteam/core 0.267.0 → 0.269.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 +106 -0
- package/dist/components.cjs.js +25 -25
- package/dist/hooks.cjs.js +1 -1
- package/dist/i18n.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +18 -18
- package/dist/ihabdevteam-core.d.ts +1 -1
- package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.js +15 -1
- package/dist/packages/core/src/components/Training/useNoiseFade.d.ts +13 -1
- package/dist/packages/core/src/components/Training/useNoiseFade.js +16 -9
- package/dist/packages/core/src/components.d.ts +1 -1
- 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,82 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
> 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
|
|
8
8
|
> 제 이야기를 못 찾는다.
|
|
9
9
|
|
|
10
|
+
## 0.269.0
|
|
11
|
+
|
|
12
|
+
### 소음 설정의 **모양**도 함께 연다 — `CoreNoiseSettings` · `CoreNoiseType`
|
|
13
|
+
|
|
14
|
+
`NoisePlayerContext` · `DEFAULT_NOISE_SETTINGS` 는 열려 있는데 그 값을 담는 타입이 안 열려
|
|
15
|
+
있었다. 그래서 **그 바탕을 직접 세우려는 쪽**이 `setSettings` 의 인자를 적을 수 없었다 —
|
|
16
|
+
놀이터에 소음 자리를 만들다 걸렸다. 값과 그 값의 모양은 같이 나간다.
|
|
17
|
+
|
|
18
|
+
### 놀이터에 **소음을 켠 재생기 자리**를 세운다 — 0.268.0 을 실측했다
|
|
19
|
+
|
|
20
|
+
앱에서는 훈련 팝업이 소음 바탕을 깔지만 홀로 선 재생기에는 아무도 안 깔아 준다. 그래서
|
|
21
|
+
놀이터에서는 소음이 **아예 안 나서**, 0.268.0(소음을 뜸부터 깔기)을 **코드를 읽어 내고
|
|
22
|
+
시험으로만 못 박았다** — CHANGELOG 에 "실측은 아직 못 했다" 로 남겨 둔 자리다.
|
|
23
|
+
|
|
24
|
+
자리를 세우고 쟀다(`#training-step` → `소음 + 앞뒤 뜸`, 새로 고친 뒤 진짜 클릭,
|
|
25
|
+
`HTMLMediaElement.prototype.play`·`pause` 를 감시):
|
|
26
|
+
|
|
27
|
+
2456 play noise1.mp3 (loop) ← 소음이 앞 뜸 시작에 선다
|
|
28
|
+
3457 play C02013.mp3 ← 단어는 1001ms 뒤
|
|
29
|
+
3458 play noise1.mp3 ← `play` 쪽 두 번째 호출 — 안 끊겼다
|
|
30
|
+
17553 pause C02013.mp3 ← 뒤 뜸 1006ms 뒤의 정리
|
|
31
|
+
17812 pause noise1.mp3 ← 페이드아웃 250ms 뒤
|
|
32
|
+
|
|
33
|
+
**셋 다 확인됐다.** 소음이 단어보다 **정확히 1001ms 먼저** 서고, 앞 뜸 1000ms 내내
|
|
34
|
+
`pause` 가 없고(감시가 800ms 에 안 껐다), 뒤 뜸도 끝까지 간다(소리 끝 ≈ 16547 → 정리
|
|
35
|
+
17553). 소음이 깔린 총 길이는 15356ms = 1000 + 13090 + 1000 + 페이드 250 이다.
|
|
36
|
+
|
|
37
|
+
**말귀가 앱에서 따로 쟀고 값이 맞는다** — 소음이 단어보다 **1002ms** 앞(여기서는 1001ms),
|
|
38
|
+
소음 요소의 `volume`·`paused` 가 3.6초 동안 **한 번도 안 바뀜**. 같은 결론에 서로 다른
|
|
39
|
+
자(이쪽은 `play`/`pause` 호출을 가로채고, 그쪽은 소음 요소를 쥐고 80ms 마다 값을 뜸)로
|
|
40
|
+
닿았다.
|
|
41
|
+
|
|
42
|
+
> **겹치기(뜸과 불러오기)는 안 한다.** 소음이 뜸에 깔리게 되면서 그 1초가 "빈 1초" 가
|
|
43
|
+
> 아니라 **"소음만 깔리는 1초"** 가 됐다 — 소음 하 훈련에서 귀가 소음에 자리를 잡는
|
|
44
|
+
> 시간이다. 겹치면 그 길이가 **망 속도로 정해진다**(빠르면 사라지고 느리면 남는다).
|
|
45
|
+
> 훈련 조건이 망 속도를 타는 것은 안 좋다(말귀 판단, 2026-10-05). 소음 없는 자리는
|
|
46
|
+
> 앱이 **미리 받아 두는 것**으로 풀었다(실측 24.7초 → 2.3초).
|
|
47
|
+
|
|
48
|
+
## 0.268.0
|
|
49
|
+
|
|
50
|
+
### 뜸이 **완전한 무음**이었다 — 소음은 뜸부터 깔린다 (말귀 요청 (74) 이어서)
|
|
51
|
+
|
|
52
|
+
(74) 를 내고 나서 소음 쪽을 짚어 보니 **뜸 동안 소음이 안 났다.** `fadeInNoise` 가 `play`
|
|
53
|
+
이벤트에서만 불렸으니, 소음이 **단어와 같이** 왔다.
|
|
54
|
+
|
|
55
|
+
그러면 뜸을 둔 뜻이 없다. 뜸은 소리가 터지지 않게 두는 구간인데 거기가 무음이면, 단어가
|
|
56
|
+
소음과 함께 들이닥치는 것은 그대로다. 사용자가 (74) 를 말할 때 기준으로 삼은 것도
|
|
57
|
+
**"노이즈가 나오는 순간부터 재생바도 움직여야 한다"** 였다 — 그 순간이 단어와 겹치면
|
|
58
|
+
기준 자체가 성립하지 않는다.
|
|
59
|
+
|
|
60
|
+
**더 나쁜 쪽이 있었다. 감시가 뜸 한가운데서 소음을 껐다.** `useNoiseFade` 의 감시 타이머는
|
|
61
|
+
"메인 `<audio>` 가 도나" 만 보고 두 번 어긋나면(약 0.8초) 소음을 내린다. 그런데 뜸 동안
|
|
62
|
+
메인은 **멈춰 있다** — 앞 뜸에는 아직 `play()` 전이고, 뒤 뜸에는 이미 `ended` 다.
|
|
63
|
+
**1000ms 뜸이면 800ms 에 소음이 꺼진다.** 소음을 켜기만 하고 이쪽을 안 고쳤으면 앞 뜸은
|
|
64
|
+
"소음이 잠깐 났다 끊기는" 구간이 됐을 것이다.
|
|
65
|
+
|
|
66
|
+
그래서 **둘을 함께** 고친다.
|
|
67
|
+
|
|
68
|
+
1. 앞 뜸이 시작될 때 소음을 올린다. `play` 쪽 호출은 그대로 둔다 — `fadeInNoise` 는 이미
|
|
69
|
+
돌고 있으면 지금 볼륨에서 목표까지 이어 가므로(멀티소스 전환 때문에 그렇게 돼 있다)
|
|
70
|
+
두 번 불려도 안 끊긴다.
|
|
71
|
+
2. 뜸 구간을 **재생 중으로 센다**(`padRef`). 감시 타이머 · 탭 복귀 · 소음 설정 변경 —
|
|
72
|
+
"메인이 도나" 를 묻던 **네 자리** 전부.
|
|
73
|
+
|
|
74
|
+
시험은 **고치기 전에 실제로 빨개지는지** 확인했다(`test/useNoiseFade.test.tsx` 의 앞 뜸 ·
|
|
75
|
+
뒤 뜸 둘). 거기에 "뜸이 끝나면 다시 걷는다" 를 함께 뒀다 — 그것이 없으면 앞 둘은
|
|
76
|
+
**감시를 꺼 버려도** 통과한다.
|
|
77
|
+
|
|
78
|
+
`test/audioPlayerPadWiring.test.ts` 에 **소음을 켜는 자리의 묶음**을 세는 문을 뒀다
|
|
79
|
+
(`useNoiseFade` 넷 · `useTTSPlayback` 하나 · 재생기 둘). 그 결정이 흩어진 채로 자라면
|
|
80
|
+
한 자리만 안 따라가서 소음이 났다 끊겼다 한다.
|
|
81
|
+
|
|
82
|
+
> **실측은 아직 못 했다.** 놀이터에는 `NoisePlayerContext` 가 없어 홀로 선 재생기에 소음을
|
|
83
|
+
> 걸 수가 없다. 이 판은 **코드를 읽어 길을 보고 시험으로 못 박은 것**이다 — 앱에서
|
|
84
|
+
> 소음을 켠 채 앞 뜸을 주고, 소음이 누름 기준 몇 ms 에 올라오는지 재 주면 확인된다.
|
|
85
|
+
|
|
10
86
|
## 0.267.0
|
|
11
87
|
|
|
12
88
|
### 뜸이 **앱까지 닿지 않았다** — `TrainingStepListen` 이 가운데에서 끊었다 (말귀 실측)
|
|
@@ -28,6 +104,36 @@ All notable changes to this project will be documented in this file.
|
|
|
28
104
|
`ended` → 뒤 뜸 → 다음 소리 실어 `play()` 앞에 앞 뜸, 차례가 그렇다. 앞뒤 1000ms 면
|
|
29
105
|
소리 사이가 **2000ms** 다(같은지 다른지 맞히기의 1 → 2, 듣고 순서대로 기억하기의 세 소리).
|
|
30
106
|
|
|
107
|
+
**실측으로 못 박았다**(2026-10-05, 놀이터 `#training-step` → `leadInMs · tailMs` 의 두 소리
|
|
108
|
+
재생기, 새로 고친 뒤 진짜 클릭):
|
|
109
|
+
|
|
110
|
+
누름 0
|
|
111
|
+
play C02013 1951 ← 불러오기 + 앞 뜸
|
|
112
|
+
ended C02013 15055
|
|
113
|
+
play C19015 17058 ← 사이 2003ms (뒤 1000 + 앞 1000)
|
|
114
|
+
|
|
115
|
+
**첫 소리만 다르다** — 앞 뜸이 불러오기 *뒤에* 붙으므로, 처음 누를 때는 불러온 시간이 더해진다.
|
|
116
|
+
둘째부터는 소리가 이미 손에 있어 뜸만 남는다.
|
|
117
|
+
|
|
118
|
+
> **남은 자리: 첫 누름의 앞 860ms 는 재생바가 아직 0% 다.** 같은 자리에서 60ms 마다 떠 보면
|
|
119
|
+
>
|
|
120
|
+
> 0 누름
|
|
121
|
+
> 0~840 채움 0% ← 불러오기·파형 준비
|
|
122
|
+
> 757 loadstart
|
|
123
|
+
> 790 canplay
|
|
124
|
+
> ~860 앞 뜸 시작 → 채움이 움직이기 시작
|
|
125
|
+
> 1867 play
|
|
126
|
+
>
|
|
127
|
+
> 말귀가 짚었던 **2029ms 의 멈춘 재생바가 860ms 로 줄었지만 0 은 아니다.** 그 860ms 는
|
|
128
|
+
> 뜸이 아니라 **불러오기**다 — 진행이 실제로 나아가지 않는 구간이라, 거기서 재생바를
|
|
129
|
+
> 움직이면 거짓을 그리게 된다(그 구간에는 불러오는 중이라는 제 표시가 따로 있다).
|
|
130
|
+
>
|
|
131
|
+
> 줄이려면 **뜸과 불러오기를 겹쳐야** 한다 — 누르는 순간 앞 뜸을 시작하고 그동안 받아서,
|
|
132
|
+
> 받기가 뜸보다 빠르면 누름 → 소리가 앞 뜸 길이로 수렴한다. 사람 귀에는 어느 쪽이든
|
|
133
|
+
> 조용한 구간이라 바뀌는 것은 **길이뿐**이다. 다만 소음이 언제 올라오는지가 함께 움직이므로
|
|
134
|
+
> (소음은 뜸 구간에 깔린다) 재서 정할 일이다. **안 했다** — 쓰는 쪽의 소리 길이를 바꾸는
|
|
135
|
+
> 결정이라 값을 쥔 쪽에서 정하는 것이 맞다.
|
|
136
|
+
|
|
31
137
|
### 기본값은 **0 으로 둔다**
|
|
32
138
|
|
|
33
139
|
말귀 실측: 사용자가 화면에서 들어 보며 300 → 500 → 1000 으로 세 번 올려 **앞 1000 · 뒤 1000**
|