Build ADC Core Audio Compliant USB or Firewire - audio

I'm looking for documentation on how to build an ADC Core Audio compliant to connect to a mac USB or Firewire. All I've been finding is info on how to deal with Core audio on programing the computer side.
I need info on how to make audio hardware Core Audio compliant.
Can anyone send me the right direction?

This a nice solution. It does all the hard work for you. If you have even basic hardware engineering experience this should get you on your way. This chip will work great. Very few external components needed.
http://www.silabs.com/products/interface/usbtouart/Pages/usb-to-i2s-digital-audio-bridge.aspx

Related

Controlling a driverless USB Audio Device

I have a USB audio device (Scarlett Focusrite 18i6) which does not require a driver, so I assume it uses the USB HID Audio Class standard.
It works on everything from Windows and Mac to Linux and iOS.
But on Mac and Windows, it has a control application which can for instance enable and disable direct monitoring.
How would I go about reverse-engineering how this is done, so that I can reproduce it on platforms where the control application does not exist?
I'm thinking of booting up Windows in a VMWare session and then logging the USB communication (somehow?) while using the control application, but it does sound tedious considering the amount of data and my very limited understanding of USB.
Any other suggestions?
You could try running the control application using Wine instead of reverse engineering it. However, if it's accessing USB devices then there is a good chance it might be using an API not supported by Wine.
To reverse engineer it, you should find a way to look at the USB traffic between the computer and the device. Total Phase has some hardware USB protocol analyzers, but you might be able to find a good software solution for free.

Module audio bluetooth (iOS and Android)

I'm working on university project that consists in audio speaker with bluetooth connected to mobile application.
I search a lot possibilities and bluetooth modules that comply my needs, but I have not found any module. I need a Bluetooth module that can receive audio and work in iOS and Android, but I see that a lot of modules with Classic Bluetooth (lowe than 3.0) do not work with iOS, but 3.0 and 4.0 version works with both but are not oriented in audio.
I'm looking for if someone can help me finding one kit with audio receive bluetooth for all plataforms intended for speaker and cheap. Or separately one bluetooth module receiver with 3.0 or upper version (because works in iOS), intended for audio streaming to an speaker, and with some UART pins (tx/rx for example) that can simplify the connection with a microcontroller. And one basic microcontroller oriented to bluetooth receives (with some bluetooth libraries) or simply to program with upp-level language. This microcontroller just receive the audio (bits) and send it to the speaker.
I read too that Smart Bluetooth or Bluetooth Low Energy works on iOS, but can't send audio, have small rate, but i think Smart Ready Bluetooth its possible, but not sure, I have just seen that supports Classic Bluetooth (oriented to audio) and Bluetooth Low Energy, it's possible sens audio with it?
In short, I'm looking for one module Bluetooth 3.o or 4.0 + EDR (that can send audio) for iOS and Android. I find HC05, CC2506X, or HC06 module, but I have read not works in iOS. And a basic microcontroller simply to program to receive this bluetooth audio to send in a speaker.
If someone know one basic kit, or useful information for me I would appreciate.
Thanks.
There is a bluetooth module BC127. it is available at Sparkfun. It dual mode. Means It can work as source and sink both.
Source means, It can Transmit Audio
Sink means, It can receive Audio
Here is link for https://learn.sparkfun.com/tutorials/understanding-the-bc127-bluetooth-module
Any Bluetooth module that acts as an A2DP Sink should work with both iOS and Android.
The specific Bluetooth version that the module implements is not important (as long as it's higher than 2.1), but it needs to be an A2DP Sink (which is only possible over classic Bluetooth)

Sending audio to a bluetooth enabled speaker, IOS

I want to add a function to my App, where the user can choose to play the audio on a bluetooth enabled speaker. I have a Parrot Easydrive in my car and this works for phonecalls and for example the Dictafoon App among others.
I understand that I should use the Core Audio framework. WHen a bluetooth device is connected it is said that it is easy to stream the audio to that connection. I am now looking for Core Audio sample code (or a book) where connecting and streaming to a bluetooth device with Core Audio is explained.
Can anyone shed a light on this? If there is another framework or sample code which I can use please mention it!
Many thanks in advance!
You don't write any specific Core Audio code, it is the same process as is used to play audio via AirPlay.
Basically you put a MPVolumeView into your UI, and the underlying framework will redirect your audio output for you. Once you implement this you will be able to use Bluetooth and any AirPlay enabled device with your app.

Audio / Camera Driver - FriendlyARM Mini2440 - s3c2440

I am a newbie to embedded linux and am keen on learning to write device drivers. I have got a FriendlyARM Mini2440 board with me.
Please suggest which device driver would be easier to start learning - Audio or Camera or something else?
Need suggestions from experts.
Thanks a lot!
Between those 2, I would say that a camera driver would be simpler. Audio drivers in Linux are more complex than most other drivers, and there seems to not be very much documentation on writing them.
Have you read Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman? That is probably the best way to start.
I'd recommend starting with serial, flash, or ethernet drivers, in that order. Those are common, the code is straightforward, and there's good documentation and examples for them.

Low level audio programming

I wonder; does audio software like Cubase and Audacity use PlaySound calls??
Where can I learn about low level audio programming? As far as I've found information on the web, MCI seems to be the lowest level audio API in Windows...
Thanks
Edit: I don't ask for information specific for Windows only.
There's several audio APIs to choose from. The oldest and most widely supported is the waveOut API - look for functions starting with waveOut in MSDN. A slightly newer one is DirectSound which is geared more towards games, but it's main feature over waveOut is positional 3D sound which professional audio software doesn't use (it was also supposed to have lower latency than waveOut, but that never really materialized). For low latency audio, there is ASIO. Professional audio apps support this API, but not all drivers do (it's a standard feature in professional sound cards, but not gaming or on-board hardware). ASIO can provide much lower latency than waveOut or DirectSound. Finally, there's the kernel streaming interface, which is the lowest-level audio interface still accessible from user-mode code. This is a direct pipe into Windows's internal mixer which combines output from all apps that are currently playing sound into the signal that gets sent to the sound card. It's scarcely documented though. There's a driver called ASIO4ALL (just google it) that provides ASIO support on soundcards without ASIO drivers by implementing the ASIO API on top of the kernel streaming interface.
I'm a little late to the game here, but I posted a Windows API history last week that might add a little more context. The choice of API really depends on your needs. If you want to avoid 3rd party libraries, it really only comes down to MME, XAudio2, and Core Audio (WASAPI).
A Brief History of Windows Audio APIs
Hope this helps!
Actually, if you are looking for more than Windows-only output support, then the best way to start is to review Phil Burk's PortAudio, available as of this writing at http://www.portaudio.com/ .
ASIO is a good quality interface, but it's proprietary and owned by Steinberg.
There are many lower-level interfaces to audio output than MCI in modern Windows. These include, at least, DirectSound, XAudio and WASAPI.
I recommend avoiding the Windows APIs as much as possible, and learning PortAudio instead.

Resources