The purpose of this task is to demonstrate how to produce sounds in real-time using analog outputs as part of Kinarm Lab.
For an alternative method that does NOT play sounds in real-time, but instead works through the Dexterit-E computer, please see the other sample task entitled Audio via Dexterit-E Computer (prev. tone player).
This task produces sounds by sending a pre-defined waveform over one analog channel output. If that output is connected to a speaker, then the user will hear the sound.
In order to make sounds in real-time, the following are required:
- one or more analog outputs connected to the Robot computer (e.g. via a PCI card such as NI-6229 connected to a BNC-2090A panel)
- You will need one analog channel for each independent speaker
- speakers with built-in amplifiers (e.g. headphones, or computer speakers)
- method to connect the analog output(s) to the speaker(s)
- e.g. if connecting two channels of a BNC-2090A panel to speakers that have a single 3.5 mm stereo jack, the following would work:
- 2 BNC to RCA/phono jacks – e.g. Newark (54M7978) or Digikey (367-1013-ND)
- An adapter with 2 RCA/phone plugs to a single 3.5 mm stereo jack – e.g. from Radioshack or the Source
- e.g. if connecting two channels of a BNC-2090A panel to speakers that have a single 3.5 mm stereo jack, the following would work:
- vector containing the waveform(s) of the desired sound (e.g. download one from the internet, record one yourself, etc)
- MATLAB R2015a is recommended, but not necessary: because Task Programs are run at 4 kHz for R2015a and later, vs 2 kHz for R2013a and prior, using R2015a doubles the frequency range of sounds that are reproduceable
How to use this task:
- process the desired sound using the attached processWaveformForKINARM.m
- please read the comments in the code for how to do use this script
- a sample waveform of a piano keyboard is included
- connect your speaker(s) to the analog output(s) and turn the speakers on
- the sample code in this example uses a single analog output (DAC0OUT) of a PCI-6229 card
- Note: if you have a different analog output card, you will need to modify the task to use the Simulink block corresponding to your card
- build the task and run it
- during the build process, the sound waveform becomes embedded in the sample code. So if a different waveform is required, the Task Program will have to be re-built.
The task was last tested for Dexterit-E 3.10 and MATLAB 2015a SP1, 18-Aug-23.