Commit Graph
23871 Commits
Author SHA1 Message Date
Glenn Maynard ffac3acbca fix up infinite loop at EOF 2006-11-30 21:04:51 +00:00
John Bauer c0cb096899 Fix VC++ 8 building. 2006-11-30 19:29:41 +00:00
John Bauer aedcc9f208 Factor out a call to GameState::ResetOptions. Also, move the state that
keeps track of whether NoteSkin was changed or not into GameState.
2006-11-30 19:29:15 +00:00
Chris Danford 6b07fcaed5 add hammer-ons and pull-offs ("hopo") 2006-11-30 12:29:01 +00:00
Glenn Maynard 319158de1a ScreenTestSound 2006-11-30 08:25:28 +00:00
Glenn Maynard b8074867a9 "haste" mod
remove excessive rate mods
2006-11-30 08:24:54 +00:00
Glenn Maynard ed07cf213a "haste" mod 2006-11-30 08:22:30 +00:00
Chris Danford 0bfa90b5be add screen-specific start sound 2006-11-30 07:38:54 +00:00
Chris Danford 4b4a6ec40a remove deleted file 2006-11-30 07:36:51 +00:00
Glenn Maynard 3003758585 load a RageSoundReader_PitchChange 2006-11-30 07:34:47 +00:00
Glenn Maynard 90b56c3705 remove m_fRate (if you really want that effect, set both pitch and speed) 2006-11-30 07:34:05 +00:00
Glenn Maynard c241a4aaf8 m_fRate -> m_fSpeed 2006-11-30 07:32:38 +00:00
Glenn Maynard 458be5efa4 add RageSoundLoadParams, to specify load-time params
allow loading pitch shifter
add pitch and speed params
2006-11-30 07:28:26 +00:00
Glenn Maynard bd639a7547 fix bounds assert 2006-11-30 07:26:34 +00:00
Glenn Maynard ce89886873 optimize the 1:1 case 2006-11-30 07:23:56 +00:00
Glenn Maynard a92125f391 remove debug 2006-11-30 06:46:46 +00:00
Glenn Maynard 9ee3bee4fd remove SetPlaybackRate 2006-11-30 06:45:31 +00:00
Glenn Maynard bf1c726c80 set m_fRate directly 2006-11-30 06:42:51 +00:00
Glenn Maynard a0abc1a89e stream frames are 64-bit 2006-11-30 06:41:41 +00:00
Glenn Maynard 2ee6acbcbe stream frames are 64-bit (sound driver api change) 2006-11-30 06:00:51 +00:00
Glenn Maynard 7af5741c08 stream frames are 64-bit 2006-11-30 05:55:42 +00:00
Glenn Maynard 5da7b5a8a4 seek fix 2006-11-30 04:59:50 +00:00
Glenn Maynard a5b5bf69a8 only SetDownFactor when it changes 2006-11-30 04:41:25 +00:00
Glenn Maynard 5988256883 fix iDownFactor 2006-11-30 04:40:24 +00:00
Glenn Maynard a9ae14ba05 tab cleanup 2006-11-30 04:23:18 +00:00
Glenn Maynard cd5f4a6e39 SoundReader_FileReader -> RageSoundReader_FileReader 2006-11-30 04:22:38 +00:00
Glenn Maynard f41362f7a9 SoundReader -> RageSoundReader 2006-11-30 04:19:51 +00:00
Glenn Maynard 6c625a50f1 remove noisy 2006-11-30 04:05:34 +00:00
Glenn Maynard a640f52171 update 2006-11-30 04:04:38 +00:00
Glenn Maynard 9bbed7d6fc pure virtual 2006-11-30 04:02:53 +00:00
Glenn Maynard 1c3e34d4a4 rate fix 2006-11-30 04:02:32 +00:00
Glenn Maynard 8419633852 add pitch change filter 2006-11-30 03:59:35 +00:00
Glenn Maynard 6874d44a2b add speed change filter 2006-11-30 03:59:02 +00:00
Glenn Maynard 286d9c5594 add helper RageSoundReader_Filter 2006-11-30 03:57:48 +00:00
Glenn Maynard 9e261cca19 support dynamic rate changing 2006-11-30 03:57:09 +00:00
Glenn Maynard eee319b535 Refactor sample tracking to support GetNextSourceFrame and
GetStreamToSourceRatio.  This will allow RateChange() to
be implemented with a filter, instead of being built into
RageSound, allow filters that change the music rate while
preserving robust correlation to the original audio.

This tightens up the frame definitions, resulting in three
frame counters:
 - source frames; frames into the original source audio
 - stream frames; frame counter after all filtering
 - hardware frames; the sound driver's frame counter

All frames are in the sample rate of the stream; if audio
is resampled to match the hardware, the resampled audio is
considered the source audio, and frame units are in the
resulting sample rate.

By design, source frames are never exposed to the sound
driver, which only deals with stream and hardware frames.

The principle of the ratio API is that while a filter stream
should ideally output audio at the exact rate it advertises
through GetStreamToSourceRatio, rounding error will inevitably
creep in.  Rather than depending on the ratio being exact
over an arbitrary length of time, each filter's GetNextSourceFrame
calculates the actual next source frame.  Typically, it
will be equal to (its value before the previous read) + (number
of frames read * previous ratio).  This avoids hard-to-debug
synchronization drift.

(This also eliminates the 1k buffer which was used for crappy
rate changing, which can be readded with a buffer filter if
needed.  Rate changing is disabled for a while until a bit
more work is done.)
2006-11-30 03:54:57 +00:00
Glenn Maynard 630c84d0c1 SetProperty 2006-11-30 02:52:41 +00:00
Glenn Maynard 4d03863226 add SetProperty, for setting properties somewhere in a filter chain 2006-11-30 02:50:31 +00:00
Glenn Maynard f50944c291 unused 2006-11-30 02:17:53 +00:00
Glenn Maynard b5db09f362 allow variable ratios 2006-11-30 02:14:30 +00:00
Glenn Maynard b9bee153c1 both source and dest units are 64-bit 2006-11-30 02:13:02 +00:00
Glenn Maynard 3afa9e231e change param order 2006-11-30 02:11:08 +00:00
Glenn Maynard 71c95983dc old, confusing comments 2006-11-30 02:06:56 +00:00
Glenn Maynard f42efc3b22 use a list instead of a deque 2006-11-30 02:05:36 +00:00
Glenn Maynard c0d13ba04f set directly 2006-11-30 01:55:52 +00:00
Glenn Maynard cf6da4c2f4 simplify 2006-11-30 01:52:12 +00:00
Glenn Maynard 115bad2017 CommitPosition -> Insert 2006-11-30 01:47:51 +00:00
Glenn Maynard a66bc2c949 semantic cleanup 2006-11-30 01:46:20 +00:00
Glenn Maynard 512e889d29 cleanup 2006-11-30 01:41:00 +00:00
Glenn Maynard 0cc1832628 hide implementation 2006-11-30 01:39:58 +00:00