Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
9af15ed7a4 | |||
289d73c07e |
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,3 +1,8 @@
|
|||||||
|
__pycache__
|
||||||
|
.bck
|
||||||
|
out
|
||||||
|
target
|
||||||
|
build
|
||||||
*~
|
*~
|
||||||
*.swp
|
*.swp
|
||||||
*.old
|
*.old
|
||||||
|
24
GLD_audio-algo-chunkware-test.json
Normal file
24
GLD_audio-algo-chunkware-test.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"type":"BINARY",
|
||||||
|
"sub-type":"TEST",
|
||||||
|
"group-id":"com.atria-soft",
|
||||||
|
"description":"Chunkware test unit",
|
||||||
|
"license":"MPL-2",
|
||||||
|
"license-file":"file://LICENSE",
|
||||||
|
"maintainer":"file://authors.txt",
|
||||||
|
"author":"file://authors.txt",
|
||||||
|
"version":"file://version.txt",
|
||||||
|
"code-quality":"MEDIUM",
|
||||||
|
|
||||||
|
"source": [
|
||||||
|
"test/main.cpp"
|
||||||
|
],
|
||||||
|
"compilation-version": {
|
||||||
|
"c++": 2017
|
||||||
|
},
|
||||||
|
"dependency": [
|
||||||
|
"audio-algo-chunkware",
|
||||||
|
"etk",
|
||||||
|
"test-debug"
|
||||||
|
]
|
||||||
|
}
|
42
GLD_audio-algo-chunkware.json
Normal file
42
GLD_audio-algo-chunkware.json
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"type":"LIBRARY",
|
||||||
|
"group-id":"com.atria-soft",
|
||||||
|
"description":"Chunkware algo",
|
||||||
|
"license":"MPL-2",
|
||||||
|
"license-file":"file://LICENSE",
|
||||||
|
"maintainer":"file://authors.txt",
|
||||||
|
"author":"file://authors.txt",
|
||||||
|
"version":"file://version.txt",
|
||||||
|
"code-quality":"MEDIUM",
|
||||||
|
|
||||||
|
"source": [
|
||||||
|
"audio/algo/chunkware/debug.cpp",
|
||||||
|
"audio/algo/chunkware/Compressor.cpp",
|
||||||
|
"audio/algo/chunkware/debug.cpp",
|
||||||
|
"audio/algo/chunkware/EnvelopeDetector.cpp",
|
||||||
|
"audio/algo/chunkware/AttRelEnvelope.cpp",
|
||||||
|
"audio/algo/chunkware/Gate.cpp",
|
||||||
|
"audio/algo/chunkware/GateRms.cpp",
|
||||||
|
"audio/algo/chunkware/Limiter.cpp"
|
||||||
|
],
|
||||||
|
"header": [
|
||||||
|
"audio/algo/chunkware/Compressor.hpp",
|
||||||
|
"audio/algo/chunkware/debug.hpp",
|
||||||
|
"audio/algo/chunkware/EnvelopeDetector.hpp",
|
||||||
|
"audio/algo/chunkware/AttRelEnvelope.hpp",
|
||||||
|
"audio/algo/chunkware/Gate.hpp",
|
||||||
|
"audio/algo/chunkware/GateRms.hpp",
|
||||||
|
"audio/algo/chunkware/Gain.hpp",
|
||||||
|
"audio/algo/chunkware/Limiter.hpp"
|
||||||
|
],
|
||||||
|
"path":[
|
||||||
|
"."
|
||||||
|
],
|
||||||
|
"compilation-version": {
|
||||||
|
"c++": 2017
|
||||||
|
},
|
||||||
|
"dependency": [
|
||||||
|
"etk",
|
||||||
|
"audio"
|
||||||
|
]
|
||||||
|
}
|
@ -1,41 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
import lutin.debug as debug
|
|
||||||
import lutin.tools as tools
|
|
||||||
|
|
||||||
|
|
||||||
def get_type():
|
|
||||||
return "BINARY"
|
|
||||||
|
|
||||||
def get_sub_type():
|
|
||||||
return "TEST"
|
|
||||||
|
|
||||||
def get_desc():
|
|
||||||
return "test chunkware"
|
|
||||||
|
|
||||||
def get_licence():
|
|
||||||
return "MPL-2"
|
|
||||||
|
|
||||||
def get_compagny_type():
|
|
||||||
return "com"
|
|
||||||
|
|
||||||
def get_compagny_name():
|
|
||||||
return "atria-soft"
|
|
||||||
|
|
||||||
def get_maintainer():
|
|
||||||
return "authors.txt"
|
|
||||||
|
|
||||||
def configure(target, my_module):
|
|
||||||
my_module.add_src_file([
|
|
||||||
'test/main.cpp'
|
|
||||||
])
|
|
||||||
my_module.add_depend(['audio-algo-chunkware', 'test-debug'])
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
import lutin.debug as debug
|
|
||||||
import lutin.tools as tools
|
|
||||||
|
|
||||||
|
|
||||||
def get_type():
|
|
||||||
return "LIBRARY"
|
|
||||||
|
|
||||||
def get_desc():
|
|
||||||
return "chunkware algo"
|
|
||||||
|
|
||||||
def get_licence():
|
|
||||||
return "BSD-2"
|
|
||||||
|
|
||||||
def get_compagny_type():
|
|
||||||
return "com"
|
|
||||||
|
|
||||||
def get_compagny_name():
|
|
||||||
return "atria-soft"
|
|
||||||
|
|
||||||
def get_maintainer():
|
|
||||||
return "authors.txt"
|
|
||||||
|
|
||||||
def get_version():
|
|
||||||
return "version.txt"
|
|
||||||
|
|
||||||
def configure(target, my_module):
|
|
||||||
my_module.add_src_file([
|
|
||||||
'audio/algo/chunkware/debug.cpp',
|
|
||||||
'audio/algo/chunkware/Compressor.cpp',
|
|
||||||
'audio/algo/chunkware/debug.cpp',
|
|
||||||
'audio/algo/chunkware/EnvelopeDetector.cpp',
|
|
||||||
'audio/algo/chunkware/AttRelEnvelope.cpp',
|
|
||||||
'audio/algo/chunkware/Gate.cpp',
|
|
||||||
'audio/algo/chunkware/GateRms.cpp',
|
|
||||||
'audio/algo/chunkware/Limiter.cpp'
|
|
||||||
])
|
|
||||||
my_module.add_header_file([
|
|
||||||
'audio/algo/chunkware/Compressor.hpp',
|
|
||||||
'audio/algo/chunkware/debug.hpp',
|
|
||||||
'audio/algo/chunkware/EnvelopeDetector.hpp',
|
|
||||||
'audio/algo/chunkware/AttRelEnvelope.hpp',
|
|
||||||
'audio/algo/chunkware/Gate.hpp',
|
|
||||||
'audio/algo/chunkware/GateRms.hpp',
|
|
||||||
'audio/algo/chunkware/Gain.hpp',
|
|
||||||
'audio/algo/chunkware/Limiter.hpp'
|
|
||||||
])
|
|
||||||
my_module.add_depend(['etk', 'audio'])
|
|
||||||
my_module.add_path(".")
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -9,7 +9,10 @@
|
|||||||
#include <audio/algo/chunkware/Compressor.hpp>
|
#include <audio/algo/chunkware/Compressor.hpp>
|
||||||
#include <audio/algo/chunkware/Limiter.hpp>
|
#include <audio/algo/chunkware/Limiter.hpp>
|
||||||
#include <audio/algo/chunkware/Gate.hpp>
|
#include <audio/algo/chunkware/Gate.hpp>
|
||||||
#include <etk/os/FSNode.hpp>
|
#include <ememory/SharedPtr.hpp>
|
||||||
|
#include <etk/io/Interface.hpp>
|
||||||
|
#include <etk/path/Path.hpp>
|
||||||
|
#include <etk/uri/uri.hpp>
|
||||||
#include <echrono/Steady.hpp>
|
#include <echrono/Steady.hpp>
|
||||||
#include <ethread/Thread.hpp>
|
#include <ethread/Thread.hpp>
|
||||||
#include <ethread/tools.hpp>
|
#include <ethread/tools.hpp>
|
||||||
@ -91,7 +94,7 @@ void performanceCompressor() {
|
|||||||
{
|
{
|
||||||
double phase = 0;
|
double phase = 0;
|
||||||
double baseCycle = 2.0*M_PI/sampleRate * 1280.0;
|
double baseCycle = 2.0*M_PI/sampleRate * 1280.0;
|
||||||
for (int32_t iii=0; iii<input.size(); iii++) {
|
for (size_t iii=0; iii<input.size(); iii++) {
|
||||||
input[iii] = cos(phase) * 5.0;
|
input[iii] = cos(phase) * 5.0;
|
||||||
phase += baseCycle;
|
phase += baseCycle;
|
||||||
if (phase >= 2*M_PI) {
|
if (phase >= 2*M_PI) {
|
||||||
@ -130,7 +133,7 @@ void performanceLimiter() {
|
|||||||
{
|
{
|
||||||
double phase = 0;
|
double phase = 0;
|
||||||
double baseCycle = 2.0*M_PI/sampleRate * 1280.0;
|
double baseCycle = 2.0*M_PI/sampleRate * 1280.0;
|
||||||
for (int32_t iii=0; iii<input.size(); iii++) {
|
for (size_t iii=0; iii<input.size(); iii++) {
|
||||||
input[iii] = cos(phase) * 5.0;
|
input[iii] = cos(phase) * 5.0;
|
||||||
phase += baseCycle;
|
phase += baseCycle;
|
||||||
if (phase >= 2*M_PI) {
|
if (phase >= 2*M_PI) {
|
||||||
@ -171,7 +174,7 @@ void performanceGate() {
|
|||||||
{
|
{
|
||||||
double phase = 0;
|
double phase = 0;
|
||||||
double baseCycle = 2.0*M_PI/sampleRate * 1280.0;
|
double baseCycle = 2.0*M_PI/sampleRate * 1280.0;
|
||||||
for (int32_t iii=0; iii<input.size(); iii++) {
|
for (size_t iii=0; iii<input.size(); iii++) {
|
||||||
input[iii] = cos(phase) * 5.0;
|
input[iii] = cos(phase) * 5.0;
|
||||||
phase += baseCycle;
|
phase += baseCycle;
|
||||||
if (phase >= 2*M_PI) {
|
if (phase >= 2*M_PI) {
|
||||||
@ -209,7 +212,7 @@ void performanceGate() {
|
|||||||
int main(int _argc, const char** _argv) {
|
int main(int _argc, const char** _argv) {
|
||||||
// the only one init for etk:
|
// the only one init for etk:
|
||||||
etk::init(_argc, _argv);
|
etk::init(_argc, _argv);
|
||||||
etk::String inputName = "";
|
etk::Path inputName = "";
|
||||||
bool performance = false;
|
bool performance = false;
|
||||||
bool perf = false;
|
bool perf = false;
|
||||||
int64_t sampleRate = 48000;
|
int64_t sampleRate = 48000;
|
||||||
@ -242,12 +245,20 @@ int main(int _argc, const char** _argv) {
|
|||||||
performanceGate();
|
performanceGate();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (inputName == "") {
|
if (inputName.isEmpty() == true) {
|
||||||
TEST_ERROR("Can not Process missing parameters...");
|
TEST_ERROR("Can not Process missing parameters...");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
TEST_INFO("Read input:");
|
TEST_INFO("Read input:");
|
||||||
etk::Vector<double> inputData = convert(etk::FSNodeReadAllDataType<int16_t>(inputName));
|
etk::Vector<int16_t> tmpData;
|
||||||
|
{
|
||||||
|
ememory::SharedPtr<etk::io::Interface> fileIO = etk::uri::get(inputName);
|
||||||
|
fileIO->open(etk::io::OpenMode::Read);
|
||||||
|
tmpData = fileIO->readAll<int16_t>();
|
||||||
|
fileIO->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
etk::Vector<double> inputData = convert(tmpData);
|
||||||
TEST_INFO(" " << inputData.size() << " samples");
|
TEST_INFO(" " << inputData.size() << " samples");
|
||||||
// resize output :
|
// resize output :
|
||||||
etk::Vector<double> output;
|
etk::Vector<double> output;
|
||||||
@ -310,7 +321,15 @@ int main(int _argc, const char** _argv) {
|
|||||||
TEST_INFO(" max=" << (float((perfo.getMaxProcessing().get()*sampleRate)/blockSize)/1000000000.0)*100.0 << " %");
|
TEST_INFO(" max=" << (float((perfo.getMaxProcessing().get()*sampleRate)/blockSize)/1000000000.0)*100.0 << " %");
|
||||||
TEST_INFO(" avg=" << (float(((perfo.getTotalTimeProcessing().get()/perfo.getTotalIteration())*sampleRate)/blockSize)/1000000000.0)*100.0 << " %");
|
TEST_INFO(" avg=" << (float(((perfo.getTotalTimeProcessing().get()/perfo.getTotalIteration())*sampleRate)/blockSize)/1000000000.0)*100.0 << " %");
|
||||||
}
|
}
|
||||||
etk::FSNodeWriteAllDataType<int16_t>("output.raw", convert(output));
|
{
|
||||||
|
ememory::SharedPtr<etk::io::Interface> fileIO = etk::uri::get(etk::Path("output.raw"));
|
||||||
|
if (fileIO->open(etk::io::OpenMode::Write) == false) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
fileIO->writeAll<double>(output);
|
||||||
|
fileIO->close();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
1.0.0
|
1.0.0-dev
|
Loading…
Reference in New Issue
Block a user