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 Professional Balanced Audio IO and Digital 196khz 24bit Field Recorder fully, waterproof & Backpackable!

It will include balanced audio IO on XLR and miniXLR with phantom power.
flexible routing from 8 or more pre-amp inputs
Digital Audio IO

4 channel Balanced Master outputs
2 x Stereo Headphone outputs ( individual mix bus )

The mixer will have no screen or knobs.
USB midi knob controller interface.
Bluetooth controlls preamp gains DSP fx mixing ( routing )

Record individual ISO tracks and mixed tracks.
VU / ppm meters of each track and mix on low power screen or glasses??
EPROM to store learned control suface maps / templates
GPS UTC time and LTC timecode share over wifi
SDR multichannel radio mic reciever and uplink to cameras.

List of things that will hopefully never be included !

Complex menu system / screen for operation
extra weight.

Things are progressing , i've moved on to using cards now on a back plane.

these pictures should speak for themselves :)

rev 1


messy box of wires !

rev 1power use for 6 channels , don't forget its +/5v so double this figure

8 channel differntial analogue IO

16 digital audio channel serial I2S TDM IO

ADC - DSP - DAC

8 channel digitally controlled Pre Amp with Phantom power

2 x high end headphone monitoring outputs on individual mix bus.

DSP mixing, mix routing and soft knee compression filters EQ filters and effects etc.

All pre and post mix faders controlled over Arduino USB midi and blutooth app.

Shared Master clock over fanout buffer ( low jitter )

Its working :)

To be Done:

Multi channel audio recording on Arduino Due from I2S / DSD or TDM from DSP.

