Close
0%
0%

Multichannel Audio DSP Field Mixer Recorder

USBmidi, bluetooth app controll 8 chan portable DSP mixer.balanced audio IO,phantom power,flexible routing,ISO recording. networked Timecode

Public Chat
Similar projects worth following
Multichannel 8 channel + Professional Field RecorderDSP mix routing and FX.Backpackable!100% app controlled.1 page website for app and firmware updates ( eventually )http://www.bbbox.co.uk/

new analogue board with isolated digi opto power switching for the preamps.

8 balanced 10 - 65db smaller preamp cards on 1.27mm headers ( phantom power and 0db line level ) 

4 transformer less balanced line drivers cards

2 x very high quality headphone cards.

preamp front end limiters

Voltage dividers + reference for +/- rail power protection

room for another IO card on digi board for AES3 or DANTE possibly?

Individual Timecode IO on BNC

2 x stereo headphones on separate mix bus

new mock up case with Digi Side off

new case with analogue side off showing 1 x preamp card 1 x HP card and 2 line driver cards installed 

NEW ARM DSP DIGI BOARD , dual uSD cards :) 1" OLED for debugging.

Its Alive !!! here's the 1st test recording for historic reasons :) 

https://soundcloud.com/benbiles/bbbox-proto1-recording-48khz16bitwav

here's a realtime audio meter input demo.

We have full wav poly recordings of different channel count working.

Playback currently only 2 channel but will work on playback of the 2 channel

mix embedded in the wav poly.

The bluetooth App does a lot more now also ! FX compressors LP HP filters etc.

Timecode to be added soon.

_______________________________________________________________

The very beginning learning what the SPI and I2C bus actually was !! :):)

  • 1 × ADAU1467 Semiconductors and Integrated Circuits / Misc. Semiconductors and Integrated Circuits
  • 1 × ARM STM32F7
  • 1 × Fan out Buffer
  • 1 × 24.576mhz oscilator
  • 1 × CS4385 Audio ICs / Audio Digital to Analog Converters (DACs)

