multi cards
All checks were successful
Deploy App / build (push) Successful in 2m4s
Deploy App / deploy (push) Successful in 21s

This commit is contained in:
valere
2026-02-11 16:49:34 +01:00
parent 620112d9ba
commit 399519d1d4
8 changed files with 276 additions and 105 deletions

View File

@@ -77,7 +77,7 @@ class Disc {
private _inertiaFriction: number = 1 // Coefficient de frottement pour l'inertie (plus proche de 1 = plus long)
private _lastDragVelocity: number = 0 // Dernière vitesse de drag
private _lastDragTime: number = 0 // Dernier temps de drag
private _inertiaAmplification: number = 45 // Facteur d'amplification de l'inertie
private _inertiaAmplification: number = 25 // Facteur d'amplification de l'inertie
private _previousDuration: number = 0 // Pour suivre les changements de durée
public isReversed: boolean = false
@@ -131,7 +131,7 @@ class Disc {
this._draggingSpeeds = limit(this._draggingSpeeds, 10)
this._playbackSpeed = average(this._draggingSpeeds)
this._playbackSpeed = clamp(this._playbackSpeed, -4, 4)
// this._playbackSpeed = clamp(this._playbackSpeed, -4, 4)
}
get secondsPlayed() {
@@ -354,11 +354,11 @@ class Disc {
this._inertiaVelocity = 0
this._isInertiaActive = false
this._playbackSpeed = 0
this._basePlaybackSpeed = 0
this._basePlaybackSpeed = 1
this.el.style.transform = 'rotate(0rad)'
this.callbacks.onStop()
this._isPoweredOn = false
this.stop()
// this.callbacks.onStop()
// this._isPoweredOn = false
// this.stop()
return 0
}
// Arrêt à la fin (angle >= _maxAngle)

View File

@@ -132,6 +132,24 @@ class Sampler {
unmute() {
this.gainNode.gain.value = 1
}
/**
* Définit le taux de lecture (vitesse de lecture)
* @param rate Taux de lecture (1.0 = vitesse normale, 0.5 = moitié de vitesse, 2.0 = double vitesse, etc.)
*/
setPlaybackRate(rate: number) {
if (!this.audioSource) return
const currentTime = this.audioContext.currentTime
this.audioSource.playbackRate.cancelScheduledValues(currentTime)
this.audioSource.playbackRate.linearRampToValueAtTime(
Math.max(0.001, Math.abs(rate)), // Éviter les valeurs négatives ou nulles
currentTime + 0.05 // Petit délai pour éviter les clics
)
// Mettre à jour la vitesse actuelle
this.currentSpeed = rate
}
}
export default Sampler