Compare commits
No commits in common. "d4bae735855a9f1b988d4e85b26664d8e5422382" and "ec11f12442b55d35dce6c4b47a05617fa21e080e" have entirely different histories.
d4bae73585
...
ec11f12442
198
README.md
198
README.md
@ -33,21 +33,18 @@ The goal of `cwtest` is to be able to easily exercise `libcw`
|
|||||||
functions, or build simple utilities based on them, with a flexible
|
functions, or build simple utilities based on them, with a flexible
|
||||||
sets of parameters. The primary parameter file is `src/cwtest/cfg/main.cfg`.
|
sets of parameters. The primary parameter file is `src/cwtest/cfg/main.cfg`.
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
# MIDI - MIDI devices and files.
|
# MIDI - MIDI Device Manager
|
||||||
|
|
||||||
|
CLI Label | Source File | Function
|
||||||
Label | Source File | Function
|
|
||||||
----------------------|----------------------|--------------
|
|
||||||
__midiDeviceReport__ | cwMidiDeviceTest.cpp | testReport()
|
|
||||||
|
|
||||||
List The current set of MIDI hardware devices
|
|
||||||
|
|
||||||
|
|
||||||
Label | Source File | Function
|
|
||||||
------------------|----------------------|--------------
|
------------------|----------------------|--------------
|
||||||
__midiDevice__ | cwMidiDeviceTest.cpp | test()
|
midiDeviceReport | cwMidiDeviceTest.cpp | testReport()
|
||||||
|
|
||||||
|
List The current set of MIID hardware devices and their ports.
|
||||||
|
|
||||||
|
CLI Label | Source File | Function
|
||||||
|
------------------|----------------------|--------------
|
||||||
|
midiDevice | cwMidiDeviceTest.cpp | test()
|
||||||
|
|
||||||
Interactive testing of the MIDI input file device
|
Interactive testing of the MIDI input file device
|
||||||
start/pause/unpause/stop functions. This function also validates the
|
start/pause/unpause/stop functions. This function also validates the
|
||||||
@ -55,34 +52,35 @@ latency of the device by comparing the time between MIDI events as
|
|||||||
generated by the device to the actual time between the events in the
|
generated by the device to the actual time between the events in the
|
||||||
MIDI file.
|
MIDI file.
|
||||||
|
|
||||||
|
CLI Label | Source File | Function
|
||||||
Label | Source File | Function
|
|
||||||
------------------|----------------------|--------------
|
------------------|----------------------|--------------
|
||||||
__midifile__ | cwMidiFile.cpp | test()
|
midifile | cwMidiFile.cpp | test()
|
||||||
|
|
||||||
MIDI file utility parameters:
|
MIDI file utility parameters:
|
||||||
|
|
||||||
- Convert a MIDI file to a CSV file.
|
Convert a MIDI file to a CSV file.
|
||||||
```
|
```
|
||||||
csv: { midiFn:<filename> csvFn:<filename> }
|
csv: { midiFn:<filename> csvFn:<filename> }
|
||||||
```
|
```
|
||||||
|
|
||||||
- Print the first <msgCnt> MIDI messages from a file.
|
Print the first <msgCnt> MIDI messages from a file.
|
||||||
```
|
```
|
||||||
rpt_beg_end: { midi_fname:<filenae>, msgCnt:<int>, note_on_only_fl:<true|false> }
|
rpt_beg_end: { midi_fname:<filenae>, msgCnt:<int>, note_on_only_fl:<true|false> }
|
||||||
```
|
```
|
||||||
|
|
||||||
- Print the entire contents of the MIDI file.
|
Print the entire contents of the MIDI file.
|
||||||
```
|
```
|
||||||
rpt : { midiFn:<filename> }
|
rpt : { midiFn:<filename> }
|
||||||
```
|
```
|
||||||
|
|
||||||
- Convert all the MIDI files in the folder: `<path>/<folder>/take/'record_%i'` to CSV files
|
Convert all the MIDI files in the folder: `<path>/<folder>/take/'record_%i'` to CSV files
|
||||||
```
|
```
|
||||||
batch_convert: { io_dir:<path>, session_dir:<folder>, take_begin:<int>, take_end:<int> print_warnings_flag:<true|false> }
|
batch_convert: { io_dir:<path>, session_dir:<folder>, take_begin:<int>, take_end:<int> print_warnings_flag:<true|false> }
|
||||||
```
|
```
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Serial - Serial Port Manager
|
## Serial - Serial Port Manager
|
||||||
|
|
||||||
@ -95,8 +93,6 @@ The function continuously transmits ASCII values '0' through 'z' to external dev
|
|||||||
Those devices should increment the received value and send it back, where it is receieved and printed to the console.
|
Those devices should increment the received value and send it back, where it is receieved and printed to the console.
|
||||||
Firmware to run on ATMEGA328 based devices, like the Arduino Uno, is provided in `study/serial/arduino_xmt_recv/main.c`.
|
Firmware to run on ATMEGA328 based devices, like the Arduino Uno, is provided in `study/serial/arduino_xmt_recv/main.c`.
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
## wesockSrv - Web Sockets Server
|
## wesockSrv - Web Sockets Server
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
CLI Label | Source File | Function
|
||||||
@ -107,8 +103,6 @@ websockSrv | cwWebSockSvr.cpp | websockSrvTest()
|
|||||||
Interactive websocket server testing application.
|
Interactive websocket server testing application.
|
||||||
Run the app and navigate in a web browser to `localhost:5687` to run the application.
|
Run the app and navigate in a web browser to `localhost:5687` to run the application.
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
## nbmpscQueue - Non-Blocking Multiple Producer Single Consumer Queue
|
## nbmpscQueue - Non-Blocking Multiple Producer Single Consumer Queue
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
CLI Label | Source File | Function
|
||||||
@ -119,140 +113,39 @@ Run the non-blocking, multiple producer, single consumer queue for 'testDurMs' m
|
|||||||
and write the result into 'out_fname'. This is the queue used by the websocket implementation
|
and write the result into 'out_fname'. This is the queue used by the websocket implementation
|
||||||
(See cwWebSock.h/cpp) to support incoming calls form multiple threads without blocking the calling threads.
|
(See cwWebSock.h/cpp) to support incoming calls form multiple threads without blocking the calling threads.
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
CLI Label | Source File | Function
|
||||||
------------------|-----------------------|---------------------
|
------------------|-----------------------|---------------------
|
||||||
audioDevTest | cwAudioDeviceTest.cpp | test()
|
audioDevAlsa | cwAudioDeviceAlsa.cpp | report()
|
||||||
|
|
||||||
Interactive testing of a specified audio device using the
|
Generate a list of devices and device attributes directly from the ALSA sub-system.
|
||||||
cwAudioBuf functions: tones, pass-through, metering.
|
|
||||||
Use 'audioDevRpt' to get the possible labels for 'inDev' and 'outDev'.
|
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|-----------------------|---------------------
|
|
||||||
audioDevFileTest | cwAudioDeviceFile.cpp | Test()
|
|
||||||
|
|
||||||
Test the input and output audio file device driver
|
|
||||||
by setting a input file to 'inAudioFname' and writing
|
|
||||||
the output file to 'outAudioFname'. 'cycleCnt'
|
|
||||||
is the total count of test audio cycles.
|
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
CLI Label | Source File | Function
|
||||||
------------------|----------------------|---------------------
|
------------------|----------------------|---------------------
|
||||||
audioDevRpt | cwAudioDevice.cpp | report()
|
audioDevRpt | cwAudioDevice.cpp | report
|
||||||
|
|
||||||
Generate a list of devices and device attributes from libcw. This will include audio file based devices.
|
Generate a list of devices and device attributes from libcw. This will include audio file based devices.
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
audiofile | cwAudioFile.cpp | test()
|
|
||||||
|
|
||||||
Report the audio file format and a selected set of sample values.
|
|
||||||
|
|
||||||
# Operations on Audio Files
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
afop | cwAudioFile.cpp | test()
|
|
||||||
|
|
||||||
sine - generate a sine signal
|
|
||||||
mix - mix multiple audio files with selectable gains per file.
|
|
||||||
select_to_file - save sections of audio files to new audio files
|
|
||||||
cutAndMix - Extract a section of source audio, apply fade in/out ramps, and mix it into a destination file.
|
|
||||||
parallelMix - Given a set of overlapping source files of identical length solo a given source during a specified time interval.
|
|
||||||
transformApp - Currawong online transform audition demo.
|
|
||||||
convolve - Convolve an audio file with an impulse response
|
|
||||||
generate - Synthesize a signal.
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|----------------------|---------------------
|
|
||||||
audio_file_proc | cwAudioFileProc.cpp | file_processor()
|
|
||||||
|
|
||||||
General purpose audio file processing pipeline.
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|-----------------------|---------------------
|
|
||||||
pvoc_file_proc | cwPvAudioFileProc.cpp | pvoc_file_processor()
|
|
||||||
|
|
||||||
General purpose audio file processing for phase-vocoder based processing.
|
|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
# Socket
|
# Socket
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
CLI Label | Source File | Function
|
||||||
---------------------|----------------------|---------------------
|
---------------------|----------------------|---------------------
|
||||||
socketMgrSrvTest | cwSocket.cpp | mainTest()
|
socketMgrSrvTest | cwSocket | mainTest()
|
||||||
socketMgrClientTest | cwSocket.cpp | mainTest()
|
socketMgrClientTest | cwSocket | mainTest()
|
||||||
|
|
||||||
This is based on the current cwSocket implementation.
|
|
||||||
Interactive socket based client/server application.
|
Interactive socket based client/server application.
|
||||||
Start `socketMgrSrvTest` in one process, then `socketMgrClientTest`
|
Start `socketMgrSrvTest` in one process, then `socketMgrClientTest`
|
||||||
in a second processor.
|
in a second processor.
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|----------------------|---------------------
|
|
||||||
socketUdp | cwTcpSocketTest.cpp | test_udp()
|
|
||||||
|
|
||||||
This is based on the cwTcpSocket implemetation, as developed for use with MDNS,DNSD,EUCON.
|
|
||||||
Interactive tester.
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|----------------------|---------------------
|
|
||||||
socketTcpClient | cwTcpSocketTest.cpp | test_tcp()
|
|
||||||
socketTcpServer | cwTcpSocketTest.cpp | test_tcp()
|
|
||||||
|
|
||||||
This is based on the cwTcpSocket implemetation, as developed for use with MDNS,DNSD,EUCON.
|
|
||||||
Interactive tester.
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|----------------------|---------------------
|
|
||||||
socketSrvUdp | cwTcpSocketTest.cpp | test_udp_srv()
|
|
||||||
socketSrvTcp | cwTcpSocketTest.cpp | test_tcp_srv()
|
|
||||||
|
|
||||||
This is based on the cwTcpSocket implemetation, as developed for use with MDNS,DNSD,EUCON.
|
|
||||||
Interactive tester.
|
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|----------------------|---------------------
|
|
||||||
socketMdns | cwMdns.cpp | test()
|
|
||||||
|
|
||||||
Runs a very specific test for simulating a Euphonix MC Mixer surface.
|
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|----------------------|---------------------
|
|
||||||
dnssd | cwDnssd.cpp | test()
|
|
||||||
|
|
||||||
Runs a very specific test for simulating a Euphonix MC Mix surface.
|
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
---------------------|----------------------|---------------------
|
|
||||||
eucon | cwEuCon.cpp | test()
|
|
||||||
|
|
||||||
Runs a very specific test for simulating a Euphonix MC Mix surface.
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
# File system
|
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
CLI Label | Source File | Function
|
||||||
------------------|----------------------|---------------------
|
------------------|----------------------|---------------------
|
||||||
dirEntry | cwFileSys.cpp | dirEntryTest()
|
dirEntry | cwFileSys.cpp | dirEntryTest()
|
||||||
|
|
||||||
Exercise the directory reader.
|
Exercise the directory reader.
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
# IO Interface
|
# IO Interface
|
||||||
|
|
||||||
@ -260,56 +153,13 @@ CLI Label | Source File | Function
|
|||||||
------------------|----------------------|---------------------
|
------------------|----------------------|---------------------
|
||||||
io_minimal | cwIoMinTest.cpp | min_test()
|
io_minimal | cwIoMinTest.cpp | min_test()
|
||||||
|
|
||||||
Incomplete minimal template for an application based on cwIo.h/cpp without a GUI.
|
cwIoMinTest.cpp gives minimal template for an interactive application based on cwIo.h/cpp.
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
CLI Label | Source File | Function
|
||||||
------------------|----------------------|---------------------
|
------------------|----------------------|---------------------
|
||||||
io | cwIoTest.cpp | test()
|
io | cwIoTest.cpp | test()
|
||||||
|
|
||||||
Incomplete but working interactive app used to test and develop cwIo based applications.
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
audio_midi | cwIoAudioMidiApp.cpp | main()
|
|
||||||
|
|
||||||
Program for recording and playing back real-time Audio and MIDI.
|
|
||||||
Based on cwIoAudioRecordPlay and cwIoMidiRecordPlay.
|
|
||||||
|
|
||||||
|
|
||||||
# Dataset Related
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
mnist | cwDatasets.cpp | mnist::test()
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
dataset_wtr | cwDatasets.cpp | wtr::test()
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
dataset_rdr | cwDatasets.cpp | rdr::test()
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
dataset_adapter | cwDatasets.cpp | adapter::test()
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
dataset | cwDatasets.cpp | test()
|
|
||||||
|
|
||||||
Read MNIST native file -> write dataset file -> read datasetfile -> write SVG file
|
|
||||||
|
|
||||||
# SVG
|
|
||||||
|
|
||||||
CLI Label | Source File | Function
|
|
||||||
------------------|----------------------|---------------------
|
|
||||||
svg | cwSvg.cpp | test()
|
|
||||||
|
|
||||||
Test the SVG file writer.
|
|
||||||
|
|
||||||
|
|
||||||
## Run Unit Tests:
|
## Run Unit Tests:
|
||||||
|
@ -27,22 +27,17 @@
|
|||||||
// piano
|
// piano
|
||||||
{
|
{
|
||||||
enableFl: true,
|
enableFl: true,
|
||||||
label: "piano",
|
|
||||||
|
|
||||||
//midi_out_device: "MIDIFACE 2x2",
|
//midi_out_device: "MIDIFACE 2x2",
|
||||||
//midi_out_port: "MIDIFACE 2x2 Midi Out 1",
|
//midi_out_port: "MIDIFACE 2x2 Midi Out 1",
|
||||||
|
|
||||||
//midi_out_device: "Scarlett 18i20 USB",
|
//midi_out_device: "Scarlett 18i20 USB",
|
||||||
//midi_out_port: "Scarlett 18i20 USB MIDI 1",
|
//midi_out_port: "Scarlett 18i20 USB MIDI 1",
|
||||||
|
|
||||||
//midi_out_device: "iRig MIDI 2",
|
midi_out_device: "iRig MIDI 2",
|
||||||
//midi_out_port: "iRig MIDI 2 MIDI 1",
|
midi_out_port: "iRig MIDI 2 MIDI 1",
|
||||||
|
|
||||||
//midi_out_device: "PipeWire-RT-Event",
|
//midi_out_device: "Fastlane",
|
||||||
//midi_out_port: "input",
|
//midi_out_port: "Fastlane MIDI A",
|
||||||
|
|
||||||
midi_out_device: "Fastlane",
|
|
||||||
midi_out_port: "Fastlane MIDI A",
|
|
||||||
|
|
||||||
force_damper_down_fl: false,
|
force_damper_down_fl: false,
|
||||||
force_damper_down_threshold: 35,
|
force_damper_down_threshold: 35,
|
||||||
@ -53,6 +48,8 @@
|
|||||||
damper_dead_band_min_value: 1,
|
damper_dead_band_min_value: 1,
|
||||||
damper_dead_band_max_value: 30,
|
damper_dead_band_max_value: 30,
|
||||||
|
|
||||||
|
//midi_out_device: "PipeWire-RT-Event",
|
||||||
|
//midi_out_port: "input",
|
||||||
|
|
||||||
// pedal down velocity input/output mapping
|
// pedal down velocity input/output mapping
|
||||||
//pedal: {
|
//pedal: {
|
||||||
@ -84,8 +81,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
ui: {
|
ui: {
|
||||||
enableFl: true,
|
|
||||||
asyncFl:false,
|
|
||||||
physRootDir: "/home/kevin/src/cwtest/src/libcw/html/audio_midi",
|
physRootDir: "/home/kevin/src/cwtest/src/libcw/html/audio_midi",
|
||||||
dfltPageFn: "index.html",
|
dfltPageFn: "index.html",
|
||||||
port: 5687,
|
port: 5687,
|
||||||
@ -95,16 +90,12 @@
|
|||||||
websockTimeOutMs: 50, // max time out while blocking for a websock event
|
websockTimeOutMs: 50, // max time out while blocking for a websock event
|
||||||
idleMsgPeriodMs: 50, // period without messages before an idle message is generated
|
idleMsgPeriodMs: 50, // period without messages before an idle message is generated
|
||||||
uiCfgFn: "ui.cfg", // default UI resource description
|
uiCfgFn: "ui.cfg", // default UI resource description
|
||||||
queueBlkCnt: 8,
|
asyncFl: false
|
||||||
queueBlkByteCnt: 32768,
|
|
||||||
idleMsgPeriodMs: 50, // period without messages before an idle message is generated
|
|
||||||
extraLogsFl: false,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
serial:
|
serial:
|
||||||
{
|
{
|
||||||
enableFl: false,
|
|
||||||
pollPeriodMs: 50,
|
pollPeriodMs: 50,
|
||||||
recvBufByteN: 512,
|
recvBufByteN: 512,
|
||||||
array: [
|
array: [
|
||||||
@ -123,29 +114,11 @@
|
|||||||
|
|
||||||
|
|
||||||
midi: {
|
midi: {
|
||||||
enableFl: true,
|
parserBufByteN: 1024,
|
||||||
asyncFl: true,
|
asyncFl: true,
|
||||||
parseBufByteCnt: 1024,
|
|
||||||
appNameStr: "cwtest",
|
|
||||||
fileDevName: "file_dev",
|
|
||||||
fileDevReadAheadMicros: 3000,
|
|
||||||
testFileLabel: "file_0",
|
|
||||||
testFileEnableFl: false
|
|
||||||
enableBufFl:true,
|
|
||||||
bufferMsgCnt:4096,
|
|
||||||
filterRtSenseFl:true
|
|
||||||
|
|
||||||
file_ports: [
|
|
||||||
|
|
||||||
{ "label":"file_0",
|
|
||||||
//"file": "/home/kevin/src/cwtest/src/cwtest/cfg/gutim_full/data1/beck1/record_4/midi.mid",
|
|
||||||
"enable_fl": false },
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
audio: {
|
audio: {
|
||||||
enableFl: true,
|
|
||||||
meterMs: 50, // audio meter filter length and meter callback period
|
meterMs: 50, // audio meter filter length and meter callback period
|
||||||
threadTimeOutMs: 50, // audio thread cond var time out
|
threadTimeOutMs: 50, // audio thread cond var time out
|
||||||
|
|
||||||
@ -163,14 +136,12 @@
|
|||||||
deviceL: [
|
deviceL: [
|
||||||
{
|
{
|
||||||
// System device name
|
// System device name
|
||||||
//device: "Scarlett 18i20 USB USB Audio",
|
device: "Scarlett 18i20 USB USB Audio",
|
||||||
//device: "USB Audio CODEC USB Audio",
|
//device: "USB Audio CODEC USB Audio",
|
||||||
//device: "HDA Intel PCH CS4208 Analog",
|
//device: "HDA Intel PCH CS4208 Analog",
|
||||||
//device: "ICUSBAUDIO7D USB Audio",
|
//device: "ICUSBAUDIO7D USB Audio",
|
||||||
device: "MBox USB Audio",
|
|
||||||
|
|
||||||
activeFl: true, // (req)
|
enableFl: true, // (req)
|
||||||
meterFl: true, // (opt)
|
|
||||||
label: "main", // (req) User label
|
label: "main", // (req) User label
|
||||||
userId: 0, // (opt) User id (can also be set at runtime)
|
userId: 0, // (opt) User id (can also be set at runtime)
|
||||||
framesPerCycle: 512, // (req) Samples per audio device cycle
|
framesPerCycle: 512, // (req) Samples per audio device cycle
|
||||||
@ -182,7 +153,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
socket: {
|
socket: {
|
||||||
enableFl: false,
|
|
||||||
asyncFl: false,
|
asyncFl: false,
|
||||||
maxSocketCnt: 10,
|
maxSocketCnt: 10,
|
||||||
recvBufByteCnt: 4096,
|
recvBufByteCnt: 4096,
|
||||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -51,7 +51,6 @@
|
|||||||
filesys:{ test_0:{}},
|
filesys:{ test_0:{}},
|
||||||
object:{ basic:{}, to_json:{} },
|
object:{ basic:{}, to_json:{} },
|
||||||
vop:{ test_0:{} },
|
vop:{ test_0:{} },
|
||||||
dsp:{ fft:{}, ifft:{}, convolve:{} },
|
|
||||||
time:{ test_0:{} },
|
time:{ test_0:{} },
|
||||||
textBuf: { test_0:{} },
|
textBuf: { test_0:{} },
|
||||||
audioBuf:{ test_0:{} }
|
audioBuf:{ test_0:{} }
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
: out : : 1.000000 : 0.500000 : 0.250000 : 0.100000 :
|
|
||||||
: ola : : 0.050000 : 0.000000 : 0.000000 : -0.000000 :
|
|
||||||
: out : : 1.050000 : 0.500000 : 0.250000 : 0.100000 :
|
|
||||||
: ola : : 0.050000 : 0.000000 : 0.000000 : -0.000000 :
|
|
||||||
: out : : 1.050000 : 0.500000 : 0.250000 : 0.100000 :
|
|
||||||
: ola : : 0.050000 : 0.000000 : 0.000000 : -0.000000 :
|
|
||||||
: yV : : 1.00 : 0.50 : 0.25 : 0.10 : 1.05 : 0.50 : 0.25 : 0.10 : 1.05 : 0.50 : 0.25 : 0.10 : 0.05 : 0.00 : 0.00 : 0.00 : 0.00 : 0.00 : 0.00 : 0.00 :
|
|
@ -1,3 +0,0 @@
|
|||||||
: sin : : 0.000000 : 0.382683 : 0.707107 : 0.923880 : 1.000000 : 0.923880 : 0.707107 : 0.382683 : -0.000000 : -0.382683 : -0.707107 : -0.923880 : -1.000000 : -0.923879 : -0.707107 : -0.382683 :
|
|
||||||
: mag : : 0.000000 : 1.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 :
|
|
||||||
: phs : : 0.000000 : -1.570796 : -2.546503 : 0.000000 : -1.872442 : -0.749834 : 1.800163 : 3.141593 : 3.141593 :
|
|
@ -1,4 +0,0 @@
|
|||||||
: sin : : 0.000000 : 0.382683 : 0.707107 : 0.923880 : 1.000000 : 0.923880 : 0.707107 : 0.382683 : 0.000000 : -0.382683 : -0.707107 : -0.923880 : -1.000000 : -0.923880 : -0.707107 : -0.382683 :
|
|
||||||
: mag : : 0.000000 : 1.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 : 0.000000 :
|
|
||||||
: phs : : 3.141593 : -1.570796 : -2.128818 : -1.399942 : -1.133610 : -0.858986 : -0.562898 : 0.000000 : 0.000000 :
|
|
||||||
: sig : : 0.000000 : 0.382683 : 0.707107 : 0.923880 : 1.000000 : 0.923880 : 0.707107 : 0.382683 : 0.000000 : -0.382683 : -0.707107 : -0.923880 : -1.000000 : -0.923880 : -0.707107 : -0.382683 :
|
|
@ -93,6 +93,7 @@
|
|||||||
#include "cwIo.h"
|
#include "cwIo.h"
|
||||||
#include "cwIoTest.h"
|
#include "cwIoTest.h"
|
||||||
#include "cwIoMinTest.h"
|
#include "cwIoMinTest.h"
|
||||||
|
#include "cwIoAudioMidi.h"
|
||||||
#include "cwIoAudioMidiApp.h"
|
#include "cwIoAudioMidiApp.h"
|
||||||
#include "cwIoMidiRecordPlay.h"
|
#include "cwIoMidiRecordPlay.h"
|
||||||
#endif
|
#endif
|
||||||
@ -314,6 +315,16 @@ cw::rc_t b23TreeTest( const cw::object_t* cfg, const cw::object_t* args
|
|||||||
cw::rc_t midiFileTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::midi::file::test(args); }
|
cw::rc_t midiFileTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::midi::file::test(args); }
|
||||||
cw::rc_t audioFileTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::audiofile::test(args); }
|
cw::rc_t audioFileTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::audiofile::test(args); }
|
||||||
cw::rc_t audioFileOp( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::test(args); }
|
cw::rc_t audioFileOp( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::test(args); }
|
||||||
|
cw::rc_t audioFileMix( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::mix(args); }
|
||||||
|
cw::rc_t audioFileSelToFile( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::selectToFile(args); }
|
||||||
|
cw::rc_t audioFileCutAndMix( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::cutAndMix(args); }
|
||||||
|
cw::rc_t audioFileParallelMix( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::parallelMix(args); }
|
||||||
|
cw::rc_t audioFileTransformApp(const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::transformApp(args); }
|
||||||
|
cw::rc_t audioFileConvolve( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::convolve(args); }
|
||||||
|
cw::rc_t audioFileGenerate( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::afop::generate(args); }
|
||||||
|
cw::rc_t fftTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::dsp::fft::test(); }
|
||||||
|
cw::rc_t ifftTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::dsp::ifft::test(); }
|
||||||
|
cw::rc_t convolveTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::dsp::convolve::test(); }
|
||||||
cw::rc_t pianoScoreTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::perf_score::test(args); }
|
cw::rc_t pianoScoreTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::perf_score::test(args); }
|
||||||
cw::rc_t gutimRegTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::gutim::reg::test(args); }
|
cw::rc_t gutimRegTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::gutim::reg::test(args); }
|
||||||
cw::rc_t amToMidiFile( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::midi_record_play::am_to_midi_file(args); }
|
cw::rc_t amToMidiFile( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::midi_record_play::am_to_midi_file(args); }
|
||||||
@ -401,7 +412,15 @@ cw::rc_t datasetWtrTest( const cw::object_t* cfg, const cw::object_t* args,
|
|||||||
cw::rc_t datasetRdrTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::dataset::rdr::test(args); }
|
cw::rc_t datasetRdrTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::dataset::rdr::test(args); }
|
||||||
cw::rc_t datasetAdapterTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::dataset::adapter::test(args); }
|
cw::rc_t datasetAdapterTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::dataset::adapter::test(args); }
|
||||||
|
|
||||||
cw::rc_t svgTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::svg::test(args); }
|
cw::rc_t svgTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] )
|
||||||
|
{
|
||||||
|
char* htmlFn = requiredNewFile( args, "outHtmlFn");
|
||||||
|
char* cssFn = optionalNewFile( args, "outCssFn");
|
||||||
|
cw::rc_t rc = cw::svg::test(htmlFn,cssFn);
|
||||||
|
cw::mem::release(htmlFn);
|
||||||
|
cw::mem::release(cssFn);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cw::rc_t dirEntryTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::filesys::dirEntryTest(args); }
|
cw::rc_t dirEntryTest( const cw::object_t* cfg, const cw::object_t* args, int argc, const char* argv[] ) { return cw::filesys::dirEntryTest(args); }
|
||||||
@ -501,6 +520,16 @@ int main( int argc, const char* argv[] )
|
|||||||
{ "midifile", midiFileTest },
|
{ "midifile", midiFileTest },
|
||||||
{ "audiofile", audioFileTest },
|
{ "audiofile", audioFileTest },
|
||||||
{ "afop", audioFileOp },
|
{ "afop", audioFileOp },
|
||||||
|
{ "audio_mix", audioFileMix },
|
||||||
|
{ "select_to_file", audioFileSelToFile },
|
||||||
|
{ "cut_and_mix", audioFileCutAndMix },
|
||||||
|
{ "parallel_mix",audioFileParallelMix },
|
||||||
|
{ "transform_app", audioFileTransformApp },
|
||||||
|
{ "convolve_file", audioFileConvolve },
|
||||||
|
{ "generate_audio",audioFileGenerate },
|
||||||
|
{ "fft", fftTest },
|
||||||
|
{ "ifft", ifftTest },
|
||||||
|
{ "convolve", convolveTest },
|
||||||
{ "piano_score", pianoScoreTest },
|
{ "piano_score", pianoScoreTest },
|
||||||
{ "gutim_reg", gutimRegTest },
|
{ "gutim_reg", gutimRegTest },
|
||||||
{ "am_to_midi_file", amToMidiFile },
|
{ "am_to_midi_file", amToMidiFile },
|
||||||
|
Loading…
Reference in New Issue
Block a user