Timecode IO ports to the Arduino Due codec ( still to be working in my other Timecode project.

External Bluetooth controlled app and Glasses integration. ( This mixer will not have a screen )

Testing here the 4 channel digital controlled preamp pcb with Arduino USB midi control.

Also Testing of:

8 channel DAC controlled with the Novation Lauch Control USBmidi control surface.

code is here https://github.com/benbiles/usbmidi_multichannel_audio_mixer/blob/master/USBmidi_control_CS4385_DAC

I used the example software controled wiring diagram in the CS4385 datasheet and the DAC is very quiet adter boot. I need to figure out mutec pins etc ..

I use digital PIN 2 on arduino to make RST pin high to initialize the DAC.

the DAC takes the 5v from arduino or 3.3v from DUE etc just supply correct voltage to digital interface power on DAC.

I used these libraryss for USBhost and USBmidi.

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

  • 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

  • C++ STM32f7 audio recorder application demo code

    ben biles05/11/2018 at 14:31 0 comments

    I started to modify ARM stm32f7 demo audio recorder / playback application.

    I'm going to connect TDM8 channels to the SAI on the ARM demo board.

    The demo code is horrible for me. its a forest of board support packages BSP's and HAL's. I'm sure in a way its over complicating the basic idea that the SAI stream will be copied using DMA to the circular buffer. then when the buffer is half full the data is written to the USB stick ?! 

    I'm thinking there does't need to be any timing as the data is just dumped onto the stick as a file as it comes in. I'm hoping there is a way to append data to the file on the stick rather than determining the audio record time as in the demo!

    /*------------------------------------------------------------------------------
                              USER SAI defines parameters
     -----------------------------------------------------------------------------*/
    /** CODEC_AudioFrame_SLOT_TDMMode In W8994 codec the Audio frame contains 4 slots : TDM Mode
      * TDM format :
      * +------------------|------------------|--------------------|-------------------+ 
      * | CODEC_SLOT0 Left | CODEC_SLOT1 Left | CODEC_SLOT0 Right  | CODEC_SLOT1 Right |
      * +------------------------------------------------------------------------------+
      */
    /* To have 2 separate audio stream in Both headphone and speaker the 4 slot must be activated */
    #define CODEC_AUDIOFRAME_SLOT_0123                   SAI_SLOTACTIVE_0 | SAI_SLOTACTIVE_1 | SAI_SLOTACTIVE_2 | SAI_SLOTACTIVE_3
    /* To have an audio stream in headphone only SAI Slot 0 and Slot 2 must be activated */ 
    #define CODEC_AUDIOFRAME_SLOT_02                     SAI_SLOTACTIVE_0 | SAI_SLOTACTIVE_2 
    /* To have an audio stream in speaker only SAI Slot 1 and Slot 3 must be activated */ 
    #define CODEC_AUDIOFRAME_SLOT_13                     SAI_SLOTACTIVE_1 | SAI_SLOTACTIVE_3
    
                                                           
    /////////    ben tries to add arduino header SAI1_Block_B , no idea if this will work !
    /////////    arduino header example I found used same defines as the onboard DAC
    
    //configure SAI1 for Arduino header
    
    #define AUDIO_OUT_SAIx                           SAI1_Block_A
    #define AUDIO_OUT_SAIx_CLK_ENABLE()              __HAL_RCC_SAI1_CLK_ENABLE()
    #define AUDIO_OUT_SAIx_CLK_DISABLE()             __HAL_RCC_SAI1_CLK_DISABLE()
    #define AUDIO_OUT_SAIx_AF                        GPIO_AF6_SAI1
    #define AUDIO_OUT_SAIx_MCLK_ENABLE()             __HAL_RCC_GPIOF_CLK_ENABLE()
    #define AUDIO_OUT_SAIx_MCLK_GPIO_PORT            GPIOF
    #define AUDIO_OUT_SAIx_MCLK_PIN                  GPIO_PIN_7 //PF7  MCLK
    #define AUDIO_OUT_SAIx_SD_FS_CLK_ENABLE()        __HAL_RCC_GPIOF_CLK_ENABLE()
    #define AUDIO_OUT_SAIx_SD_FS_SCK_GPIO_PORT       GPIOF
    #define AUDIO_OUT_SAIx_FS_PIN                    GPIO_PIN_9 //  PF9  LRCK
    #define AUDIO_OUT_SAIx_SCK_PIN                   GPIO_PIN_8  // PF8  BCK
    #define AUDIO_OUT_SAIx_SD_PIN                    GPIO_PIN_6  // PF6  DATA
    
    /* SAI DMA Stream definitions */
    #define AUDIO_OUT_SAIx_DMAx_CLK_ENABLE()         __HAL_RCC_DMA2_CLK_ENABLE()
    #define AUDIO_OUT_SAIx_DMAx_STREAM               DMA2_Stream1
    #define AUDIO_OUT_SAIx_DMAx_CHANNEL              DMA_CHANNEL_0
    #define AUDIO_OUT_SAIx_DMAx_IRQ                  DMA2_Stream1_IRQn
    #define AUDIO_OUT_SAIx_DMAx_PERIPH_DATA_SIZE     DMA_PDATAALIGN_HALFWORD
    #define AUDIO_OUT_SAIx_DMAx_MEM_DATA_SIZE        DMA_MDATAALIGN_HALFWORD
    #define DMA_MAX_SZE                              0xFFFF
       
    #define AUDIO_OUT_SAIx_DMAx_IRQHandler           DMA2_Stream1_IRQHandler
    
    /* Select the interrupt preemption priority and subpriority for the DMA interrupt */
    #define AUDIO_OUT_IRQ_PREPRIO                    ((uint32_t)0x0E) 
    
    
    ///////  end ben tried to add SAI1_Block_A
    
    /*------------------------------------------------------------------------------
                            AUDIO IN CONFIGURATION
    ------------------------------------------------------------------------------*/
    
    /* SAI peripheral configuration defines */
    #define AUDIO_IN_SAIx                           SAI1_Block_B
    #define AUDIO_IN_SAIx_CLK_ENABLE()              __HAL_RCC_SAI1_CLK_ENABLE()
    #define AUDIO_IN_SAIx_CLK_DISABLE()             __HAL_RCC_SAI1_CLK_DISABLE()
    #define AUDIO_IN_SAIx_AF                        GPIO_AF6_SAI1
    #define AUDIO_IN_SAIx_SD_ENABLE()               __HAL_RCC_GPIOE_CLK_ENABLE()
    #define AUDIO_IN_SAIx_SD_GPIO_PORT              GPIOE
    #define AUDIO_IN_SAIx_SD_PIN                    GPIO_PIN_3
    #define AUDIO_IN_INT_GPIO_ENABLE()               __HAL_RCC_GPIOJ_CLK_ENABLE()
    #define AUDIO_IN_INT_GPIO_PORT                   GPIOJ
    #define AUDIO_IN_INT_GPIO_PIN                    GPIO_PIN_12
    #define...
    Read more »

  • backplane for prototype 1

    ben biles04/27/2018 at 17:21 0 comments

    The backplane is in and after adding 2 bodge wires ( had 2 serial traces the wrong away around ! ) it works

    The next version will have the upgraded ADAU1467 DSP and the design will be even more modular.
    the backplane will have an the STM32f7 and ADAU1467 and all other cards will be slotted in !
    Hopefully all the sockets will be PCB mounted to! I really want to loose this box full of wires and
    connectors :)

    This back-plane has 4 differential preamp channels and 4 differential transformer style outputs with 1 high quality

    headphone driver plugged in.

    The ADC DSP DAC 8 chan board is hidden under the ARM dev board and has a nest of jumper wires connecting up the I2C TDM audio UART Bluetooth 4.0 etc. the Bluetooth module is gaffer taped in there somewhere !

    It sounds very noise free and better than my sound devices 633 mixer ! BUT i'm not even going to compare them until

    revision 2 since these wires are all over the place :)

    Also if you read that far back rev 1 of the ADC DSP DAC still doesn't have ground planes since I did'nt know how to make them

    back then!

    I'm still working on the TDM8 ARM recorder/playback app and will post some test WAV poly files here when I get that working properly.

    top view

  • started routing the ARM DSP mixer recorder main board

    ben biles01/24/2018 at 03:02 0 comments

    I've started to route the main board. It doesn't seam impossible but I'm just hoping I can get away with 4 layers and not have to go to 6 layer. The jump in cost from 4 to 6 is a bit much !

    at the moment its 10cm x 6cm which is'nt to bad. No ADC or DAC buffers though and I'm starting to thing I should have included them on the main board rather than put them on the HP + PreAamp + LineDriver cards. The cost would have gone sky high though since the main board has to be 4 layer. All the other cards are 2 layer including the analouge back plane.

    Here's a pic of the routing progress with the ARM STM32F7 144pin MC and new DSP. I have never wired up an SD card socket to a micro and no idea what protocol I should use yet ?

    I'm thinking it will be 4 or 8bit SPI for speed? I'll get to learning that soon I suppose !

    still trying to decide if I should have the 3.3v LDO off this board ! probably a bad idea to leach off the analogue +5v rail ! 

  • New Main board being drawn up ! ADC DSP ARM DAC !

    ben biles01/20/2018 at 22:48 0 comments

    New Main board being drawn up ! ADC DSP ARM DAC !

    I will be using stm32f7xx to multichannel record/playback TDM8 to DSP

    I should be putting the ADC and DAC onto a daughter card so I can change the IC's later but NO , I've already started

    routing it now :) so far its about 10cm x 6cm and might be able to get smaller since i finally started using 0603 parts.

    I'm not sure it can get any smaller because of heat ! There is fair amount going on here :)

    Its a 4 layer board with partitioned ground analogue and digital ground plane.

    i'll be using a 40 pin IDE cable to hook up the analouge IO and 5v power to the Preamp and driver board.

    why ? because they are everywhere for free :)

    I'm not really convinced I should be running the 3.3v LDO for the digital stuff ( DSP and ARM ) off the analogue +5v rail !

    perhaps that could add noise to the analouge +5v rail on the preAmps ? anyone have any thoughts on that ?

    Will the LDO put noise onto its input ? can I isolate this without transformers? or should I really have a whole other

    channel to make the digital power?

  • POWER for ADC DSP ARM & DAC !

    ben biles01/20/2018 at 22:37 0 comments

    The new PGA2500's ADC and DAC meed plenty of clean +5v power !

    If I use the same +5v rail to power the DSP and ARM MC with some head room I think 4A would be safe

    I don't think I'll ever use more than 1amp neg 5v so that negative rail can stay the same with the TPS regulator.

    I'll have a 3.3v 2A LDO on the main board to power the digital stuff ( DSP and ARM )

    Amazingly the board got a lot smaller even though it can make 4A +5v from 7v - 25v or possibly higher.

    this was mainly down to the 4A capable TPS low noise regulator and the LMZ23605. Its not cheap! I'd love to know

    if anyone has a better Idea ? the LMZ23605 has an integrated inductor and so reduces footprint of the design although

    it is itself quite large ! 

    anyway , here is a pic of the layout , I think i will make this anyway to power my next main board.

    I'm not really convinced I should be running the 3.3v LDO for the digital stuff ( DSP and ARM ) off the analogue +5v rail !

    perhaps that could add noise to the analouge +5v rail on the preAmps ? anyone have any thoughts on that ?

    Will the LDO put noise onto its input ? can I isolate this without transformers? or should I really have a whole other

    channel to make the digital power?

  • mixer map in DSP :)

    ben biles09/04/2017 at 09:17 0 comments

    Its a bit simpler than this now , but its looks something like this !


    I had to use mutes for the mix matrix , but now I'm using single volume splitters like on the right hand side to attenuate based on channel count.

  • made up a 4 channel backplane

    ben biles06/05/2017 at 17:46 5 comments

    I made up this 4 channel back plane , wasn't worth playing around with veroboard, too much work ! you can see the digital sections ground plane partitioned from the analogue on the right side of this pic. I put the new power supply in a plastic case ! 48v phantom can damage things :) there was 2 small errors on the board but managed to cut a trace and bodge wire.

    This board is 4 preamp , 4 x balanced line driver and 2 x stereo headphone driver. I'll make an 8 channel version after I get the recorder app wired up and working .

  • Finally its working :)

    ben biles06/05/2017 at 11:32 0 comments

    at last !!! I have an 8 channel balanced audio DSP mixer !!!!!! wow its starting to sound really great !

    I have the Arm demo record playback audio app code running in the same application code and I'm just starting

    to wire up the SAI ports 4 slot 8 channel TDM to and from the DSP :)

    I have bluetooth control of the gains and volume controls in the DSP. Also generating test tone and tone sweep for testing.

    basically feed test tone sweep from output to input and then use an oscilloscope to check the pramps etc.

    A lot more work to do , PFL's routing matrix in the app. compressors and filters in the app from in the DSP.

    Looking forward to getting recording finished so I can add timecode. I might just use the onboard sound card on the STM32F769i for now to sync external timecode. Will have to see how acurate the RTC is in the ARM . might need a more accurate one.

    Need to make a demo video when I get time of the app and mixer in action !!

  • Balanced line drivers

    ben biles04/16/2017 at 11:32 0 comments

    ol got these balanced line drivers working really well. AC coupled so I can use them on any DAC I like.

    Sound very nice and good for +14dbu running +/-5 rails!! I'll probebly run them at +/-12v though so much more power output..

  • headphone driver card 2

    ben biles03/16/2017 at 11:18 0 comments

    had another go at the headphone driver card.. ! this time i made it more cimetricle in the hope i will notice any mistakes.. in some ways wasted space , but i need it to work :) hopfuly will rememebr to add the current ilmiting resistors on the output this time also !

View all 48 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

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