diff options
author | lonkaars <loek@pipeframe.xyz> | 2023-06-03 14:10:26 +0200 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2023-06-03 14:10:26 +0200 |
commit | be7c24ad3e39c2a84c5bf9b264c5c89c811b8162 (patch) | |
tree | a4a61e94dc66dff59a58ea5d311999df9f3dd5ac /os2eindopdracht/main.cpp | |
parent | 929f168ef81cd0252bd6853a8dbe21a128e4e435 (diff) |
split stream into sample blocks
Diffstat (limited to 'os2eindopdracht/main.cpp')
-rw-r--r-- | os2eindopdracht/main.cpp | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/os2eindopdracht/main.cpp b/os2eindopdracht/main.cpp index 534bf0c..ae042c5 100644 --- a/os2eindopdracht/main.cpp +++ b/os2eindopdracht/main.cpp @@ -2,11 +2,17 @@ #include <iostream> #include <sstream> #include <fstream> +#include <vector> #include "Arguments.h" #include "SampleStream.h" +#include "SampleBlock.h" #include "FilterWorker.h" +using std::vector; + +#define SAMPLE_BLOCK_SIZE 1024 + int main(int argc, char** argv) { Arguments args(argc, argv); @@ -15,38 +21,18 @@ int main(int argc, char** argv) { file_input_content << file_input.rdbuf(); file_input.close(); - SampleStream stream(file_input_content.str()); - - std::vector<int16_t> original; - original = std::vector<int16_t>(stream._stream); - for (unsigned long i = 0; i < original.size(); i++) { - double x_pp = i < 2 ? 0 : original[i-2]; - double x_p = i < 1 ? 0 : original[i-1]; - double x_ = i < 0 ? 0 : original[i-0]; - double y_pp = i < 2 ? 0 : stream._stream[i-2]; - double y_p = i < 1 ? 0 : stream._stream[i-1]; - stream._stream[i] = args.bass.b0 * x_ + - args.bass.b1 * x_p + - args.bass.b2 * x_pp + - args.bass.a1 * y_p + - args.bass.a2 * y_pp; - } - original = std::vector<int16_t>(stream._stream); - for (unsigned long i = 0; i < original.size(); i++) { - double x_pp = i < 2 ? 0 : original[i-2]; - double x_p = i < 1 ? 0 : original[i-1]; - double x_ = i < 0 ? 0 : original[i-0]; - double y_pp = i < 2 ? 0 : stream._stream[i-2]; - double y_p = i < 1 ? 0 : stream._stream[i-1]; - stream._stream[i] = args.treble.b0 * x_ + - args.treble.b1 * x_p + - args.treble.b2 * x_pp + - args.treble.a1 * y_p + - args.treble.a2 * y_pp; - } + SampleStream input(file_input_content.str()); + vector<SampleBlock> input_blocks = input.split(SAMPLE_BLOCK_SIZE); + + SampleStream output(file_input_content.str()); + vector<SampleBlock> output_blocks = output.split(SAMPLE_BLOCK_SIZE); + + // for (unsigned int i = 0; i < input_blocks.size(); i++) { + // FilterWorker(input_blocks[i], output_blocks[i]).filter(args.bass, args.treble); + // } std::fstream file_output(args.file_output, std::ios::out | std::ios::binary); - std::string edited_stream = stream.save(); + std::string edited_stream = output.save(); file_output.write(edited_stream.c_str(), edited_stream.size()); file_output.close(); |