[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37714] branches/soc-2011-pepper/intern/ audaspace: 3D Audio GSoC:

Joerg Mueller nexyon at gmail.com
Tue Jun 21 22:29:03 CEST 2011


Revision: 37714
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37714
Author:   nexyon
Date:     2011-06-21 20:29:02 +0000 (Tue, 21 Jun 2011)
Log Message:
-----------
3D Audio GSoC:
- Converting AUD_SampleRate to a double
- Removing AUD_DefaultMixer
- Introducing AUD_ResampleReader as base class for all resampling readers.

Modified Paths:
--------------
    branches/soc-2011-pepper/intern/audaspace/CMakeLists.txt
    branches/soc-2011-pepper/intern/audaspace/FX/AUD_PitchReader.cpp
    branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp
    branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.cpp
    branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_LinearResampleReader.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_LinearResampleReader.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_Mixer.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_ReadDevice.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SequencerReader.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SinusReader.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SoftwareDevice.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_Space.h

Added Paths:
-----------
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_ResampleReader.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_ResampleReader.h

Removed Paths:
-------------
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.h

Modified: branches/soc-2011-pepper/intern/audaspace/CMakeLists.txt
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/CMakeLists.txt	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/CMakeLists.txt	2011-06-21 20:29:02 UTC (rev 37714)
@@ -82,8 +82,6 @@
 	intern/AUD_ConverterFunctions.h
 	intern/AUD_ConverterReader.cpp
 	intern/AUD_ConverterReader.h
-	intern/AUD_DefaultMixer.cpp
-	intern/AUD_DefaultMixer.h
 	intern/AUD_FileFactory.cpp
 	intern/AUD_FileFactory.h
 	intern/AUD_I3DDevice.h
@@ -108,6 +106,8 @@
 	intern/AUD_Reference.h
 	intern/AUD_ReferenceHandler.cpp
 	intern/AUD_ResampleFactory.h
+	intern/AUD_ResampleReader.cpp
+	intern/AUD_ResampleReader.h
 	intern/AUD_SequencerFactory.cpp
 	intern/AUD_SequencerFactory.h
 	intern/AUD_SequencerReader.cpp

Modified: branches/soc-2011-pepper/intern/audaspace/FX/AUD_PitchReader.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/FX/AUD_PitchReader.cpp	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/FX/AUD_PitchReader.cpp	2011-06-21 20:29:02 UTC (rev 37714)
@@ -39,6 +39,6 @@
 AUD_Specs AUD_PitchReader::getSpecs() const
 {
 	AUD_Specs specs = m_reader->getSpecs();
-	specs.rate = (AUD_SampleRate)((int)(specs.rate * m_pitch));
+	specs.rate *= m_pitch;
 	return specs;
 }

Modified: branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp	2011-06-21 20:29:02 UTC (rev 37714)
@@ -2111,13 +2111,13 @@
 
 	static const char *kwlist[] = {"type", "rate", "channels", "format", "buffer_size", "name", NULL};
 	int device;
-	int rate = AUD_RATE_44100;
+	double rate = AUD_RATE_44100;
 	int channels = AUD_CHANNELS_STEREO;
 	int format = AUD_FORMAT_FLOAT32;
 	int buffersize = AUD_DEFAULT_BUFFER_SIZE;
 	const char* name = "Audaspace";
 