View all 9 components

  • AVB on gigabit ethernet , USB2 ( on usbC socket ) multichannel IO, AES3 switched into mini xlr inputs outputs

    ben biles6 days ago 0 comments

    new digi board with board to board connector to analogue board

    B2B connector has enough high for RF shield

    XMOS chip added for AVB,USB2 & AES3

    AVB on gigabit ethernet

    USB2 ( on usbC socket )  multichannel connectivity for osx and pc

    AES3 IO switched into analouge mini xlr inputs outputs ( 8 channel in 4 channel out ) switching happens on analogue board ( room for 16 channel AES3 expansion ) 

    individual analouge preamp channel pwr switching(individual CS lines run to run to preamps)

    codec IC for mini jack IO timecode or other possible uses. 

    battery backup for TXCO and ARM timecode

    Upgraded STM32F7 to H7 for 3 SAI ports to include CODEC IO for timecode IO

    RF modules for TC RX digital audio or Timecode or both ?

    2ppm TXCO clock for Timecode IO on individual codec connected to ARM via SAI port

  • XMOS AVB being added

    ben biles04/04/2020 at 12:07 0 comments

    I tried to order an xilinx FPGA dev board and thought of implementing DANTE on that but it seams DANTE is more corporate development and big budget. Fair enough.

    So now i'm adding an xcore-200 for AVB 1 gigabit ethernet audio IO.

    I found the IC quite difficult to route and i'm not entirely convinsed I can get more than 8 channel in and 8 out over single TDM data lines. I only have 1 in and 1 out left on the ADAU1467 DSP. 

    but , 8 in 8 out and possible 16 in 16 out on ethernet is OK !!!!

    I might be able to throw in some AES3 IO to from the same chip if I get good at using there IDE.

    I'm hoping to be able to power off the XCORE-200 if no ethernet or AES3 is in use to for power saving. I think it will probebly use 1amp at 3.3v when all the channels are up ! 

  • 15mm x 17mm 3.3v 1.8amp max module

    ben biles03/11/2020 at 05:52 1 comment

    15 x 17mm6v to 20v input3.3v output 1.8A

  • into the square box :)

    ben biles01/28/2020 at 06:07 0 comments

    Hers the Digi side of the new box with the panel off.

    Its ABS plastic ( mock up only ! ) if everything fits in properly and I learn how to draw a CAD box ( currently learning the free software Design Spark by RS ) I will get an aluminium version of the same thing made. This case is not water proof so I need to learn how to make a channel for a rubber compression gasket I think.

    The ADC DAC card 1 is at right angles now and there is plenty of room at the back although nothing holding it all in place at that side. I think the EMI shield could extend outward in the final design to be a kind of mounting bracket for PCB's to box! I might mount the 1" OLED somewhere on the box just for debugging.

    The timecode IO is on massive BNC connectors. separate for in / out. This is mainly because there are so many annoying timecode cables these days that are impossible to repair in the field I though it better to keep that simple.  The mini XLR are just part of the design trade off with size, there's just no way I will get another 8 connectors on there if I used full size XLR and i decided break out D socket to XLR's are annoying if your only using a few channels of audio.

    I'm thinking there will be 16 channels of AES3 mini xlr on the rear side of the case since that's were the 2nd TDM IO port is on the digi board.

    There should be enough room for 12v of lithium iron internal battery above the 1" OLED in this pic. I did put a 4 pin power hirose connector on the box since I'm not sure where it should go yet. maybe by the timecode sockets.

    It reminds me of a little mac mini ! This is the analogue side, the big ugly 40pin IDE

    cable will go ! its just bridging the ADC DAC IO and power. By luck they line up pretty well when the ADC DAC card is at 90 degrees. I just need some right angle double row headers and the card will just plug right in :)

    I only have one preamp plugged in and I have only made 4 of the new deisgn so far! 

    I only have one in there mainly in case I dangle a oscilloscope crocodile connector and short some 48v phantom and blow all the cards ! I do cover the phantom power via's and anything exposed with tape or glue after learning why they call it phantom! Yep it happened to 4 cards a year or so ago !  

    Now there's 2 x line drivers in there and 1 headphone card. Its enough for most testing. I'll probebly put the programmer in the box and add a usb port to the case. Just easier than dangling an external programmer if I want to take the thing with me to the park and work on some code.

  • New box

    ben biles01/26/2020 at 12:14 0 comments

    If I bend the ADC DAC card to it aims downward, this should fit!!

  • 2mm aluminium sheet for emi shielding. Not connected to either digi ground plane or analogue.. Should it be?

    ben biles01/20/2020 at 14:41 0 comments

    Aluminium emi between digi and analogue board

  • Field recorder gets shrunk down into a small box.

    ben biles01/18/2020 at 08:49 0 comments

    Making the field recorder into a small square box 15x15x7cm

    The plan here is to mount the DSP digi card and analouge main board to

    a 2mm 10x10cm sheet of aluminium which will hopefully shield the EMI from

    digi board to analogue board ( preamps )

  • Clear demo case, mini xlr IO with 2 x 1/4" headphone jacks

    ben biles01/09/2020 at 03:58 0 comments

    Perspex demo case with mini xlr IO and 2 x headphone 1/4 inch jacks

  • out of the old box without a new box to move into

    ben biles12/30/2019 at 14:52 0 comments

    ok finally have enough bits to get the new analogue board running without a box for it !

    I'm tempted to just buy some aluminium sheet and just make the prototype box ! I watched some interesting videos of people using brazing rods to weld aluminium with a gas torch. If not aluminium maybe just some acrylic sheet and epoxy glue 

    1/ The headphone sockets should be on the underside of the the connector board to allow more clearance with the miniXLR sockets and to fit into the corner of the box better.

    2/ The ADC - DAC card should be flush with the top of analogue and Digi boards allowing the power and SD cards to be flush with the edge of the box. Also digi board is not level with analogue board!

    3/ power back plane could do with shifting all the pwr cards left 2 cm's

    4/ the SPI lines for preamp gain control will be 16cm from digi board ! a bit far !!

    5/ I should put the V sense dividers and reference on the power backplane. Just thought of that as I type this !

    6/ dump OLED screen and use that area for 12v to 3.3v 1amp DC-DC rather than steeling 5V power from the analouge pwr board.

    7/ where to put the isolated 9v - 18v 12v regulator and do I include a charger for maybe 4 or 8 x 18650 3.7v Battery's ?

  • new analogue board

    ben biles12/29/2019 at 09:12 0 comments

    here's a pic of the new analogue board.

    It has optical isolated power switching for preamp channels

    Also has +/-5 and +-10v power monitoring with reference 3.3v using

    resistor dividers.

    It all looks bigger than it will be when its soldered together without

    headers as connectors !

    the power backplane on the right will probebly get smaller.

    It will have 8 analogue differential channels in and 4 out.

    2 high quality stereo headphone drivers

    and timecode IO.

    The ADC DAC board at the back will bridge over directly to the digital

    board.

