|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TSOP_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
#define TSOP_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tsound.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TSOUND_EXPORTS
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_EXPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_EXPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_IMPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_IMPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//===================================================================
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class DVAPI TSopException final : public TException {
|
|
Shinya Kitaoka |
120a6e |
TString m_message;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
TSopException(const TString &s) : m_message(s) {}
|
|
Shinya Kitaoka |
120a6e |
~TSopException() {}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
TString getMessage() const override { return m_message; };
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//===================================================================
|
|
Toshihiro Shimizu |
890ddd |
//! \include sop_ex.cpp
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
namespace TSop {
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Convert the soundtrack src to the format of the soundtrack dst
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
DVAPI void convert(TSoundTrackP &dst, const TSoundTrackP &src);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Convert the soundtrack src to the format specified in dstFormat
|
|
Toshihiro Shimizu |
890ddd |
and return the new soundtrack
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP convert(const TSoundTrackP &src,
|
|
Shinya Kitaoka |
120a6e |
const TSoundTrackFormat &dstFormat);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Shinya Kitaoka |
120a6e |
Resampls the soundtrack src at the specified sampleRate and
|
|
Toshihiro Shimizu |
890ddd |
returns the obtained soundtrack
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
DVAPI TSoundTrackP resample(TSoundTrackP src, TINT32 sampleRate);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Shinya Kitaoka |
120a6e |
Reverbs the soundtrack src with the specified feature and
|
|
Toshihiro Shimizu |
890ddd |
returns the obtained soundtrack
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP reverb(TSoundTrackP src, double delayTime,
|
|
Shinya Kitaoka |
120a6e |
double decayFactor, double extendTime);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Shinya Kitaoka |
120a6e |
Gates the soundtrack src with the specified feature and
|
|
Toshihiro Shimizu |
890ddd |
returns the obtained soundtrack
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP gate(TSoundTrackP src, double threshold, double holdTime,
|
|
Shinya Kitaoka |
120a6e |
double releaseTime);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Does the echo effect to the soundtrack src with the specified feature
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI void echo(TSoundTrackP &dst, const TSoundTrackP &src, double delayTime,
|
|
Shinya Kitaoka |
120a6e |
double decayFactor, double extendTime);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
luz paz |
dccc61 |
Stretches the soundtrack src with the specified feature and
|
|
Toshihiro Shimizu |
890ddd |
returns the obtained soundtrack
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
luz paz |
dccc61 |
DVAPI TSoundTrackP timeStretch(TSoundTrackP src, double ratio);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Do the mixing between the two soundtrack a1 and a2 must be inside [0.0,1.0]
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP mix(const TSoundTrackP &st1, const TSoundTrackP &st2,
|
|
Shinya Kitaoka |
120a6e |
double a1, double a2);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Inserts l blank samples starting from the sample s0 of the soundtrack.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
DVAPI TSoundTrackP insertBlank(TSoundTrackP src, TINT32 s0, TINT32 l);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Inserts a blank portion of duration l into the soundtrack, starting from t0.
|
|
Toshihiro Shimizu |
890ddd |
t0 and l are expressed in seconds.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
DVAPI TSoundTrackP insertBlank(TSoundTrackP src, double t0, double l);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Removes from the soundtrack the samples in the range [s0, s1].
|
|
Toshihiro Shimizu |
890ddd |
Returns a soundtrack that contains just the samples that have been removed
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP remove(TSoundTrackP src, TINT32 s0, TINT32 s1,
|
|
Shinya Kitaoka |
120a6e |
TSoundTrackP &paste);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Shinya Kitaoka |
120a6e |
Remove the portion of soundtrack in the range [t0, t1].
|
|
Toshihiro Shimizu |
890ddd |
t0 and t1 are expressed in seconds.
|
|
Toshihiro Shimizu |
890ddd |
Returns a soundtrack that contains just the portion that has been removed.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP remove(TSoundTrackP src, double t0, double t1,
|
|
Shinya Kitaoka |
120a6e |
TSoundTrackP &paste);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Returns a soundtrack that has just the riseFactor of sample of src.
|
|
Toshihiro Shimizu |
890ddd |
The samples of the output soundTrack come from the "zero" sample to
|
|
Toshihiro Shimizu |
890ddd |
the value of the first sample of src
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
DVAPI TSoundTrackP fadeIn(const TSoundTrackP src, double riseFactor);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Returns a soundtrack that has just the decayFactor of sample of src.
|
|
Toshihiro Shimizu |
890ddd |
The samples of the output soundTrack come from the value of the last sample
|
|
Shinya Kitaoka |
120a6e |
of src to the "zero" sample
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
DVAPI TSoundTrackP fadeOut(const TSoundTrackP src, double decayFactor);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Returns a soundtrack that has just the crossFactor of sample of src2.
|
|
Toshihiro Shimizu |
890ddd |
The samples of the output soundTrack come from the value of the last sample
|
|
Shinya Kitaoka |
120a6e |
of src1 to the value of the first sample of src2
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP crossFade(const TSoundTrackP src1, const TSoundTrackP src2,
|
|
Shinya Kitaoka |
120a6e |
double crossFactor);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Returns a soundtrack that has the sampleCount of src2.
|
|
Toshihiro Shimizu |
890ddd |
But the first crossFactor of samples come from the value of the last sample
|
|
Shinya Kitaoka |
120a6e |
of src1 to the value of the crossFactor-th sample of src2
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
DVAPI TSoundTrackP crossFade(double crossFactor, const TSoundTrackP src1,
|
|
Shinya Kitaoka |
120a6e |
const TSoundTrackP src2);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|