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])[source]¶ 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: bytesDefault: b''
-
isLooped¶ Whether the SWAV is looped or just plays through once.
See also
You can use
loopOffsetto control the beginning of the looped region.Type: boolDefault: False
-
loopOffset¶ The beginning of the looped portion of the SWAV data, measured in words (groups of 4 bytes).
Warning
Due to how
totalLengthis 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
isLoopedtoTrue.Type: intDefault: 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: intDefault: 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: intDefault: 0
-
waveType¶ The format that this SWAV’s waveform data (
data) is in.Type: ndspy.WaveType(orint)Default: ndspy.WaveType.PCM8
-
classmethod
fromData([data, ]*[, waveType[, isLooped[, sampleRate[, time[, loopOffset[, totalLength]]]]]])[source]¶ Create an SWAV from raw waveform data.
Parameters: - data – The initial value for the
dataattribute. - waveType – The initial value for the
waveTypeattribute. - isLooped – The initial value for the
isLoopedattribute. - sampleRate – The initial value for the
sampleRateattribute. - time – The initial value for the
timeattribute. - loopOffset – The initial value for the
loopOffsetattribute. - totalLength – The initial value for the
totalLengthattribute.
Returns: The SWAV object.
Return type: - data – The initial value for the
-
classmethod
fromFile(filePath)[source]¶ Load an SWAV from a filesystem file. This is a convenience function.
Parameters: filePath ( stror other path-like object) – The path to the SWAV file to open.Returns: The SWAV object. Return type: SWAV
-
save(*[, updateTime=False[, updateTotalLength=False]])[source]¶ Generate file data representing this SWAV.
Parameters: Returns: The SWAV file data.
Return type:
-
saveToFile(filePath, *[, updateTime=False[, updateTotalLength=False]])[source]¶ Generate file data representing this SAV, and save it to a filesystem file. This is a convenience function.
Parameters: - filePath (
stror other path-like object) – The path to the SAV file to save to. - updateTime (bool) –
If this is
True,timewill be updated based on the sample rate, using the formula found in the documentation for thetimeattribute.default: False - updateTotalLength (bool) –
If this is
True,totalLengthwill be updated to be one-fourth the length ofdata.default: False
- filePath (
-