View all 79 project logs

  • 1
    Step 1

    THESE ARE OLD INSTRUCTIONS FOR AN 

    ARDUINO / NOVATION LanchControl midi knob controller that I found useful earlier on in the development of this mixer. I could control the ADC and DAC chips via midi / usb with the arduino and it helped me learn about I2C SPI UART bus etc

    Instructions to hook up an arduino to Novation LaunchControl and get midi messages into your arduino.

    you will need

    1 x LaunchControl
    1 x Arduino UNO R3
    1 x USBhost shield v2
    1 x USB hub with enough power to power the LaunchControl
    relevant usb cables

    1/ connect the USBhost shield to the Arduino UNO R3

    I found these 2 but there are others to
    https://www.circuitsathome.com/products-page/arduino-shields/usb-host-sh...
    https://www.sparkfun.com/products/9947

    2/ download each zip folder from the 2 librarys linked below on GitHub
    uncompress each zip file and put each individual folder with contents
    into the Arduino IDE Library folder.

    the required USBhost version 2.0 library
    https://github.com/felis/USB_Host_Shield_2.0

    the required USBH_midi library by Yuuichi
    https://github.com/YuuichiAkagawa/USBH_MIDI

    3/ Download my Arduino project file below.
    http://www.benbiles.com/sites/default/files/LAUNCHcontrolBB_0.ino

    4/ compile / upload to Arduino UNO with Arduino IDE.

    5/ connect all usb leads making sure you have the usb hub between the arduino and the LaunchControl

    6 /open serial console in arduino IDE and set the baudrate to 115200

    press keys and turn knobs on the LaunchControl and you should see the relevent midi values 0-127 for faders

    EDIT THE CODE AND GET THE NUMBERS TO DO THINGS FROM THE ARDUINO :) !!!!

    comment below if you got this working or NOT ?

    I'll make a video of this working soon and post it here..

    I'm sure most types of Arduino will work as long as it supports the host shield but I have only tested arduino UNO as of yet..

    upload:

    LAUNCHcontrolBB.ino

    As of now the codec is noisey since I should have seperate ground planes from analouge / digital .. I'm not bothered with noise for now since I'm upgrading to an 8 channel DAC so I can mix 8 channels. the AIC3101 codec wa just a test to see how well the USBhost - midi cointroler would work..

    I remaped the numbers from the other way around since the codec volume was in reverse!

    mute was 127 and 0 was full volume 0db in the I2C register programming of the codec. so this arduino instruction helped me out..

    = map(volume1, 0, 127, 127, 0);

    not sure remaped is the correct description for map function in arduino code.. anway , it might be useful if you want to reverse the values of the faders etc.

    I used a midi dump example to find the values of each midi knob etc.. its in the examples that come with the midi usb library.

    here is the arduino code for controling the TI AIC3101 audio codec. Its setup to output incoming audio from I2S to Left and Right Line output.

    knob 1 & 2 contol L&R volume level output of codec

    https://github.com/benbiles/novation_launchcontrol_usbmidi_arduino/blob/master/AIC3101_codec_control

    I now have the 8 channel DAC CS4385 hooked and working , code available on github.

View all instructions

Enjoy this project?

Share

Discussions

jackiredale wrote 03/23/2019 at 01:08 point

This project is amazing , I would love to have a go at making one myself , are you going to sell diy kits or the pcbs ?

  Are you sure? yes | no