-	if(!PyArg_ParseTupleAndKeywords(args, kwds, "i|iiiis:Device", const_cast<char**>(kwlist),
+	if(!PyArg_ParseTupleAndKeywords(args, kwds, "i|diiis:Device", const_cast<char**>(kwlist),
 									&device, &rate, &channels, &format, &buffersize, &name))
 		return NULL;
 

Modified: branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.cpp	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.cpp	2011-06-21 20:29:02 UTC (rev 37714)
@@ -45,8 +45,7 @@
 
 AUD_SRCResampleReader::AUD_SRCResampleReader(AUD_Reference<AUD_IReader> reader,
 											 AUD_Specs specs) :
-		AUD_EffectReader(reader),
-		m_rate(specs.rate),
+		AUD_ResampleReader(reader, specs.rate),
 		m_channels(reader->getSpecs().channels),
 		m_position(0)
 {

Modified: branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.h
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.h	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/SRC/AUD_SRCResampleReader.h	2011-06-21 20:29:02 UTC (rev 37714)
@@ -32,7 +32,7 @@
 #ifndef AUD_SRCRESAMPLEREADER
 #define AUD_SRCRESAMPLEREADER
 
-#include "AUD_EffectReader.h"
+#include "AUD_ResampleReader.h"
 #include "AUD_Buffer.h"
 
 #include <samplerate.h>
@@ -40,7 +40,7 @@
 /**
  * This resampling reader uses libsamplerate for resampling.
  */
-class AUD_SRCResampleReader : public AUD_EffectReader
+class AUD_SRCResampleReader : public AUD_ResampleReader
 {
 private:
 	/**
@@ -49,11 +49,6 @@
 	AUD_Buffer m_buffer;
 
 	/**
-	 * The target sampling rate.
-	 */
-	AUD_SampleRate m_rate;
-
-	/**
 	 * The reader channels.
 	 */
 	AUD_Channels m_channels;

Modified: branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.cpp	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.cpp	2011-06-21 20:29:02 UTC (rev 37714)
@@ -795,7 +795,7 @@
 float* AUD_readSoundBuffer(const char* filename, float low, float high,
 						   float attack, float release, float threshold,
 						   int accumulate, int additive, int square,
-						   float sthreshold, int samplerate, int* length)
+						   float sthreshold, double samplerate, int* length)
 {
 	AUD_Buffer buffer;
 	AUD_DeviceSpecs specs;

Modified: branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.h
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.h	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.h	2011-06-21 20:29:02 UTC (rev 37714)
@@ -441,7 +441,7 @@
 extern float* AUD_readSoundBuffer(const char* filename, float low, float high,
 								  float attack, float release, float threshold,
 								  int accumulate, int additive, int square,
-								  float sthreshold, int samplerate,
+								  float sthreshold, double samplerate,
 								  int* length);
 
 /**

Deleted: branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.cpp	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.cpp	2011-06-21 20:29:02 UTC (rev 37714)
@@ -1,61 +0,0 @@
-/*
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * Copyright 2009-2011 Jörg Hermann Müller
- *
- * This file is part of AudaSpace.
- *
- * Audaspace is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * AudaSpace is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Audaspace; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file audaspace/intern/AUD_DefaultMixer.cpp
- *  \ingroup audaspaceintern
- */
-
-
-#include "AUD_DefaultMixer.h"
-#ifdef WITH_SAMPLERATE
-#include "AUD_SRCResampleReader.h"
-#else
-#include "AUD_LinearResampleReader.h"
-#endif
-#include "AUD_ChannelMapperReader.h"
-#include "AUD_ChannelMapperFactory.h"
-
-#include <cstring>
-
-AUD_DefaultMixer::AUD_DefaultMixer(AUD_DeviceSpecs specs) :
-	AUD_Mixer(specs)
-{
-}
-
-AUD_Reference<AUD_IReader> AUD_DefaultMixer::prepare(AUD_Reference<AUD_IReader> reader)
-{
-	// resample
-#ifdef WITH_SAMPLERATE
-	reader = new AUD_SRCResampleReader(reader, m_specs.specs);
-#else
-	reader = new AUD_LinearResampleReader(reader, m_specs.specs);
-#endif
-	
-	// rechannel
-	reader = new AUD_ChannelMapperReader(reader, m_specs.channels);
-
-	return reader;
-}

Deleted: branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.h
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.h	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/intern/AUD_DefaultMixer.h	2011-06-21 20:29:02 UTC (rev 37714)
@@ -1,59 +0,0 @@
-/*
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * Copyright 2009-2011 Jörg Hermann Müller
- *
- * This file is part of AudaSpace.
- *
- * Audaspace is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * AudaSpace is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Audaspace; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file audaspace/intern/AUD_DefaultMixer.h
- *  \ingroup audaspaceintern
- */
-
-
-#ifndef AUD_DEFAULTMIXER
-#define AUD_DEFAULTMIXER
-
-#include "AUD_Mixer.h"
-
-/**
- * This class is able to mix audiosignals of different channel count and sample
- * rate and convert it to a specific output format.
- * It uses a default ChannelMapperFactory and a SRCResampleFactory for
- * the perparation.
- */
-class AUD_DefaultMixer : public AUD_Mixer
-{
-public:
-	/**
-	 * Creates the mixer.
-	 */
-	AUD_DefaultMixer(AUD_DeviceSpecs specs);
-
-	/**
-	 * This funuction prepares a reader for playback.
-	 * \param reader The reader to prepare.
-	 * \return The reader that should be used for playback.
-	 */
-	virtual AUD_Reference<AUD_IReader> prepare(AUD_Reference<AUD_IReader> reader);
-};
-
-#endif //AUD_DEFAULTMIXER

Modified: branches/soc-2011-pepper/intern/audaspace/intern/AUD_LinearResampleReader.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/intern/AUD_LinearResampleReader.cpp	2011-06-21 20:25:48 UTC (rev 37713)
+++ branches/soc-2011-pepper/intern/audaspace/intern/AUD_LinearResampleReader.cpp	2011-06-21 20:29:02 UTC (rev 37714)
@@ -38,8 +38,7 @@
 
 AUD_LinearResampleReader::AUD_LinearResampleReader(AUD_Reference<AUD_IReader> reader,
 												   AUD_Specs specs) :
-	AUD_EffectReader(reader),
-	m_rate(specs.rate),
+	AUD_ResampleReader(reader, specs.rate),
 	m_channels(reader->getSpecs().channels),
 	m_position(0),
 	m_cache_pos(0),

Modified: branches/soc-2011-pepper/intern/audaspace/intern/AUD_LinearResampleReader.h
===================================================================

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list