README
1Release 0.4.2 (29 Jun. 2021)
2----------------------------
3
4* Added -T option.
5
6* Fixed typos in Makefile.
7
8
9Release 0.4.0 (31 Jan. 2021)
10----------------------------
11
12* Added file processor, fmatconvol. This accepts
13 the same config files as jmatconvol, and any
14 reference to port names etc. are ignored.
15
16* Added commands to read the entire matrix
17 from a single audio file, see README_CONFIG.
18
19* Bugfixes, empty connection names are now
20 handled correctly.
21
22
23Release notes for jmatconvol
24----------------------------
25
26Jmatconvol is a real-time convolution engine. In
27contrast to jconvolver it uses a single partition
28size equal to the Jack period, and is optimised
29for dense matrices of short convolutions, e.g.
30for processing signals from spherical microphones
31such as the Eigenmike. The maximum convolution
32length is limited to 4096 samples in this release.
33
34For any other type of use (sparse matrics, longer
35convolutions,...) jconvolver is probably a better
36choice.
37
38Jmatconvol can compute up to a 64 by 64 convolution
39matrix (i.e. 4096 simultaneous convolutions) as long
40as your CPU(s) can handle the load. The computation
41work is performed by a user configurable number of
42parallel threads, allowing to distribute the load
43over all available CPUs.
44
45For configuration details, see README_CONFIG
46
47--
48FA
49
README_CONFIG
1Configuration file format for jmatconvol and fmatconvol
2-------------------------------------------------------
3
4
5See the files in the directory 'config-files' for some
6examples. Lines starting with '#' are comments.
7
8
9The following commands are available:
10
11
12/convolver/new <inputs> <outputs> <maximum impulse length> <number of threads>
13
14 This command is always required and must be first one.
15
16 The 'maximum impulse length' has an impact on the amount of memory
17 used and on the CPU load. Do not use a larger value than necessary.
18 It is limited to 4096 samples in this release.
19
20 The compution load can be more or less equally distributed over
21 a configurable number of parallel threads. This value should
22 normally be equal to the number of available CPUs.
23
24
25/input/name <input number> <port name> {<source port>}
26/output/name <output number> <port name> {<destination port>}
27
28 These can be used to provide more informative ports names,
29 and to optionally connect the inputs or outputs. Input and
30 output numbers start at 1. These command are ignored by
31 fmatconvol.
32
33
34/cd <path>
35
36 Change the directory where impulse response files are searched
37 for to 'path'. Permits the use of short names in the commands
38 below. Initial value is the current directory.
39
40
41/matrix/load <gain> <file>
42
43 Load the entire convolution matrix from an audio file.
44 If 'ninp' and 'nout' are the matrix dimensions, the file
45 must have 'ninp' channels, and the file size in frames
46 must be an exact multiple of 'nout'. The file will be
47 read as 'nout' equal lenght sections, one for each output.
48 The 'gain' parameter is a linear gain factor.
49
50
51/matrix/load_transp <gain> <file>
52
53 Load the entire convolution matrix from an audio file.
54 If 'ninp' and 'nout' are the matrix dimensions, the file
55 must have 'nout' channels, and the file size in frames
56 must be an exact multiple of 'ninp'. The file will be
57 read as 'ninp' equal lenght sections, one for each input.
58 The 'gain' parameter is a linear gain factor.
59
60
61/matrix/load_output <output> <gain> <file>
62
63 Load the all impulses for a single output from an audio file.
64 The file must have 'ninp' channels. Output numbers start at 1.
65 The 'gain' parameter is a linear gain factor.
66
67
68/matrix/load_input <input> <gain> <file>
69
70 Load the all impulses for a single input from an audio file.
71 The file must have 'nout' channels. Input numbers start at 1.
72 The 'gain' parameter is a linear gain factor.
73
74
75