ben biles wrote 04/08/2019 at 17:22 point

Hi jackiredale, sorry for the late reply. 

I was thinking of selling the 4 layer digital main board and ADC-DAC card modules with the firmware / android app already populated later when I've properly got everything working and tested. I don't really want to sell a board with problems :) so far I only found one error and there was an easy work around on this revision of the 4 layer digi main board but there are loads of gremlins on the other 10 or so module boards!

I am also working towards a final bluetooth only field recorder in a waterproof box that I want to give away to sound recordist friends that work in TV film etc. Idea being they could help me fine tune the thing and eventually get some kind of useful thing to sell ! no idea of the channel count or anything yet until I get the timecode / realtime metering working on the app. I got the test tone and test sweep 20hz -> 20khz working today :) pretty cool !

The sound quality is awsome from the preamps / headphone combination. better than my sound devices mixer. One thing though. I'm not using differential op amp buffer between ADC and PGA2500's ( just Panasonic FC DC blocking caps as in datasheet ) but this might not suite other preamp designs. usually you would have the op amp buffer to protect you ADC inputs from DC bias. So that might be annoying for people that want to add there own analogue hardware. 

on a plus side the ADC/DAC cards have split ground plane and there is really no noise coming across into the analogue from digital which I'm really happy about.

If I sell the mainboards I suppose I'll just do that here though hackaday but no idea how that works :)

have you seen this site ? http://www.freedsp.cc/ I think they have some pretty cool DSP boards that are open source and one that works with rasbery pi ? that might also work as an audio recorder although i'm not sure.

  Are you sure? yes | no

Ulysse wrote 04/22/2017 at 16:16 point

I like. Of course. Music !

  Are you sure? yes | no

Craig Hissett wrote 04/22/2017 at 15:56 point

This is great matey!

  Are you sure? yes | no

Yann Guidon / YGDES wrote 04/22/2017 at 13:38 point

Impressive development !

  Are you sure? yes | no

Francesco wrote 02/21/2017 at 13:44 point

Hi Ben, i have a question for you. I'm working on a similar project, taking a lot of inspiration from yours. You say you're controlling the ADAU1446 with arduino via i2c. I didn't find any specification about it, the datasheet only says "program it with sigmastudio" without giving any information about i2c via an external controller. Did you found some more information? Or do you have any tip for me, how to do it?

Many, many thanks... and again, your project is awesome!

Francesco

  Are you sure? yes | no

ben biles wrote 02/21/2017 at 14:09 point

https://ez.analog.com/servlet/JiveServlet/download/1806-3-5949/SigmaStudio Basic uC Integration Tutorial.pdf

You create files from sigmastudio when you have made your design. you need to add macros to SigmaStudioFW.h so that that the code can write / read to I2C depending on the platform you are using. So in arduino that would be  Wire.beginTransmission(44); // transmit to device #44 (0x2c)// device address is specified in datasheet
  
  Wire.write(val);             // sends value byte

  Wire.endTransmission();     // stop transmitting

sorry , I have no idea how hackaday does the formating , if I try and paste code into this box I get some rediculas things happening including user names poping up ?

I switched to intel edison recently and so I'm adding mraa I2C macros to SigmaStudioFW.h now since I need a micro that can record / playback TDM 8 channel audio. I could not find any way to record high quality multichannel audio in arduino. Not to say there is'nt a way. everyone points to teensy but I am interested in 24bit 96khz 8 channel audio etc..In fact I never added the macros for arduino athough I did get arduino & bluetooth controlling the preamp with SPI and of course controlled the DSP basic initialize power on to get the board working with I2C. I had some confussion with I2C in the begining but it turned out to be a faulty board ( heat damaged by myself ) . I have the board working in selfboot mode also now with eprom :)

  Are you sure? yes | no

ben biles wrote 02/21/2017 at 14:12 point

Also I don't see your project on hackaday , can I take a look anywhere ? sounds cool ! what ADC / DAC 's are you using ? 

  Are you sure? yes | no

Francesco wrote 02/21/2017 at 22:50 point

First of all, many many thanks for your answer, that's exactly what i was looking for and i simply missed it. Now everything is much more clear for me :)

