Added a readme and created cpp and h files to begin structuring the project.
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
# Concatenator
|
||||||
|
|
||||||
|
A C++ application for generating granular synthesis driven representations of
|
||||||
|
audio files based on audio database analysis.
|
||||||
|
|
||||||
|
This application is under development with the aim to explore the creative
|
||||||
|
potential of combining short-time audio analyses with granular synthesis, to
|
||||||
|
synthesize perceptually related representations of target audio files. Through
|
||||||
|
use of analysed databases of varying sizes, an output can be generated that
|
||||||
|
represents a mix of the spectral and temporal features of the original target
|
||||||
|
sound and the corpus of source sounds.
|
||||||
|
|
||||||
|
To achieve this, a technique known as "concatenative synthesis" is used. This
|
||||||
|
form of synthesis combines the ability to window and join small segments of
|
||||||
|
sound to create a new sound (a process known as granular synthesis), with audio
|
||||||
|
analysis techniques capable of describing a sound in order to differentiate it
|
||||||
|
from others. By analysing small segments in a target sound for their perceptual
|
||||||
|
characteristics (such as pitch, timbre and loudness), it is then possible to
|
||||||
|
compare these segments to a collection of source sounds to find perceptually
|
||||||
|
similar segments. From this, the most perceptually similar matches can be taken
|
||||||
|
and joined using granular synthesis techniques in order to achieve the final
|
||||||
|
result.
|
||||||
|
|
||||||
|
Note: This project is currently under development and is not ready for release.
|
||||||
|
This project is based on the pysound project developed to explore concatenative
|
||||||
|
synthesis in Python which can be found here:
|
||||||
|
https://github.com/Pezz89/pysound
|
||||||
|
This project's primary goal at present is to build on the performance of
|
||||||
|
Pysound through the higher efficiency of the C++ language and to address issues
|
||||||
|
with packaging and distribution encountered during the development of that
|
||||||
|
project.
|
||||||
@@ -5,7 +5,8 @@ using namespace std;
|
|||||||
|
|
||||||
ArgumentParser::ArgumentParser() : desc("Allowed options") {
|
ArgumentParser::ArgumentParser() : desc("Allowed options") {
|
||||||
// Add positional arguments to specify source, target and output database locations.
|
// Add positional arguments to specify source, target and output database locations.
|
||||||
positionalOptions.add("input_db", 1);
|
positionalOptions.add("source_db", 1);
|
||||||
|
positionalOptions.add("target_db", 1);
|
||||||
positionalOptions.add("output_db", 1);
|
positionalOptions.add("output_db", 1);
|
||||||
|
|
||||||
// Add optional arguments to allow control over application settings from the command line.
|
// Add optional arguments to allow control over application settings from the command line.
|
||||||
|
|||||||
@@ -4,3 +4,8 @@ class AudioFile {
|
|||||||
public:
|
public:
|
||||||
private:
|
private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class AnalysedAudioFile : public AudioFile {
|
||||||
|
public:
|
||||||
|
private:
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "ArgumentParser.h"
|
#include "ArgumentParser.h"
|
||||||
|
#include "AudioDatabase.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
// Declare the supported options.
|
|
||||||
ArgumentParser argparse = ArgumentParser();
|
ArgumentParser argparse = ArgumentParser();
|
||||||
argparse.parseargs(argc, argv);
|
argparse.parseargs(argc, argv);
|
||||||
cout << "Hello world!" << endl;
|
cout << "Hello world!" << endl;
|
||||||
|
|||||||
Reference in New Issue
Block a user