@@ -3,7 +3,7 @@ All notable changes to the 3DTuneIn Toolkit will be documented in this file.
33
44The format is based on [ Keep a Changelog] ( http://keepachangelog.com/ ) .
55
6- ## [ Unreleased ]
6+ ## [ M20221028 ] Audio Toolkit v2.0 M20221028
77
88### Binaural
99` Added `
@@ -18,20 +18,108 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
1818 * float GetEffectiveEarElevation(Common::T_ear ear) const;
1919 * const Common::CTransform & GetCurrentSourceTransform() const;
2020 * const Common::CTransform & GetEffectiveSourceTransform() const;
21+ - feat: Makes a waveguide reset when a SingleSourceDSP buffers are reseted.
22+ * void CWaveguide::Reset()
23+ ` Changed `
24+ - Convolutional reverb can now skip a number of initial frames for future hybrid reverb (ISM+Convolution)
25+ * old: void CEnvironment::ProcessVirtualAmbisonicReverbAdimensional(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight);
26+ * void CEnvironment::ProcessVirtualAmbisonicReverbBidimensional(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight);
27+ * void CEnvironment::ProcessVirtualAmbisonicReverbThreedimensional(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight);
28+ * void CEnvironment::ProcessVirtualAmbisonicReverb(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight);
29+ * void CEnvironment::ProcessVirtualAmbisonicReverb(CStereoBuffer<float> & outBuffer)
30+ * new: void CEnvironment::ProcessVirtualAmbisonicReverbAdimensional(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight, int numberOfSilencedFrames)
31+ * void CEnvironment::ProcessVirtualAmbisonicReverbBidimensional(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight, int numberOfSilencedFrames)
32+ * void CEnvironment::ProcessVirtualAmbisonicReverbThreedimensional(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight, int numberOfSilencedFrames)
33+ * void CEnvironment::ProcessVirtualAmbisonicReverb(CMonoBuffer<float> & outBufferLeft, CMonoBuffer<float> & outBufferRight, int numberOfSilencedFrames)
34+ * void CEnvironment::ProcessVirtualAmbisonicReverb(CStereoBuffer<float> & outBuffer, int numberOfSilencedFrames)
35+ - Now smoothing in attenuation by distance can be disabled or enabled (enabled by default)
2136` Removed `
2237 - Public methods removed from CSingleSourceDSP:
2338 * void ProcessAnechoic(const CMonoBuffer<float > & inBuffer, CMonoBuffer<float > &outLeftBuffer, CMonoBuffer<float > &outRightBuffer);
2439 * void ProcessAnechoic(const CMonoBuffer<float> & inBuffer, CStereoBuffer<float> & outBuffer);
2540 * float GetEarAzimuth( Common::T_ear ear ) const;
2641 * const Common::CTransform & GetSourceTransform() const;
42+
43+ ### ISM
44+ ` Added `
45+ - New classes added to simulate Image Source Method.
46+ * class ISM //interface to access all the features of the ISM simulator
47+ * CISM(Binaural::CCore* _ownerCore);
48+ * void SetupShoeBoxRoom(float length, float width, float height);
49+ * void setupArbitraryRoom(RoomGeometry roomGeometry);
50+ * void setAbsortion(std::vector<float> _absortionPerWall);
51+ * void setAbsortion(std::vector<std::vector<float>> _absortionPerBandPerWall);
52+ * Room getRoom();
53+ * void enableWall(int wallIndex);
54+ * void disableWall(int wallIndex);
55+ * void setReflectionOrder(int reflectionOrder);
56+ * int getReflectionOrder();
57+ * void setMaxDistanceImageSources(float maxDistanceSourcesToListener);
58+ * float getMaxDistanceImageSources();
59+ * int calculateNumOfSilencedFrames (float maxDistanceSourcesToListener);
60+ * void setSourceLocation(Common::CVector3 location);
61+ * Common::CVector3 getSourceLocation();
62+ * std::vector<Common::CVector3> getImageSourceLocations();
63+ * std::vector<ISM::ImageSourceData> getImageSourceData();
64+ * void proccess(CMonoBuffer<float> inBuffer, std::vector<CMonoBuffer<float>> &imageBuffers, Common::CVector3 listenerLocation);
65+ * class Room
66+ * void setupShoeBox(float length, float width, float height);
67+ * void setupRoomGeometry(RoomGeometry roomGeometry);
68+ * void insertWall(Wall newWall);
69+ * void enableWall(int wallIndex);
70+ * void disableWall(int wallIndex);
71+ * void setWallAbsortion(int wallIndex, float absortion);
72+ * void setWallAbsortion(int wallIndex, std::vector<float> absortionPerBand);
73+ * std::vector<Wall> getWalls();
74+ * std::vector<Room> getImageRooms();
75+ * bool checkPointInsideRoom(Common::CVector3 point, float &distanceNearestWall);
76+ * Common::CVector3 getCenter();
77+ * class SourceImages
78+ * SourceImages(ISM::CISM* _ownerISM);
79+ * void setLocation(Common::CVector3 _location);
80+ * Common::CVector3 getLocation();
81+ * std::vector<weak_ptr <SourceImages>> getImages();
82+ * void getImageLocations(std::vector<Common::CVector3> &imageSourceList);
83+ * void getImageData(std::vector<ImageSourceData> &imageSourceDataList);
84+ * Wall getReflectionWall();
85+ * void createImages(Room _room, int reflectionOrder);
86+ * void updateImages ();
87+ * void processAbsortion(CMonoBuffer<float> inBuffer, std::vector<CMonoBuffer<float>> &imageBuffers, Common::CVector3 listenerLocation);
88+ * class Wall
89+ * Wall();
90+ * int insertCorner(float x, float y, float z);
91+ * int insertCorner(Common::CVector3 _corner);
92+ * std::vector<Common::CVector3> getCorners();
93+ * void setAbsortion(float _absortion);
94+ * void setAbsortion(std::vector<float> _absortionPerBand);
95+ * std::vector<float> getAbsortionB();
96+ * Common::CVector3 getNormal();
97+ * Common::CVector3 getCenter();
98+ * float getDistanceFromPoint(Common::CVector3 point);
99+ * float getMinimumDistanceFromWall(ISM::Wall wall);
100+ * Common::CVector3 getImagePoint(Common::CVector3 point);
101+ * Wall getImageWall(Wall _wall);
102+ * Common::CVector3 getPointProjection(float x, float y, float z);
103+ * Common::CVector3 getPointProjection(Common::CVector3 point);
104+ * Common::CVector3 getIntersectionPointWithLine(Common::CVector3 point1, Common::CVector3 point2);
105+ * int checkPointInsideWall(Common::CVector3 point, float &distanceNearestEdge, float &sharpness);
106+ * float calculateDistanceNearestEdge(Common::CVector3 point);
107+ * float distancePointToLine(Common::CVector3 point, Common::CVector3 pointLine1, Common::CVector3 pointLine2);
108+ * void enable() { active = true; }
109+ * void disable() { active = false; }
110+ * bool isActive() { return active; }
27111
28- ` Changed `
29- -
30112
31113### Common
114+ ` Fixed `
115+ - Bug fixed in the computation of cross product in CVector3 CVector3::CrossProduct(CVector3 _ rightHand).
32116` Added `
33117 - New class in CWaveguide. It provides a waveguide simulation, to simulate the distance and doppler effect betwenn a source and the listener
34-
118+ ` Changed `
119+ - Convolution can now skip a number of initial frames for future hybrid reverb (ISM+Convolution)
120+ * old: void CUPCEnvironment::ProcessUPConvolution_withoutIFFT(const CMonoBuffer<float>& inBuffer_Time, const TImpulseResponse_Partitioned & IR, CMonoBuffer<float>& outBuffer)
121+ * new: void CUPCEnvironment::ProcessUPConvolution_withoutIFFT(const CMonoBuffer<float>& inBuffer_Time, const TImpulseResponse_Partitioned & IR, CMonoBuffer<float>& outBuffer, int numberOfSilencedFrames)
122+
35123
36124## [ M20190724] - AudioToolkit_v1.4 M20190724
37125
0 commit comments