My project is very similar to yours, i'm not interested in recording but in general my goal is to build a digital audio mixer. At the moment, it's only theoretical, i'm waiting for the components i ordered some weeks ago from china. My choices are an ADAU1442 (pretty much the same as your 1446) and your same ADC/DAC. I was interested in 8 ch TDM converters and this two are the most common. For example, the "behringher x32" mixer uses those converters as well, they are perfect for the purpose. But I use self puilt preamps, from old projects of analog mixers.
My project is different from yours because i will use rotary encoders, motorized faders, screens and so on.... like i said, the intention is to build my own digital mixing consolle. 
When i'll begin to build things i will create a project page somewhere :) Maybe i will find something usefull to you too :D
Again, thanks for your advices and your help! Will keep you updated.
- Francesco

  Are you sure? yes | no

ben biles wrote 02/21/2017 at 23:28 point

interesting to know behringher x32 uses the same convertors. I would say that if your going for the highest dynamic range possible there are better ADC's. but I think you would need to use more chips and expense goes up dramitically. I also got my chips from china and managed to keep the cost down a bit. You will need to buffer your preamps with opamps to remove the 2.5v bias on the ADC or use AC coupling capacitors to remove ADC DC bias. There is an APP note from cirrus logic with 50khz corner freqnency filter and DC bias removal. I'm using PGA2500 so had to use AC coupling caps for increased dynamic range. PGA2500 only +-5v swing. anyway , if you get stuck your welcome to ask questions here. the shared clock and fanout buffer is working well for me. keep the clock line traces short and try to keep them equal leaghth. use split ground planes to sepperate analouge and digital ground return paths. I'm using I2C logic level translator as isolator to help keep noise away from preamp / analouge parts of the board. you could quite easily add 2 or more CS5386 ADC's by setting unique I2C addresses. ADAU1442 has 8 stereo asynchronous sample rate converters where the ADAU1446 does not. I did'nt need sample rate convertion and the adau1446 uses less power. same pinouts so you can change between them I think. I put ground pad on the pcb in case i wanted to use ADAU1442. I bought the cirrus logic programmer but I think there is a cheaper one out there.. might be an idea to build the programmer into your board? that way you could just plug your desk into sigmastudio and do realtime DSP from there software also. or just makes it look tidy. 

  Are you sure? yes | no

Francesco wrote 02/22/2017 at 08:48 point

Cirrus logic programmer? you meant the analog devices one, right? I'm building the freeusbi programmer designed by freedsp.cc, total cost is about 6$ so it's much, much cheaper. I'm really trying to keep the cost as low as possible. Build the programmer into the board? Yes, it's one of my goals, it would be a very good thing.

I will for sure follow your advices about the wiring, at the moment de "pcb design" part is far away, i will first try things in some "breadbord version". At the moment one  of my biggest concerns (like yours, i read) is if i will be able to solder the ICs, i'm not an expert with that kind of "small" soldering. Hopefully.......

  Are you sure? yes | no

ben biles wrote 02/22/2017 at 14:02 point

wooops !!! yer , I should say usbi programmer ! only 6$ thats pretty cool .. I'll build the programmer into my next board I think. I first used ic adapter boards to test things out , but to be honest I think you might be better just going for it and drawing a pcb. even if you make a mistake on the pcb you could run a bodge wire or 5 !! I managed to fit ADC DAC and DSP on one 10cm x 10cm board and when I drew that board I did'nt even know how to make ground planes !! just a 4 layer board routed badly and it works really well. 

you can get the ADC DAC and DSP working on adpater boards / bread boards, sort of. but it will be noisey and will probebly crash quite a bit. decoupling caps will be far away from pins on chip, ground plane will probebly be shared with digital etc.. you can download the Eval board guides for each IC and take a look at there schematics to get the idea of how to make the board.

I should'nt advise you to use naked DAC audio pins without buffering IC's, but I have to say I just hooked them up to my powered speekers for testing directly.. use some large 47uf 60WV electro AC coupling capacitors though if your going to do that since there is 2.5v bias ! don't blame me if you blow the IC's doing that also ;)

