@ihabdevteam/core 0.125.0 → 0.126.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,31 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.126.0
11
+
12
+ ### 고침 — 볼륨을 GainNode 로 건다: iOS 실기기에서 전체 소리·소음 비율이 안 먹었다 (`audioMeter` · 훈련 플레이어 · 소음)
13
+
14
+ Apple 문서상 실제 iPhone·iPad 에서는 `HTMLMediaElement.volume` 을 스크립트로 바꿔도 소리에 안 먹는다(늘 1).
15
+ 코어는 문제 소리 램프·소음 페이드를 모두 요소 volume 으로 조절했으므로 iOS 에서는 전체 소리·소음 비율이
16
+ 둘 다 안 먹고, 2배 소음 파일(`noiseFileGain: 2`)이면 소음이 늘 2배로 들릴 수 있었다(말귀 사용자 결정).
17
+
18
+ - 미터가 이미 태우던 그래프에 GainNode 를 끼웠다: `source → gain → (analyser, destination)`. 태운 요소는
19
+ volume 을 1 로 두고 **gain** 으로 크기를 건다(문제 소리 = `effectiveSpeechVolume`, 소음 = `noiseElementVolume`).
20
+ 미터는 gain 뒤라 들리는 크기를 읽는다.
21
+ - **새 내보내기**(`@ihabdevteam/core/utils`): `setElementVolume(el, v)` — 태운 요소면 gain(`setTargetAtTime`,
22
+ 시정수 10ms)에, 아니면 요소 volume 에 걸고 `'gain' | 'element'` 를 준다. `getElementVolume(el)` — 건 값.
23
+ `routeElementAudio(el)` — 태우고 analyser 를 주는 Promise.
24
+ - 램프는 전과 같은 150ms(문장)·250ms(소음 페이드) RAF 램프가 매 프레임 `setElementVolume` 을 부르고,
25
+ 문장은 200ms 끝값 타이머도 그대로다.
26
+ - **순서**: 달리는(running) 컨텍스트에만 태운다. suspended 면 resume 을 기다린 뒤 태우고, 그 전에는 요소가
27
+ 제 볼륨으로 직접 운다 — 태운 순간부터 요소 소리는 destination 으로만 나가므로 suspended 에 태우면 무음이다.
28
+ resume 이 안 되면(제스처 없음) 태우지 않는다. 컨텍스트를 만들 때 `pointerdown`·`touchend`·`keydown`
29
+ (capture·passive)에 멈춘 컨텍스트를 깨우는 듣개를 한 번 단다.
30
+ - **폴백**: AudioContext 없음·`createMediaElementSource` 실패는 요소 volume 에 건다(전과 같다).
31
+ - **CORS**: 문장 `<audio>`·소음 요소는 둘 다 이미 `crossOrigin="anonymous"` 다(그래프 출력이 무음이 되지 않게).
32
+ - **바뀐 동작** `getElementAnalyser(el)`: 컨텍스트가 suspended 면 이제 **바로 태우지 않고 null** 을 주며
33
+ resume 뒤 태우기를 걸어 둔다. `AudioMeter` 는 그 경우 `routeElementAudio` 를 기다려 다시 돈다.
34
+
10
35
  ## 0.125.0
11
36
 
12
37
  ### 고침 — 소음 비율 1~2배를 올려도 소음이 커지지 않았다: 키운 소음 파일로 푼다 (`NoisePlayerContext` · `configureStorage`)