ndspy.soundWave
: Sound Waves¶
The ndspy.soundWave
module lets you edit and create SWAV streamed audio
files. These are intended to be used for instrument samples, sound effects, and
other short sounds.
A SWAV is conceptually similar to a standard WAV audio file. They define a waveform rather than sequence events. SWAVs are limited to only one channel, and shorter loop periods than STRM files.
See also
If you aren’t familiar with how SDAT files are structured, consider reading the appendix explaining this.
- class ndspy.soundWave.SWAV([file])¶
An SWAV streamed audio file.
- Parameters:
file (bytes) – The data to be read as an SWAV file. If this is not provided, the SWAV object will initially be empty.
- data¶
The raw waveform data. This must be interpreted according to the value of
waveType
.- Type:
- Default:
b''
- isLooped¶
Whether the SWAV is looped or just plays through once.
See also
You can use
loopOffset
to control the beginning of the looped region.- Type:
- Default:
False
- loopOffset¶
The beginning of the looped portion of the SWAV data, measured in words (groups of 4 bytes).
Warning
Due to how
totalLength
is encoded in the file data, this attribute must not be greater than it, or else you will experience errors upon saving (save()
)!See also
In order to loop an SWAV, you also need to set
isLooped
toTrue
.- Type:
- Default:
0
- time¶
A value of unclear meaning. This is pretty much always set to the following:
strm.time = int(16756991 / strm.sampleRate)
Note
This can optionally be recalculated for you automatically upon saving the SWAV. For more information about this, see the documentation for the
save()
function.- Type:
- Default:
0
- totalLength¶
The total length of the SWAV data, measured in words (groups of 4 bytes). This is almost always equal to
len(swav.data) // 4
, but, for reasons unknown, not always.Warning
Due to how this is encoded in the file data, this attribute must not be less than
loopOffset
, or else you will experience errors upon saving (save()
)!Note
This can optionally be recalculated for you automatically upon saving the SWAV. For more information about this, see the documentation for the
save()
function.- Type:
- Default:
0
- waveType¶
The format that this SWAV’s waveform data (
data
) is in.- Type:
ndspy.WaveType
(orint
)- Default:
- classmethod fromData([data, ]*[, waveType[, isLooped[, sampleRate[, time[, loopOffset[, totalLength]]]]]])¶
Create an SWAV from raw waveform data.
- Parameters:
data – The initial value for the
data
attribute.waveType – The initial value for the
waveType
attribute.isLooped – The initial value for the
isLooped
attribute.sampleRate – The initial value for the
sampleRate
attribute.time – The initial value for the
time
attribute.loopOffset – The initial value for the
loopOffset
attribute.totalLength – The initial value for the
totalLength
attribute.
- Returns:
The SWAV object.
- Return type:
- classmethod fromFile(filePath)¶
Load an SWAV from a filesystem file. This is a convenience function.
- save(*[, updateTime=False[, updateTotalLength=False]])¶
Generate file data representing this SWAV.
- Parameters:
- Returns:
The SWAV file data.
- Return type:
- saveToFile(filePath, *[, updateTime=False[, updateTotalLength=False]])¶
Generate file data representing this SAV, and save it to a filesystem file. This is a convenience function.
- Parameters:
filePath (
str
or other path-like object) – The path to the SAV file to save to.updateTime (bool) –
If this is
True
,time
will be updated based on the sample rate, using the formula found in the documentation for thetime
attribute.- default:
False
updateTotalLength (bool) –
If this is
True
,totalLength
will be updated to be one-fourth the length ofdata
.- default:
False