I found the ADC more tricky to get working than the DAC. theres a few traps in there , so ask me questions if you get stuck !! also I'm sure I could get ideas from your project to ! so would be great if you document it somewhere !

  Are you sure? yes | no

ben biles wrote 06/05/2017 at 11:20 point

Hi Francesco , could you ask me the question about the DAC buffer stage again here? sorry , I tried looking for your comment somewhere in the logs and couldn't find it. In the mean time the output bias of the DAC is 2.5v which is incorrectly labeled VQ? instead of the normal Vcom ! you can AC couple the outputs to your buffer line driver or use an opamp.  you can bias the OpAamp inputs so that the audio swings around the 2.5v on the buffer input and outputs the audio swinging around 0v, essentially removing the bias and protecting you DAC from unwanted current etc

I'm using a OPA1632 balanced op-amp which outputs the differential channel swinging around 0v to an audio line driver. you could just use AC caps maybe but you can add some filtering to the DAC output if you need it with an opamp. I'm running the DAC at 24.576mhz rather 12.288mhz so filtering is'nt really necessary as far as I can tell but I thought its good protection for the DAC since no nasty current can pass through the OpAmp. Personally if I did the design again I would go for a more basic OpAmp package that the OPA1632. something like the OPA4134 that I'm using on my headphone drivers as the buffer now maybe. Anyway , I'm no expert at opAmps but will try answer your question if you post it here..  I got My ADC DSP and DAC all working together really nicely with an ARM micro. started working on multi-channel recording and playback over 8 chnannel TDM. Looking hopeful :)

  Are you sure? yes | no

Francesco wrote 06/05/2017 at 16:07 point

Hi Ben! Yesterday i wrote the comment, then had dinner, came back to pc and... "oh, that's how it works, what a stupid question" :D I figured out the answer, I only had some issues understanding the datasheet. Of course it works like you are saying here!! You didn't reply yet, the question was usefull, i simply removed the comment, that's why you can't find it :P

Let me use this comment to congrat again... This project looks amazing to me, I check this page almost everyday hoping for news. Can not wait to see how well this works once finished :D

P.S. I decided to follow your suggestion and go directly with pcbs... as you know, now seeedstudio offers 10pcbs 10x10 cm for less than 5$... it's not worth it to do tests via breadbords :D At the moment I have almost the whole project designed, only some parts already printed, thanks to your advices it works like a charm :)

  Are you sure? yes | no

ben biles wrote 06/05/2017 at 17:53 point

OK  ,  good to know your not wasting time with to much soldering :) take your time checking the circuits before you order boards. I usually leave it a day and check over again before ordering. I put a new pic up in the log of my 1st test backplane.. its only 4 channel. I'll make the final one and 8 channel :)  

  Are you sure? yes | no

john.loftus wrote 08/03/2015 at 09:24 point

Thanks Ben. Glad you like it. We have a programmers reference guide here that may help with the LEDs http://d19ulaff0trnck.cloudfront.net/sites/default/files/novation/downloads/6958/launch-control-programmers-reference-guide.pdf

  Are you sure? yes | no

ben biles wrote 08/03/2015 at 09:34 point

amazing thanks!  looks like all the info is there!  I Will code in some lights on / off after my holiday,  off to see if I can stand on a surf board for more than 3 seconds in hawaii without midi assistance :) 

  Are you sure? yes | no

john.loftus wrote 08/03/2015 at 09:36 point

Lucky guy. That sounds like paradise.  Have fun.

Let me know how this project develops.

  Are you sure? yes | no

john.loftus wrote 08/03/2015 at 08:18 point

Cool project Ben. We like seeing new uses for Launch Control.

Launch Control XL can also be used 'standalone' as shown below (no Arduino required)

  Are you sure? yes | no

ben biles wrote 08/03/2015 at 09:16 point

great!  Did'nt know you could get usbmidi - midi boxes!  Just did a search and found midi - dmx controllers too for lighting! Awesome :)

Love the way 80's simple solid midi hardware lives on!
Going to try and trigger the lights on the launch control next when you press the buttons.. Any idea where I download the midi map to trigger the lights?  
Oh, also love your use of the phone charger to power the launch control XL :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates