Minor updates (#314)

* SDK location can now set in makefile
* Mixer requirements added to readme
* Uncommented previously broken mixer example from docs as this functionality is now working
* Fixed windows build & runtime info in README
This commit is contained in:
TDW89
2023-03-01 10:59:00 +00:00
committed by GitHub
parent eee5b474a0
commit 49a116c705
5 changed files with 34 additions and 69 deletions

View File

@@ -1,4 +1,5 @@
THESYCON_DIR = C:\Program/ Files\Thesycon\XMOSinternalUsbAudio_v5.50.0_eval_2022-11-17_SDK
!if [set SDKPath=C:\Program^ Files\XMOS\tusbaudiosdk]
!endif
all:
msbuild host_usb_mixer_control.vcxproj /property:Configuration=Release /property:Platform=x64

View File

@@ -2,6 +2,16 @@ The XMOS USB Audio Reference Design, by default, contains an 18x8 mixer unit
(note that at sample rates above 96Khz only the first two outputs are
enabled).
----WINDOWS REQUIREMENTS----
Building the mixer on Windows requires the tusbaudio SDK from Thesycon. The
default location for the SDK is C:\Program Files\XMOS\tusbaudiosdk\
If it can be found on a different path then this can be changed in
Makefile.Win.
The mixer app on windows makes use of a USB dynamic library, also from Thesycon.
If required please contact thesycon.de for support.
----------------------------
This unit takes input takes 18 inputs: USB OUT channels 1..10 and
DEVICE IN channels 1..6,9..10 and produces 8 outputs: Mixer Output
1..8
@@ -17,7 +27,7 @@ channels 1..10, DEVICE IN channels 1..10 and Mixer Output 1..8
The channel map units are extension unit with init ids 51 and 52. This unit
lets you implement arbitrary routings including loopbacks.
The mixer is control on MAC OS X via the command line utility
The mixer is controlled on macOS via the command line utility
xmos_mixer. Running this application requires having the
libusb-1.0.0.dylib in the dynamic library load path. Sourcing the
setup.sh script will do this. Source code for the application is

View File

@@ -24,7 +24,7 @@
<ProjectGuid>{84eacf4f-e405-4909-b440-a04a84a3f8c8}</ProjectGuid>
<RootNamespace>
</RootNamespace>
<SDKPath>C:\Program Files\XMOS\tusbaudiosdk</SDKPath>
<SDKPath Condition="'$(SDKPath)' == ''">C:\Program Files\XMOS\tusbaudiosdk</SDKPath>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

View File

@@ -220,52 +220,6 @@ int usb_mixer_mem_get(unsigned int mixer, unsigned offset, unsigned char *data)
#endif
}
//############# Never Called ##########
// static const unsigned char *find_input_term_unit_by_id(const unsigned char *data, int length, int id)
// {
// const unsigned char *interface_data = data;
// while (length)
// {
// const unsigned char *interface_len = interface_data;
// int sub_type = *(interface_len + 2);
// if (sub_type == USB_INPUT_TERM_TYPE)
// {
// int unit_id = *(interface_len + 3);
// if (unit_id == id)
// {
// return interface_len;
// }
// }
// interface_data+=*interface_len;
// length -= *interface_len;
// }
// return NULL;
// }
//############# Never Called ##########
// static const unsigned char *find_connected_feature_unit_by_id(const unsigned char *data, int length, int id) {
// const unsigned char *interface_data = data;
// while (length)
// {
// const unsigned char *interface_len = interface_data;
// int sub_type = *(interface_len + 2);
// if (sub_type == USB_FEATURE_UNIT_TYPE)
// {
// //int unit_id = *(interface_len + 3);
// int src_unit_id = *(interface_len + 4);
// if (src_unit_id == id)
// {
// return interface_len;
// }
// }
// interface_data+=*interface_len;
// length -= *interface_len;
// }
// return NULL;
// }
static const unsigned char *findUnit(const unsigned char *descs, int length, int id)
{
const unsigned char *interface_data = descs;

View File

@@ -220,32 +220,32 @@ At the same time, the original mixer outputs can be muted::
Now audio inputs on analogue 1 and 2 should be heard on outputs 1 and 2 respectively.
.. As mentioned above, the flexibility of the mixer is such that there will be multiple ways to create
.. a particular mix. Another option to create the same routing would be to change the mixer sources
.. such that mixer outputs 1 and 2 come from the analogue inputs 1 and 2.
As mentioned above, the flexibility of the mixer is such that there will be multiple ways to create
a particular mix. Another option to create the same routing would be to change the mixer sources
such that mixer outputs 1 and 2 come from the analogue inputs 1 and 2.
.. To demonstrate this, firstly undo the changes above (or simply reset the device)::
To demonstrate this, firstly undo the changes above (or simply reset the device)::
.. $ ./xmos_mixer --set-value 0 8 -inf
.. $ ./xmos_mixer --set-value 0 11 -inf
.. $ ./xmos_mixer --set-value 0 0 0
.. $ ./xmos_mixer --set-value 0 3 0
.. $ _
$ ./xmos_mixer --set-value 0 8 -inf
$ ./xmos_mixer --set-value 0 11 -inf
$ ./xmos_mixer --set-value 0 0 0
$ ./xmos_mixer --set-value 0 3 0
$ _
.. The mixer should now have the default values. The sources for mixer 0 output 1 and 2 can now be changed
.. using indices from the Audio Output Channel Map Source List::
The mixer should now have the default values. The sources for mixer 0 output 1 and 2 can now be changed
using indices from the Audio Output Channel Map Source List::
.. $ ./xmos_mixer --set-mixer-source 0 0 4
$ ./xmos_mixer --set-mixer-source 0 0 4
.. Set mixer(0) input 0 to device input 4 (AUD - Analogue 1)
.. $ ./xmos_mixer --set-mixer-source 0 1 5
Set mixer(0) input 0 to device input 4 (AUD - Analogue 1)
$ ./xmos_mixer --set-mixer-source 0 1 5
.. Set mixer(0) input 1 to device input 5 (AUD - Analogue 2)
.. $ _
Set mixer(0) input 1 to device input 5 (AUD - Analogue 2)
$ _
.. If you re-run the following command then the first column now has "AUD - Analogue 1 and 2" rather
.. than "DAW (Digital Audio Workstation i.e. the host) - Analogue 1 and 2" confirming the new mapping.
.. Again, by playing audio into analogue inputs 1/2 this can be heard looped through to analogue outputs 1/2::
If you re-run the following command then the first column now has "AUD - Analogue 1 and 2" rather
than "DAW (Digital Audio Workstation i.e. the host) - Analogue 1 and 2" confirming the new mapping.
Again, by playing audio into analogue inputs 1/2 this can be heard looped through to analogue outputs 1/2::
.. $ ./xmos_mixer --display-mixer-nodes 0
$ ./xmos_mixer --display-mixer-nodes 0