As a nerd, & an everyday x32 user, this video and entire project is BADASS!! I hope you make and release these cards. Cheers to you. That’s a ton of work. Fantastic work my friend.
Thank you for your comment. Well, creating open-source-software/hardware and selling these are two different things. As all the components can still be soldered with a simple soldering iron and the project is still more of a "proof of concept" at the moment, I don't want to think about selling it. But it wouldn't be the Internet if someone didn't step in here :)
This is very cool. I love how these proprietary card interfaces are still implemented in a simple fashion. There’s something about the nerd hacker giggle when some absurd project works for the first time 😂
When I edited the video, I thought my joy was a little exaggerated, but at that moment there was real relief that everything worked. So: 100% genuine Nerd-Hacker-Giggle, yes :)
Freakin' amazing my friend, well done. I am but a humble assembly level programmer still living in the 8bit world. At my age I am completely taken aback by the ease with which you move through all of your IDE software and the incredibly short time cycles you seem to have in your debugging, not to mention your reverse engineering efforts. Well done, very impressive.
Thank you for your message. In my daily work, I try not to stick too closely to a manufacturer's solution or IDE, but to find the right way in a more solution-oriented way. That helps to stay flexible choosing different tools, but of course sometimes leads to confusion if the syntax is different. Spending enough time with the different tools they get kind of additional senses of yourself and you use them without giving them much thought. Assembly is the royal class of software development. I started digging into x86-assembly a couple of weeks ago to change the beaviour of a long abandoned software, and I have respect for people who can read and program it without effort. cu, Chris
You are AMAZING! FPGAs was the one thing I never learned (switched from Computer engineering to Computer science) and it has bothered me to this day. I did a bit of verilog in classes but never tinkered on my own. You are VERY INSPIRING! I'm no where on near your level but you really do inspire me to pick up an FPGA development kit and get started on learning again! Thank you for your videos!
Highly recommend, personally I found it really fun in uni, my classmates all hated it tho ;p. It's neat bc it's genuinely parallel processing, takes a different way of thinking from your ordinary low level code. One of my classmates did go on to buy one himself and get pretty good, landed a job at ON doing the hdl for digital interfaces in their new chip designs.
Once you learned how to manage this parallel-processing, you will miss it each time you are programming a regular microcontroller again :) Some weeks ago I did something with a dual-core C2000 and just thought: "man, only two parallel tasks... I'm so limited here". However, in the end a combination is usually a very good solution and if it comes to cost, you try to reach your goal somehow with the microcontrollers.
Hallo Christian, ich studiere EmbeddedSystems und mache Ton in meiner Kirche auf einem Midas M32 mit Dante-System. Und dieses Video trifft meine Interessen so gut wie wenig anderes. Danke für deine Mühe das Video zu erstellen. Deine Art ist toll, macht richtig Freude dir zu zuschauen und sich inspirieren zu lasen. Beste Grüße
Vielen Dank für das nette Feedback. Ja, Elektrotechnik/Informatik und Musik passen gut zusammen und man kann sich aus dem jeweils anderen Feld neue Energie holen, wenn's mal in dem einen Bereich nicht so rund läuft :)
Amazing content, and your video editing is also awesome. Even the music suited each section well and definitely added the suspense and other emotions as intended. Keep these coming Chris!
Excelente, que gran aporte para mis conocimientos, felicidades Chris. Me animaste a seguir con un proyecto similar al cual había dejado en el olvido... super buena idea hacerle una ingeniería inversa a la wing y su slot interno mini Pci para Ao-IP
Well, adding a dedicated Multichannel-Audio-DSP to this card-concept could boost the options. I like the idea of adding a Analog Devices SHARC DSP or a comparable device for adding more effects or EQs wihtout eating up the Logic-Elements of the FPGA. There is enough room and spare pins on the new card :)
this is possibly the most amazing project for the X32 i ever saw. I can see a few applications for additional DSP. alot of people need additional AutoMixer channels. also, a full-on speaker-processor, Auto-Tune, etc, etc. Anyways, you're effort is greatly appreciated
Thank you very much. Automixing should be possible to implement as changing the gains can be done very fast. I used this feature on implementing the dynamic Compressor/Limiter and Gate within the FPGA-project. The implementation of the gate could be a basis for a multichannel automixer. In the patent of Mr. Dugan the general idea is explained: patents.google.com/patent/US3992584A/en Maybe someone takes this chance and try to implement this to this project?
Wow, exactly the niche content I like! I've used VHDL in university and now I think I should get back to it. The professors always told us how expensive the equipment is (and it probably was expensive) but I never knew there were more consumer focused and cheaper boards available.
Yes, a lot has happened in recent years. Arduino released the Vidor4000 in 2019, but it's only gradually becoming clear what you can actually do with it. I am glad that the major manufacturers provide the toolchains free of charge. Otherwise you wouldn't be able to get projects like this off the ground.
Hi FPGA's are still quite expensive if you compare raw processing power to small MCU's or large runs of ic's. But yes the technology is getting cheaper, which is great for hobbiest!
Bro. This is insane, cool, and mind blowing. I have zero experience in the coding or any sort of electrical background to really understand how this stuff works. But as an audio engineer, it is really cool to see you doing things with this console that I would have loved Behringer to actually do! :)
Oh, I don't want to leave it like that: I was able to talk to Jan Duwe from Behringer at Pro Light and Sound in 2013 (oh man, 11 years!). He was very kind and was very willing to provide information about the general system. I think they did a great job here and made digital consoles possible for hobby applications in the first place. They also want to actively support others in using StageConnect, for example, and establishing it as an open standard (he mentioned this in one of the last RUclips-videos on the MusicStore-channel). Maybe we can encourage Behringer with this project here to release some kind of WhitePaper or Application Note for these types of connection?
OK -- I am a embedded software engineer programmer. This is a really good video. I might by the x32 just because of this video. I was looking for a multi-tracker anyway.
Awesome Video! I love the idea finding new ways to use existing tools to the fullest extent. I've actually been thinking about DIYing a standalone multi track dante recorder that doesn't cost upwards of 3000.-. Your approach could probably be adapted to merge an X-Dante and X-Live into a multi track dante recorder without too much effort. I will eventually try to do this myself. However, if anyone here has more time and is similarly frustrated with the lack of an affordable option, fell free steal the idea. In any case, thank you so much for reverse engineering and sharing the protocols, commands and everything else.
How much channels do you need? Would it be possible to get a cheap mini PC with SSD and run Dante Virtual Soundcard on it? Licenses start at €55 and give 64 channels in and out
Yes, this is absolutely possible. With the shown Arduino we can combine two - or more - Behringer Cards as we understand the commands now. It would be a device with the FPGA as a kind of audio-signal relay: the SAMD21 microcontroller would initialize the two Cards and route the audio-signals between both. So instead of 3000US$ this would cost about 600 to 700US$. A bit cheaper :)
@@daanpendavingh3100 Yes I though about using a rasperry pi for this. Unfortunetely, the DVS doesn't support linux and I've never run windows on an rasperry pi, so I don't know how well that would work. In any case, with the information that @pcdimmer uncovered, I think it might be easier to slot the Dante Interface cards from the X-Dante on to a modified X-Live card and record the audio by tapping the communication lines between the X32 and Dante Interface
No, thats not my intention. Everybody who likes to deal with this can use the GitHub-Repo to download the software and PCB-Layout and construct an own card. But I do not want to sell them. The DIY-Card is still quite expensive: 80US$ for the FPGA-Board, 15US$ for the PCB, 35US$ for the individual components. So we end up at around 130 to 150US$ for this DIY-Card. It was worth it to learn how everything works, but not for selling purposes :)
@@pcdimmer That makes sense - your skills are very well honed.. and as an OSS advocate I strongly approve of your generosity in sharing too! Thankyou.😃
Hats off to you sr!!! I've not enjoyed a video like this in a looooong time !!!! thanks for sharing.. I have a Behringer Wing and tons of ADAT instruments and processors that I would like to connect to that Wing .. wish I could have a card for ADAT I/O for the Wing wich is not available from Behringer so far :( . But this video has gave me hope some day ( fingers crossed )
We can also add ADAT to this card. ADAT-Out is no problem at all and requires only small resources of the FPGA. For ADAT-IN I guess we need to perform a sample rate conversion using a steep low-pass-filter. The FPGA could be a little too small for a high-quality LR24-filter here, but technically this is no longer a major challenge. However, as I do not intend to sell the card, I am unfortunately unable to offer a ready-made solution.
First of all this is an amazing project and I appreciate the amount of effort you have put into it. While watching the video I was asking myself whether it would be possible to control the additional channels on the mixer directly, using the customaziable buttons to switch between the channel banks. I do not have any experience in circuit board engineering and reverse engineering and have no idea if the x32 communication protocol supports something like mapping channels. I guess the channel strip components would still need to be handled externally as the x32 only has 32 channel strips. Love your video and keep up the amazing work you have been doing. PS: maybe make a video explaining in depth what all these technical terms mean?
Yes, this is a good idea. Some hours ago someone mentioned the DAW-section of the X32. I will check if we can control the additional channels using MIDI-messages sent by the X32 - either by the user-buttons or the DAW-section. Another Idea would be, to use the network-UDP/OSC-messages from the X32-Ethernet-Port. So yes, there will be some development in the next weeks :-)
Thank you. That's my way of coping with daily stress :) When I had the idea for the card, I wasn't sure at all whether it would work or not. But if you approach a problem systematically, it gradually becomes smaller and more manageable.
@@pcdimmer I also work with students at Fontys (applied science) and maybe we can share ideas and projects. Some students also post work on youtube like this : ruclips.net/video/lIyGdWQ5GYM/видео.html and this one in the lab. ruclips.net/video/R8oN_DlkuxM/видео.html Your projects cover the whole range of topics, programming, signal processing, control systems, embeddded, digital analog etc. With audio and, that makes it come alive.. ;-) Blinking lights and noise...
Impressive! I would love to see an extension of channels where the musicians also able to control the volume of the extra channels in their in-ear mix (bus mix). That would be even more impressive. Great job!
My intention was to increase the amount of main-mix-channels of the console. But additional bus-mixes are absolutely possible with this project: the FPGA has enough free ressources for sub-mixes and we can use the spare channels (channels 1-2 are the main-mix at the moment, channel 3-4 the SD-card, channel 5-6 the Bluetooth-Receiver) to transmit several sub-mixes back to the X32. We can route all 32 regular input-channels to the card, do the submixing here in the card and route submixes back to the X32. These submixes could then be distributed to the stageboxes or other outputs. But for this we are using the regular P16-M in our band so I did not see a benefit for us when I planned this project.
A huge want from the Behringer WING community is the ability to record to SD cards more than 32GB (yes it's "possible" but the WING firmware doesn't allow it because of licencing limitations) The WING is a 64x64 interface so you'd have to pump up the FPGA a little more. Adding a Bluetooth External antenna and or a "Apple Airplay"/"ChromeCast" audio destination would be a huge boon! Loving this work!
Hi, I've been using 256GB SD Cards for years without issue. Only thing is that the initial formatting needs to be done from a PC (format with FAT32 on the entire blockdevice, don't use a partition table like MBR or GPT). I've been doing that from Linux. Afterwards, the cards can be re-formatted within the WING to clear them without issues.
Yes, I faced this issue, too. Windows 10 did not allowed formatting above 32GB with FAT32 in the original format-dialog, but Microsoft changed this in the newer versions of Windows 11. But you can use third-party software to format it - or Linux as suggested.
Veeery nice project. Thanks for sharing this. And very kind of Behringer to make this port so approachable. They really could have provided a proper documentation for this. That lifts the X32 to an impressive level of hackability. I did my first steps with Lattice FPGAs, so maybe a variant of your board with one of the Colorlight modules might be a nice project :) Would also make a full OSS workflow possible using Yosys/NextPNR.
Yes, that would be a nice thing if a few others could continue on this basis and the - admittedly already large and diverse - ecosystem of the X32/M32/WING could be expanded once more. One more idea I did not mention in the video: as the protocol of the expansion cards are decoded now, we can use the X-LIVE card in other projects and connect different hardware with the X-LIVE as we know understand the communication and the audio-data :)
Great job. I think i've seen a similar idea in the comments but a bridge between two existing expansion cards would be amazing. I think a lot of people own some number of expansion cards and they'd make really cool tools - Adat/ dante/ soundgrid/ card recorder.
A card-bridge is now in sight: as we know the initialization-commands for the cards (maybe there is a difference for different cards) we can put the Vidor 4000 between two cards and initialize both cards with individual UART-connections and cross-route the four TDM-connections. An ADAT-recorder should be the easiest one. For the X-DANTE we would need more investigation to setup the DANTE-Network, but it is possible, too. First of all, I will get the presented system to a "good-to-use" level. Then we can think about more.
Wonderful job!!! Greatings from Brazil! PLS make more on that project!!! I was thinking in making a touch controller for x32 using a touch screen and raspberry zero.
Looking forward for your amazing job , it’s not in my competences , but I understand your logical approach, and that is a pleasure to watch all the process in digging trought the x32 internal 😊 I had an X32 core with waves soungrid and use it with an LV1 mixer ,(midas DL32 for I/O) Now I have a WING, would be glad to help, but I’m in France, so maybe a « bit » far 😅 Anyway, thanks for sharing your job freely, and why not think for a Tipee 😉 and … Merry Chrismas 🎄🎉
Definitely interesting project.. I'm also just on the way playing around with X32 and a DL32 stagebox - and funnily I'm implementing exactly what you had mentioned at the beginning - an AES50 core. From simulation point of view the core should work (at least how I understood the AES50 spec) - still waiting on the hardware to test as the interface is a bit special with a mix of ethernet / clocks over lvds....
Hey, nice to hear from you! Your YT videos have been like a mentor to me and have helped me through the first few weeks dealing with digital audio a couple of months ago! I'm very excited to see what comes out of your AES50-project. Good luck with it!
Excelente conteúdo! eu sempre imaginei se seria possível criar algum circuito DIY que pudesse interagir com a X32 tal como feito no video! excelente conteúdo! por favor, continue a ter mais ideias como essa, como talvez uma versão totalmente funcional de DIY mix colsole com processamento similares a x32 para ser usado em conjunto a uma x32 como uma console de palco ou um mixer especifico para gravação e mixagem de instrumentos ao vivo como uma bateria usando 16 canais talvez... isso abre portas para muitos projetos. Obrigado pelo excelente vídeo.
Muito obrigado. Bem, agora tenho de corrigir alguns pequenos bugs neste software antes de pensar num novo projeto. Mas este projeto pode ser uma base para muito mais: ao usar uma FPGA maior, é possível aumentar o número de canais ou os EQs disponíveis. Até se pode adicionar um Audio-DSP dedicado que adicione efeitos ou outros filtros de áudio. Já recebi algumas boas ideias nos comentários. Tenham um bom dia!
Damn that is such a great Video! Thanks for your work!! You could also implement a midi interface or via usb to take the „daw“ Layer of the X32 with Mackie/Hui just like i talked about with the xtouch! :)
Yes, this is a very good idea: MIDI-signals should be available on the Expansion-Card-Connector as the X-USB offers a MIDI-interface on the computer. This would be great: we could switch with a single button of the X32-surface to the additional 32 channels and use the available faders of the console. I put this on the ToDo-list for this project!
Well done 😊. But I wonder how you can mix both local inputs and your additional inputs as when the "play" button is pressed, the local inputs are cut on the x32 🤔
I think it was just for demonstration. In practice, you can use ch1-32 as normal routed from either local inputs or from aes-50 inputs. Then you can directly route aes-50 or local inputs to the card. Then card return can be sent to aux 1-8 as mono/stereo signals, and mixed within the F-BAPE card :)
Yes, that's the case. And as the FPGA mixes the samples within several hundret Nanoseconds, we can return the processed samples with only 1 sample delay, so stay in sync with the main-console. So the main benefit compared to the X-USB or X-LIVE with USB-connection to a DAW is the stability (no computer, no DAW, no updates) and real-time-processing.
@@pcdimmerSorry but I don't understand how it mixes the local inputs and the additional inputs 🤔. If the local inputs are cut, they can't be sent anywhere, right ?
The X32 can route audio in groups of 8 without processing it. The card can take 4x8 blocks from AES50 port B while the internal processing takes 4x8 blocks from AES50 port A. The buttons "REC" and "PLAY" will only switch between two different rounting-setups for convenience. In my scenario I will use my X32 core (without internal ADCs) together with three Stageboxes connected to AES50 port A. 32 channels are routed to the internal processing and the additional 16 channels are routed to the card, mixed to a stereo-mix and fed back to the AUX-ins of the console. But there are plenty of different options to route.
@pcdimmer I understand now ok 👌 , thanks. I think you should contact David Schumann who is the guy who devellop Mixing Station. I am sure you would constitute a great team to build a real 64ch solution controlable with his app 😊
What a project! Amazing work reverse engineering and mapping the x32 card port! I mix 5 nights a week on an X32 for PA output, stage monitors, in-ears and livestreaming at the same time. Have you thought about integrating Neural Amp Modeler? Would that code run on the FPGA? How can I help? I have very little code ability but lots of computer, networking, electronics and production experience.
Hi. I figured out how to implement Audio-Gates, Dynamic-Compressors and Equalizers using IIR-Filters. But up to now I have no experiences creating Amp-Models. One of the next things I'd like to work on is implementing a well-sounding reverb. But I fear Amp-Modelling is quite challenging using pure logic-elements within the FPGA...
@@pcdimmer Ah, yes I figure it would be a tricky thing to implement. Have you thought about sharing the scematics and or the board design? I have a small cnc and would love to try building this.
@@robsidle5200 Yes, schematics and Gerber-files are available on the Github project. So you can build your own Card. All Software-Parts are published, too.
Hallo Christian, geniale Arbeit! Sieht sehr vielversprechend aus. Ich kennen viele Gemeinden/Kirchen, in denen die x32 Derivate eingesetzt werden. Und mehr Kanäle zu haben ist sehr gut! Denkst du es wäre möglich einen "Splitter" zu bauen, sodass man z.b. deine Karte und eine Dante Karte einbauen kann?
Möglich wäre es, da ich das Protokoll der X-Karten nun kenne. Ich bin gerade dabei mir mal die Karten genauer anzusehen und diese mal vom FPGA zu initialisieren... Mal sehen was passiert
alright this guy is clearly above my pay grade on a technical level, the engineering behind it is crazy; so i will ASSUME i'm missing something ... but i'm not sure the benefits of the method in the video over a typical card out to DAW procedure: S32 #1 -> AES50A port of X32 -> AES50A blocks to X32's channel strip assignments = processable internally S32 #2 -> AES50B port of X32 -> AES50B blocks to X32's USB/Card Multitrack out blocks -> to a DAW = processable externally DAW master output -> Card 1+2 Aux In Remap -> Aux In 1+2 Remap to Card 1+2 unless i'm missing something, this accomplishes the same thing. in both the video method and this method, the "extra" 32 channels are mixed externally and routed back in. this method uses a DAW for the external mixer. latency will be higher with this method but will work just fine for sources that don't need to be cross-monitored on stage, can be below 10ms depending upon the computer
Yes, you are absolutely right: a DAW is able to do sub-mixes and process insert-effects using the USB-connection - if the round-trip-delay is not important. But if you think about the stability, a hardware-solution has some benefits. For me, the lowest delay was important in order to avoid overlapping effects in the main mix. The presented card has a round-trip-delay of 20.83 Microseconds at 48kHz - so one single sample. The FPGA processes the incoming audio with 100MHz (could be more if nescessary) and if you are not using any EQs, the incoming sample is processed after 10 Nanoseconds. Due to pipelining each stereo-EQ takes 140ns. As I'm using 5 EQs at the moment, we end up around 1 Microseconds. So our FPGA is around 20 times faster than the used sample-rate. So with this card, we have the same audio-quality and audio-delay as the main-console.
@@pcdimmer ah okay yes that makes sense. also did i miss any info on monitoring the additional 32+6 inputs? can the inputs monitored individually (like sending into a bus) or only able to monitor after everything is mixed together and returns back to the aux ins?
At the moment I'm trying to implement a Mute and Solo function to the Card. Lets see, if I can manage some additional functions. But as I have no access to more than the 32 audio channels back to the console, the options are a bit limited at the moment...
Great job. I want to create a converter from AES50 to fiber optics. I think that fpga will simplify the whole thing. At first I wanted to follow the path of least resistance and send the clock signals to one sfp insert and the aes50 signal to the other using simply ethernet phy. But for now I am at a standstill due to lack of time. But I see that this may be a project for you.
I took a short look at the AES50 protocol - thats a totally different pair of shoes... Just converting it to a fire-optic could be possible, but decoding and changing data is challenging.
Fascinating video. I'm curious if you could transport audio directly from a card like this to a pcie bus interface card on a computer for ultra low latency plug in processing without using a high latency protocol like USB? I currently use X-Dante, but the Dante pcie card is extremely expensive. A more cost effective solution would be a game changer for many sound engineers.
I'm not familiar with the PCI-Express-Bus. I guess it will take some time to implement the Bus-Logic into the FPGA. I fear, that is out of the scope of a homebrew-FPGA-system...
Excellent video. Today the X32, M32 are limited to 32in and 32out on USB. When we use superrack performer, we are limited to this. I would like to see a project where we could send the 16 subgroups + LR in addition to the 32in/32out. Everything via the x32/m32 usb card. Would it be possible? Sorry for my English, I'm from Brazil.
USB 2.0 has a bandwidth of 480MBit/s. As each audio-channel with 24bit and 48kHz needs a bandwidth of 1.15MBit/s we end up with 416 channels - in theory. But USB has some overhead and based on the XMOS documentation (schwender-beyer.de/inc/Why-do-you-need-USB-Audio-Class-2.pdf, Page 4) we have a maximum of 32 audio-channels with UAC2 at a standard-USB-endpoint and 64 channels with UAC2 at a high-bandwidth-USB-endpoint. So sending 64 channels is possible with USB2.0, but the X32 has only 32 channels routed to the card. So here is the bottleneck. Using a AES50 to USB-converter would be the better solution here...
What I think would be a useful implementation would be a simple mixer that combines the audio from card input 1 with card input 17 at equal level and send the mixed signal to card output 1, card input 2 mixed with card input 18 and sent to card output 2….and so on up to input 16 mixed with 32 and sent to output 32. This would allow you to combine 16 channels of audio outputs from two X32 boards together and route the combined signals as one.
This kind of audio-mixing is very easy within the FPGA. IIR-Filters need quite lot of logic-elements, but changing volume of one channel and sum up individual channels is very easy. This is absolutely possible with this DIY-Card.
Insanely cool work on this! Makes me really curious about the Allen & Heath IO Port for their older series like GLD and iLive (64 in / 64 out). Its a 64 pin connector (Harting I believe), but otherwise I am not nearly capable enough to analyze it further :)
I did a short internet-search on the Allen&Heath devices, but I have not found out more than that they use an Xilinx Arrix-7 FPGA on some cards (www.thomann.de/de/allen_heath_sq_madi_interface_card.htm) So the same process as for the X-LIVE card has to be done to find out the used protocols and audio-signals. I'm out for now :)
Yes, all components are freely available on the market and the use of the Arduino Vidor4000 prevents you from having to work with very small components. However, the two PCBs are required, for which the production data is available in the GitHub project as a Gerber file and KiCad file. This files can be used to have the boards manufactured by any PCB manufacturer available. The necessary firmware-files are also in my GitHub repository, together with some instructions on how to upload the files.
Wow great work, love seeing how you approached the problems you faced. Would it be possible to implement the protocol Behringer uses for the app in such a way that you would be able to control te fpga's processing via mixing station? (Probably you need two instances of the app, 1 for the X32 and 1 for the FPGA)
As the X32-Edit communicates via UDP/OSC protocol and this protocol is documented in the "UNOFFICIAL X32/M32 OSC REMOTE PROTOCOL" this is doable. The protocol could be implemented within the Vidor 4000 in such a way, that the X-FBAPE card would register as an additional X32-console. However, an idea from a few hours ago is easier to implement: use the DAW-Section of the X32 to control the additional 32 channels. But maybe someone will jump on board and implement it to the GitHub-Project?
Hi Christian, a cool idea for your next project; since you are into star trek: the FPGA universal audio translator! (Dante, AES50, AVB, MADI, SoundGrid, GigaAce, Analog) 32x32 any way converter!
Well... how can I say... Ummm... wait for the next video :) I've planned something like this. Dante MADI WSG Analog ADAT should be possible with this :)
I would 1000% buy one of these if you ever begin selling them. Fantastic work! Also, out of curiosity: would it work as-is with the M32 mixers as well, or would you have to change your code or hardware significantly? I'm not a coding guy myself so I admittedly skipped a lot of those portions of this video, lol.
OK, you skipped parts of the video? I .... answer ... parts.... :-) As far as I know the X32 and M32 share the same code-base. "Only" the hardware has better quality, better ADCs and different housing. Maybe the firmware is identical and only some resistors will let the firmware know, that this is a X32 or M32. So the M32 should recognize the X-LIVE as well as the X32 the DN32-LIVE. But if not, we could change the initialization-string from "X-UREC" to "DN32-UREC" or something else without problems.
@@pcdimmer Oh, sorry, lol! Thanks for still responding! That's good to hear that it wouldn't require a huge overhaul. Please keep innovating with the X32/M32 line, this stuff is awesome!
I already updated the GitHub-Repository. The original MIDI-Interface of the expansion slot is now supported and the DAW-Section of the X32-Console can be used now to control all additional 32 channels. With the "REC" button of the DAW-Section the controls can be switched to DMX512-Control, so the X32 can control the lights with the original faders now. I'm planning a follow-up-Video to show the new functions for end of January... stay tuned.
Great re-engineering work! I'm currently looking for an I2S-to-ADAT-converter but cannot find one. Not even PCBs on chinese market-places. Would it be e.g. possible to connect the serial audio inputs/outputs of an ADAU1452 to a Behringer X-ADAT?
If I remeber correctly, ADAT uses 8-channel AES/EBU - more or less the same signal as UltraNet. AES/EBU (for more information have a look here: www.nti-audio.com/Portals/0/data/de/NTi-Audio-AppNote-AES3-AES-EBU-de.pdf) is a single-line-signal with an inherent clock-signal. I2S on the other hand uses dedicated frame-sync and bit-clock-signals. So with this Vidor 4000 FPGA it is quite easy to do this conversion, but not the most affordable solution. In short: I have no out-of-the-box solution for you here, sorry.
There might be a better answer to your DIY card solution. The ex Dante card utilizes a mini PCI slot. The Dante card in that slot is a.Audinate Dante Brooklyn II card. I feel this slot on this Dante card gives you the most bang for your book because it’s a common open standard that a lot of data is out there about. You can also look up the pin out configuration for the Brooklyn II card for all the custom pins.
I had a look at the DANTE-Cards only during the video-editing - this would be a universal DIY-audio-card for different consoles, yes. But the size of the PCIe-cards is quite limited and it would not be possible to put the Vidor 4000 on-top (it would be to high). As these cards are configured using SPI, I2C and/or UART and support TDM-audio, this is not a completely different matter and should be possible. But for now I will stay with the chosen solution as there is still lot of work to do.
Yes, of course. Several people asked me about the benefits of the DIY-Card. I have a X32-Fullsize and a X32Core. I could use both systems connected via AES50. But my idea was to use only a single console with only three stageboxes and one Cat-Cable to the stage. In the last couple of days I improved the software for the card and can use the DAW-Section of the X32-Fullsize to control the additional 32 channels as well as the DMX512. So there is kind of benefit now.
Awesome video, really cool to see someone with way more patience than I reengineer this stuff. Was wondering how hard it would be to make a "poor mans dante" aes67 card. Like would an fpga like this one actually support a standard like that? Thanks!
When I set my mind to something, I am very persistent. I wanted to know how the X32 communication takes place. I have not enough information about Dante Audio-network and the used protocol to give a good answer. As Dante seems to use layer 3 ethernet, there would be a bit more overhead to implement to get the network-communication up. But the overall latency is worse than compared to my approach. Dante has something between 0.15ms and 5ms - this is 10 to 250 times more than in the direct approach in my video. Here the latency is around 21µs - 1/48kHz, hence realtime. But I see the benefits of this ethernet-approach and AES67 is something lot of people asked for in several mails I received. Would be a nice topic for a new project...
@pcdimmer thanks for your response! I guess as someone that has been working in and around network (layer2,layer3) audio for the last while it's kinda a specific interest for me. Looking forward to what crazy stuff you do next!
Do you know how the expansion card pinout for the WING is laid out? I'm hoping that we can get some harddrive recorder for that, instead of just SD cards with the WING Live. Would love to work on that, but no idea where to get the pinout. Cymatic sadly is dead, so we can't expect a similar card for the WING from them.
No, up to know I have no data about the WING-Expansion-Card. But it seems to use the same connector. As the WING-Cards seem to support 48 channels, there will be two additional TDM-lines. I'm walking around the WING-consoles each time I'm in one of the stores - maybe the next time I will take one with me. Then we will have more answers. Cymatic used a SMSC DM860A Media Processor IC with USB OTG. So the task would be here to connect a USB Mass-Storage-capable controller-IC to write the 32 audio-channels to a connected USB-mass-storage-device. However, thinking about this solution and seeing the simple SD-Card-interface on the other hand: staying with SD cards is the best solution, I guess. Cards in SPI-mode are too slow, but all newer cards support 1-bit or 4-bit SD bus mode and this interface is much easier to implement in VHDL than USB-Host-Mode. With a larger FPGA I would test this implementation with a Soft-Core NIOSII controller and a FAT32-library.
@@pcdimmer I even expect 4 additional TDM lines. The WING expansion cards support up to 64ch/64ch. The default SD recorder card can support 32ch individually on each SD at the same time, the Dante expansion card supports 64 in/out. The thing with the SD cards is that I don't really trust them that much. For critical recordings I tend to run SD, one Laptop via USB, another Laptop via Dante at the same time. I don't see USB-Host-Mode and filesystem happening on an FPGA directly for now, but I'm wondering if it would be possible to interface a more common SBC/SoC with the TDM lines. It seems that not many SoCs support 8 TDM hardware interfaces, and the clockrate makes this non-trivial to do via software-interfaces. Maybe going the route of converting the TDM lines to a USB UAC device first would work? If the OS is trimmed to the bare minimum and tuned well I'm sure that it could be quite stable. :)
Also: I can highly recommend the WING. I've got the fullsize since shortly after release and already have a WING rack sitting here as well. Unbeatable value for the money, and much more processing than the X32 platform.
Looking around a bit: The Rockchip RK2118G/RK2118M might be a suitable chip. 8x TDM, low power Cortex CPU cores, USB 2.0 OTG, 10/100 ethernet - this could work and be a nice bridge between easy TDM interfacing and writing to a USB disk with a filesystem. Will keep an eye on that!
You are a genius man, impressive project and awesome video, even the "storytelling" is great plus you are very funny, you killed me at 22:27 lol! Are you gonna sell this card? I'm sure a lot of ppl are interested, me included =D
Thank you so much. I'm glad you like the video - then all those hours were worth it. But no, production and sale of this card is not planned. I already hope that Behringer doesn't see this video as an attack. But if I sell cards, they probably won't like it. The PCB and all the production data (gerber-files) are available within the GitHub project. So, anyone who has basic solder-skills is therefore able to build a card themselves. The components are also not particularly small and you can build everything with a cheap soldering iron. Unfortunately, that's all I can do at the moment.
Yes, I'm using cool-retro under WSL2. I'm using Ubuntu under WSL2 with Wayland and tunneling the USB-devices using usbip. I'm using a powershell-script to start everything so its only a mouseclick to use everything. Its looking really nice.
It depends: in the video I used a X32core without analog inputs. Here you could connect four stageboxes: two to AES50 port A and two to AES50 port B. 32 channels of these boxes are then routed to the internal channels of the X32 and another 32 channels are routed to the Card. Two of the AUX-channels are then used to receive channels 1 and 2 of the Card with a submix of the 32 channels of the Card mixed by the FPGA. Using a larger X32 console you have the internal analog inputs as well, so there are lot of different options possible :)
@ I see. I didn’t consider routing one of the AES connections directly to the card. What is the purpose of the ethernet port on the card? (Sorry if you stated that, I might have missed it)
This video is something every live audio engineer should watch to understand the technology they're working with! Super cool project, great work!
As a nerd, & an everyday x32 user, this video and entire project is BADASS!! I hope you make and release these cards. Cheers to you. That’s a ton of work. Fantastic work my friend.
Thank you for your comment. Well, creating open-source-software/hardware and selling these are two different things. As all the components can still be soldered with a simple soldering iron and the project is still more of a "proof of concept" at the moment, I don't want to think about selling it. But it wouldn't be the Internet if someone didn't step in here :)
Thank you. This is what youtube should be all about. Fully in depth subjects for a total niche type of public.
Keep on doing it.
Great stuff. Much more complex than my projects but I very much recognise that "It works!" celebration when human triumphs over machine.
This is very cool. I love how these proprietary card interfaces are still implemented in a simple fashion.
There’s something about the nerd hacker giggle when some absurd project works for the first time 😂
When I edited the video, I thought my joy was a little exaggerated, but at that moment there was real relief that everything worked. So: 100% genuine Nerd-Hacker-Giggle, yes :)
@@pcdimmer I was also so happy for you when you finally got the card to be recognised by the x32. I genuinly felt the same joy you had.
Freakin' amazing my friend, well done. I am but a humble assembly level programmer still living in the 8bit world. At my age I am completely taken aback by the ease with which you move through all of your IDE software and the incredibly short time cycles you seem to have in your debugging, not to mention your reverse engineering efforts.
Well done, very impressive.
Thank you for your message. In my daily work, I try not to stick too closely to a manufacturer's solution or IDE, but to find the right way in a more solution-oriented way. That helps to stay flexible choosing different tools, but of course sometimes leads to confusion if the syntax is different. Spending enough time with the different tools they get kind of additional senses of yourself and you use them without giving them much thought.
Assembly is the royal class of software development. I started digging into x86-assembly a couple of weeks ago to change the beaviour of a long abandoned software, and I have respect for people who can read and program it without effort.
cu,
Chris
You are AMAZING! FPGAs was the one thing I never learned (switched from Computer engineering to Computer science) and it has bothered me to this day. I did a bit of verilog in classes but never tinkered on my own. You are VERY INSPIRING! I'm no where on near your level but you really do inspire me to pick up an FPGA development kit and get started on learning again! Thank you for your videos!
Highly recommend, personally I found it really fun in uni, my classmates all hated it tho ;p. It's neat bc it's genuinely parallel processing, takes a different way of thinking from your ordinary low level code. One of my classmates did go on to buy one himself and get pretty good, landed a job at ON doing the hdl for digital interfaces in their new chip designs.
Once you learned how to manage this parallel-processing, you will miss it each time you are programming a regular microcontroller again :) Some weeks ago I did something with a dual-core C2000 and just thought: "man, only two parallel tasks... I'm so limited here". However, in the end a combination is usually a very good solution and if it comes to cost, you try to reach your goal somehow with the microcontrollers.
I have no idea what you did or just about anything you said. All I know is, you got it to work. Hats off to you!
Hallo Christian, ich studiere EmbeddedSystems und mache Ton in meiner Kirche auf einem Midas M32 mit Dante-System. Und dieses Video trifft meine Interessen so gut wie wenig anderes. Danke für deine Mühe das Video zu erstellen. Deine Art ist toll, macht richtig Freude dir zu zuschauen und sich inspirieren zu lasen. Beste Grüße
Noch so jemand 🤩
Vielen Dank für das nette Feedback. Ja, Elektrotechnik/Informatik und Musik passen gut zusammen und man kann sich aus dem jeweils anderen Feld neue Energie holen, wenn's mal in dem einen Bereich nicht so rund läuft :)
Amazing content, and your video editing is also awesome. Even the music suited each section well and definitely added the suspense and other emotions as intended. Keep these coming Chris!
Amazing!! As someone said, I'd buy without thinking if you sell the card. Congrats for the job!!
Excelente, que gran aporte para mis conocimientos, felicidades Chris. Me animaste a seguir con un proyecto similar al cual había dejado en el olvido... super buena idea hacerle una ingeniería inversa a la wing y su slot interno mini Pci para Ao-IP
I love this type of content. I'm currently studying and experimenting with digital electronics, especially micro controllers and DSP.
Well, adding a dedicated Multichannel-Audio-DSP to this card-concept could boost the options. I like the idea of adding a Analog Devices SHARC DSP or a comparable device for adding more effects or EQs wihtout eating up the Logic-Elements of the FPGA. There is enough room and spare pins on the new card :)
Wow! Awesome video! That was cool to watch. Keep them coming!
people like you sir,are truly hidden gem
It´s a joy to see you working. Nice hack, I hope this expands on all sortr of useful expansions for the x32 ecosystem.
🎉 just found your videos and I love them.
Technical, fun and you make hard stuff easier to understand
this is possibly the most amazing project for the X32 i ever saw. I can see a few applications for additional DSP. alot of people need additional AutoMixer channels. also, a full-on speaker-processor, Auto-Tune, etc, etc. Anyways, you're effort is greatly appreciated
Thank you very much. Automixing should be possible to implement as changing the gains can be done very fast. I used this feature on implementing the dynamic Compressor/Limiter and Gate within the FPGA-project. The implementation of the gate could be a basis for a multichannel automixer. In the patent of Mr. Dugan the general idea is explained: patents.google.com/patent/US3992584A/en Maybe someone takes this chance and try to implement this to this project?
I’ve been looking for ideas like this 🎉
Super Awesome video Great Job 👏🏾🙌🏾👏🏾
So much to learn here! Thank you! ❤️🔥
Wow Wow WOOOOOOOOOOW! When you mentioned DMX i was like......ok I'm watching til the end lol
this is super impressive, love it!
Wow, exactly the niche content I like! I've used VHDL in university and now I think I should get back to it. The professors always told us how expensive the equipment is (and it probably was expensive) but I never knew there were more consumer focused and cheaper boards available.
The ecosystem has changed a bit and made it a bit more accessible. But yeah same feeling I never really got into it and miss the hackery :)
Yes, a lot has happened in recent years. Arduino released the Vidor4000 in 2019, but it's only gradually becoming clear what you can actually do with it. I am glad that the major manufacturers provide the toolchains free of charge. Otherwise you wouldn't be able to get projects like this off the ground.
Hi FPGA's are still quite expensive if you compare raw processing power to small MCU's or large runs of ic's. But yes the technology is getting cheaper, which is great for hobbiest!
Bro. This is insane, cool, and mind blowing. I have zero experience in the coding or any sort of electrical background to really understand how this stuff works. But as an audio engineer, it is really cool to see you doing things with this console that I would have loved Behringer to actually do! :)
Oh, I don't want to leave it like that: I was able to talk to Jan Duwe from Behringer at Pro Light and Sound in 2013 (oh man, 11 years!). He was very kind and was very willing to provide information about the general system. I think they did a great job here and made digital consoles possible for hobby applications in the first place.
They also want to actively support others in using StageConnect, for example, and establishing it as an open standard (he mentioned this in one of the last RUclips-videos on the MusicStore-channel). Maybe we can encourage Behringer with this project here to release some kind of WhitePaper or Application Note for these types of connection?
This channel is pure gold!Thanks again for the great content!
Great work, I really like how you showed your investigation and the result is even better 👍
Great work - keep going 👍
See you next time
I love the star trek TNG background.
Likewise
OK -- I am a embedded software engineer programmer. This is a really good video. I might by the x32 just because of this video. I was looking for a multi-tracker anyway.
Awesome Video! I love the idea finding new ways to use existing tools to the fullest extent.
I've actually been thinking about DIYing a standalone multi track dante recorder that doesn't cost upwards of 3000.-. Your approach could probably be adapted to merge an X-Dante and X-Live into a multi track dante recorder without too much effort.
I will eventually try to do this myself. However, if anyone here has more time and is similarly frustrated with the lack of an affordable option, fell free steal the idea.
In any case, thank you so much for reverse engineering and sharing the protocols, commands and everything else.
How much channels do you need? Would it be possible to get a cheap mini PC with SSD and run Dante Virtual Soundcard on it? Licenses start at €55 and give 64 channels in and out
Yes, this is absolutely possible. With the shown Arduino we can combine two - or more - Behringer Cards as we understand the commands now. It would be a device with the FPGA as a kind of audio-signal relay: the SAMD21 microcontroller would initialize the two Cards and route the audio-signals between both. So instead of 3000US$ this would cost about 600 to 700US$. A bit cheaper :)
@@daanpendavingh3100 Yes I though about using a rasperry pi for this. Unfortunetely, the DVS doesn't support linux and I've never run windows on an rasperry pi, so I don't know how well that would work.
In any case, with the information that @pcdimmer uncovered, I think it might be easier to slot the Dante Interface cards from the X-Dante on to a modified X-Live card and record the audio by tapping the communication lines between the X32 and Dante Interface
@@pcdimmer Great to hear, thanks for confirming :)
This is amazing and would sell very easily - maybe not in huge quantities but I know I want one.
No, thats not my intention. Everybody who likes to deal with this can use the GitHub-Repo to download the software and PCB-Layout and construct an own card. But I do not want to sell them. The DIY-Card is still quite expensive: 80US$ for the FPGA-Board, 15US$ for the PCB, 35US$ for the individual components. So we end up at around 130 to 150US$ for this DIY-Card. It was worth it to learn how everything works, but not for selling purposes :)
@@pcdimmer That makes sense - your skills are very well honed.. and as an OSS advocate I strongly approve of your generosity in sharing too! Thankyou.😃
Hats off to you sr!!! I've not enjoyed a video like this in a looooong time !!!! thanks for sharing.. I have a Behringer Wing and tons of ADAT instruments and processors that I would like to connect to that Wing .. wish I could have a card for ADAT I/O for the Wing wich is not available from Behringer so far :( . But this video has gave me hope some day ( fingers crossed )
We can also add ADAT to this card. ADAT-Out is no problem at all and requires only small resources of the FPGA. For ADAT-IN I guess we need to perform a sample rate conversion using a steep low-pass-filter. The FPGA could be a little too small for a high-quality LR24-filter here, but technically this is no longer a major challenge. However, as I do not intend to sell the card, I am unfortunately unable to offer a ready-made solution.
Incredible stuff!
you're a legend. what a process, what a result!
This is wow, you done great Brother more if it and I look forward to use this soon someday ❤.
So excited for another video!
Awesome project and video!
First of all this is an amazing project and I appreciate the amount of effort you have put into it. While watching the video I was asking myself whether it would be possible to control the additional channels on the mixer directly, using the customaziable buttons to switch between the channel banks. I do not have any experience in circuit board engineering and reverse engineering and have no idea if the x32 communication protocol supports something like mapping channels. I guess the channel strip components would still need to be handled externally as the x32 only has 32 channel strips. Love your video and keep up the amazing work you have been doing.
PS: maybe make a video explaining in depth what all these technical terms mean?
Yes, this is a good idea. Some hours ago someone mentioned the DAW-section of the X32. I will check if we can control the additional channels using MIDI-messages sent by the X32 - either by the user-buttons or the DAW-section. Another Idea would be, to use the network-UDP/OSC-messages from the X32-Ethernet-Port. So yes, there will be some development in the next weeks :-)
WOW this is complicated and impressive. You are obviously very very clever. What an amazing project.
Wow, you make it look so easy. Lots of experience ;-)🔊🔉
Thank you. That's my way of coping with daily stress :) When I had the idea for the card, I wasn't sure at all whether it would work or not. But if you approach a problem systematically, it gradually becomes smaller and more manageable.
@@pcdimmer I also work with students at Fontys (applied science) and maybe we can share ideas and projects. Some students also post work on youtube like this : ruclips.net/video/lIyGdWQ5GYM/видео.html and this one in the lab. ruclips.net/video/R8oN_DlkuxM/видео.html Your projects cover the whole range of topics, programming, signal processing, control systems, embeddded, digital analog etc. With audio and, that makes it come alive.. ;-) Blinking lights and noise...
Impressive stuff, thanks for sharing this info!
Impressive! I would love to see an extension of channels where the musicians also able to control the volume of the extra channels in their in-ear mix (bus mix). That would be even more impressive. Great job!
My intention was to increase the amount of main-mix-channels of the console. But additional bus-mixes are absolutely possible with this project: the FPGA has enough free ressources for sub-mixes and we can use the spare channels (channels 1-2 are the main-mix at the moment, channel 3-4 the SD-card, channel 5-6 the Bluetooth-Receiver) to transmit several sub-mixes back to the X32. We can route all 32 regular input-channels to the card, do the submixing here in the card and route submixes back to the X32. These submixes could then be distributed to the stageboxes or other outputs. But for this we are using the regular P16-M in our band so I did not see a benefit for us when I planned this project.
dude, you are crazy! i like it. keep up the good work
I need one of these man!
WOW! Amazing Project!!!
This content is magnificent! I'm such a Greek!😊
Grossartig und und sehr gut und ausführlich erklärt!!👍👍
bonkers. I enjoyed watching this, thank you
A huge want from the Behringer WING community is the ability to record to SD cards more than 32GB (yes it's "possible" but the WING firmware doesn't allow it because of licencing limitations)
The WING is a 64x64 interface so you'd have to pump up the FPGA a little more.
Adding a Bluetooth External antenna and or a "Apple Airplay"/"ChromeCast" audio destination would be a huge boon!
Loving this work!
a all-in-one Snapcast Multi-Room host card would be so doable with this! and maybe a built-in raspberry pi as a chromecast alternative
Is your WING firmware up to date? I can use 256GB cards on my WING. Maybe you have to format your cards in the WING?
Hi, I've been using 256GB SD Cards for years without issue. Only thing is that the initial formatting needs to be done from a PC (format with FAT32 on the entire blockdevice, don't use a partition table like MBR or GPT). I've been doing that from Linux. Afterwards, the cards can be re-formatted within the WING to clear them without issues.
Yes, I faced this issue, too. Windows 10 did not allowed formatting above 32GB with FAT32 in the original format-dialog, but Microsoft changed this in the newer versions of Windows 11. But you can use third-party software to format it - or Linux as suggested.
Veeery nice project. Thanks for sharing this. And very kind of Behringer to make this port so approachable. They really could have provided a proper documentation for this. That lifts the X32 to an impressive level of hackability. I did my first steps with Lattice FPGAs, so maybe a variant of your board with one of the Colorlight modules might be a nice project :) Would also make a full OSS workflow possible using Yosys/NextPNR.
Yes, that would be a nice thing if a few others could continue on this basis and the - admittedly already large and diverse - ecosystem of the X32/M32/WING could be expanded once more.
One more idea I did not mention in the video: as the protocol of the expansion cards are decoded now, we can use the X-LIVE card in other projects and connect different hardware with the X-LIVE as we know understand the communication and the audio-data :)
@@pcdimmer Hehe, next video is then plugging the X-Live as an expansion to your FPGA mixer :)
Great job. I think i've seen a similar idea in the comments but a bridge between two existing expansion cards would be amazing. I think a lot of people own some number of expansion cards and they'd make really cool tools - Adat/ dante/ soundgrid/ card recorder.
A card-bridge is now in sight: as we know the initialization-commands for the cards (maybe there is a difference for different cards) we can put the Vidor 4000 between two cards and initialize both cards with individual UART-connections and cross-route the four TDM-connections. An ADAT-recorder should be the easiest one. For the X-DANTE we would need more investigation to setup the DANTE-Network, but it is possible, too. First of all, I will get the presented system to a "good-to-use" level. Then we can think about more.
Wonderful job!!! Greatings from Brazil! PLS make more on that project!!! I was thinking in making a touch controller for x32 using a touch screen and raspberry zero.
amazing! nice job!
Thanks for sharing! So dope!
Looking forward for your amazing job , it’s not in my competences , but I understand your logical approach, and that is a pleasure to watch all the process in digging trought the x32 internal 😊
I had an X32 core with waves soungrid and use it with an LV1 mixer ,(midas DL32 for I/O)
Now I have a WING, would be glad to help, but I’m in France, so maybe a « bit » far 😅
Anyway, thanks for sharing your job freely, and why not think for a Tipee 😉 and …
Merry Chrismas 🎄🎉
Great content, thanks for explaining things so clearly! Subscribed!!
Definitely interesting project.. I'm also just on the way playing around with X32 and a DL32 stagebox - and funnily I'm implementing exactly what you had mentioned at the beginning - an AES50 core. From simulation point of view the core should work (at least how I understood the AES50 spec) - still waiting on the hardware to test as the interface is a bit special with a mix of ethernet / clocks over lvds....
Hey, nice to hear from you! Your YT videos have been like a mentor to me and have helped me through the first few weeks dealing with digital audio a couple of months ago! I'm very excited to see what comes out of your AES50-project. Good luck with it!
Woooow that very good project😊
Thanks for the video! This would make a great kit.
NCC1701D in the background 😂 brilliant
Excelente conteúdo! eu sempre imaginei se seria possível criar algum circuito DIY que pudesse interagir com a X32 tal como feito no video! excelente conteúdo! por favor, continue a ter mais ideias como essa, como talvez uma versão totalmente funcional de DIY mix colsole com processamento similares a x32 para ser usado em conjunto a uma x32 como uma console de palco ou um mixer especifico para gravação e mixagem de instrumentos ao vivo como uma bateria usando 16 canais talvez... isso abre portas para muitos projetos. Obrigado pelo excelente vídeo.
Muito obrigado. Bem, agora tenho de corrigir alguns pequenos bugs neste software antes de pensar num novo projeto. Mas este projeto pode ser uma base para muito mais: ao usar uma FPGA maior, é possível aumentar o número de canais ou os EQs disponíveis. Até se pode adicionar um Audio-DSP dedicado que adicione efeitos ou outros filtros de áudio. Já recebi algumas boas ideias nos comentários. Tenham um bom dia!
Thanks for your videos!
Amazing content!
Damn that is such a great Video! Thanks for your work!!
You could also implement a midi interface or via usb to take the „daw“ Layer of the X32 with Mackie/Hui just like i talked about with the xtouch! :)
Yes, this is a very good idea: MIDI-signals should be available on the Expansion-Card-Connector as the X-USB offers a MIDI-interface on the computer. This would be great: we could switch with a single button of the X32-surface to the additional 32 channels and use the available faders of the console. I put this on the ToDo-list for this project!
very nice man, just got the x32 myself(cheap, used becaused the xwing is out).
Subscribed because of this video
Well done 😊. But I wonder how you can mix both local inputs and your additional inputs as when the "play" button is pressed, the local inputs are cut on the x32 🤔
I think it was just for demonstration.
In practice, you can use ch1-32 as normal routed from either local inputs or from aes-50 inputs.
Then you can directly route aes-50 or local inputs to the card.
Then card return can be sent to aux 1-8 as mono/stereo signals, and mixed within the F-BAPE card :)
Yes, that's the case. And as the FPGA mixes the samples within several hundret Nanoseconds, we can return the processed samples with only 1 sample delay, so stay in sync with the main-console. So the main benefit compared to the X-USB or X-LIVE with USB-connection to a DAW is the stability (no computer, no DAW, no updates) and real-time-processing.
@@pcdimmerSorry but I don't understand how it mixes the local inputs and the additional inputs 🤔. If the local inputs are cut, they can't be sent anywhere, right ?
The X32 can route audio in groups of 8 without processing it. The card can take 4x8 blocks from AES50 port B while the internal processing takes 4x8 blocks from AES50 port A. The buttons "REC" and "PLAY" will only switch between two different rounting-setups for convenience.
In my scenario I will use my X32 core (without internal ADCs) together with three Stageboxes connected to AES50 port A. 32 channels are routed to the internal processing and the additional 16 channels are routed to the card, mixed to a stereo-mix and fed back to the AUX-ins of the console.
But there are plenty of different options to route.
@pcdimmer I understand now ok 👌 , thanks. I think you should contact David Schumann who is the guy who devellop Mixing Station. I am sure you would constitute a great team to build a real 64ch solution controlable with his app 😊
Great project. Subbed!
Well done.
You are Amazing !!
What a project! Amazing work reverse engineering and mapping the x32 card port! I mix 5 nights a week on an X32 for PA output, stage monitors, in-ears and livestreaming at the same time. Have you thought about integrating Neural Amp Modeler? Would that code run on the FPGA? How can I help? I have very little code ability but lots of computer, networking, electronics and production experience.
Hi. I figured out how to implement Audio-Gates, Dynamic-Compressors and Equalizers using IIR-Filters. But up to now I have no experiences creating Amp-Models. One of the next things I'd like to work on is implementing a well-sounding reverb. But I fear Amp-Modelling is quite challenging using pure logic-elements within the FPGA...
@@pcdimmer Ah, yes I figure it would be a tricky thing to implement. Have you thought about sharing the scematics and or the board design? I have a small cnc and would love to try building this.
@@robsidle5200 Yes, schematics and Gerber-files are available on the Github project. So you can build your own Card. All Software-Parts are published, too.
this would be amazing topic for a talk at 39c3 ngl
Hallo Christian, geniale Arbeit! Sieht sehr vielversprechend aus. Ich kennen viele Gemeinden/Kirchen, in denen die x32 Derivate eingesetzt werden. Und mehr Kanäle zu haben ist sehr gut! Denkst du es wäre möglich einen "Splitter" zu bauen, sodass man z.b. deine Karte und eine Dante Karte einbauen kann?
Möglich wäre es, da ich das Protokoll der X-Karten nun kenne. Ich bin gerade dabei mir mal die Karten genauer anzusehen und diese mal vom FPGA zu initialisieren... Mal sehen was passiert
Nice research
alright this guy is clearly above my pay grade on a technical level, the engineering behind it is crazy; so i will ASSUME i'm missing something ... but i'm not sure the benefits of the method in the video over a typical card out to DAW procedure:
S32 #1 -> AES50A port of X32 -> AES50A blocks to X32's channel strip assignments = processable internally
S32 #2 -> AES50B port of X32 -> AES50B blocks to X32's USB/Card Multitrack out blocks -> to a DAW = processable externally
DAW master output -> Card 1+2
Aux In Remap -> Aux In 1+2 Remap to Card 1+2
unless i'm missing something, this accomplishes the same thing. in both the video method and this method, the "extra" 32 channels are mixed externally and routed back in. this method uses a DAW for the external mixer. latency will be higher with this method but will work just fine for sources that don't need to be cross-monitored on stage, can be below 10ms depending upon the computer
Yes, you are absolutely right: a DAW is able to do sub-mixes and process insert-effects using the USB-connection - if the round-trip-delay is not important. But if you think about the stability, a hardware-solution has some benefits. For me, the lowest delay was important in order to avoid overlapping effects in the main mix. The presented card has a round-trip-delay of 20.83 Microseconds at 48kHz - so one single sample. The FPGA processes the incoming audio with 100MHz (could be more if nescessary) and if you are not using any EQs, the incoming sample is processed after 10 Nanoseconds. Due to pipelining each stereo-EQ takes 140ns. As I'm using 5 EQs at the moment, we end up around 1 Microseconds. So our FPGA is around 20 times faster than the used sample-rate. So with this card, we have the same audio-quality and audio-delay as the main-console.
@@pcdimmer ah okay yes that makes sense. also did i miss any info on monitoring the additional 32+6 inputs? can the inputs monitored individually (like sending into a bus) or only able to monitor after everything is mixed together and returns back to the aux ins?
At the moment I'm trying to implement a Mute and Solo function to the Card. Lets see, if I can manage some additional functions. But as I have no access to more than the 32 audio channels back to the console, the options are a bit limited at the moment...
It's great that the platform has matured to the point where they can't introduce ciphering of the commands on the hardware level 😁
Great job. I want to create a converter from AES50 to fiber optics. I think that fpga will simplify the whole thing. At first I wanted to follow the path of least resistance and send the clock signals to one sfp insert and the aes50 signal to the other using simply ethernet phy. But for now I am at a standstill due to lack of time. But I see that this may be a project for you.
I took a short look at the AES50 protocol - thats a totally different pair of shoes... Just converting it to a fire-optic could be possible, but decoding and changing data is challenging.
@@pcdimmer So I wanted to take the path of least resistance and not decode anything. Take MLT-3 and convert it to fiber.
Fascinating video. I'm curious if you could transport audio directly from a card like this to a pcie bus interface card on a computer for ultra low latency plug in processing without using a high latency protocol like USB? I currently use X-Dante, but the Dante pcie card is extremely expensive. A more cost effective solution would be a game changer for many sound engineers.
I'm not familiar with the PCI-Express-Bus. I guess it will take some time to implement the Bus-Logic into the FPGA. I fear, that is out of the scope of a homebrew-FPGA-system...
Excellent video. Today the X32, M32 are limited to 32in and 32out on USB. When we use superrack performer, we are limited to this. I would like to see a project where we could send the 16 subgroups + LR in addition to the 32in/32out. Everything via the x32/m32 usb card. Would it be possible? Sorry for my English, I'm from Brazil.
USB 2.0 has a bandwidth of 480MBit/s. As each audio-channel with 24bit and 48kHz needs a bandwidth of 1.15MBit/s we end up with 416 channels - in theory. But USB has some overhead and based on the XMOS documentation (schwender-beyer.de/inc/Why-do-you-need-USB-Audio-Class-2.pdf, Page 4) we have a maximum of 32 audio-channels with UAC2 at a standard-USB-endpoint and 64 channels with UAC2 at a high-bandwidth-USB-endpoint.
So sending 64 channels is possible with USB2.0, but the X32 has only 32 channels routed to the card. So here is the bottleneck. Using a AES50 to USB-converter would be the better solution here...
What I think would be a useful implementation would be a simple mixer that combines the audio from card input 1 with card input 17 at equal level and send the mixed signal to card output 1, card input 2 mixed with card input 18 and sent to card output 2….and so on up to input 16 mixed with 32 and sent to output 32. This would allow you to combine 16 channels of audio outputs from two X32 boards together and route the combined signals as one.
This kind of audio-mixing is very easy within the FPGA. IIR-Filters need quite lot of logic-elements, but changing volume of one channel and sum up individual channels is very easy. This is absolutely possible with this DIY-Card.
Insanely cool work on this!
Makes me really curious about the Allen & Heath IO Port for their older series like GLD and iLive (64 in / 64 out). Its a 64 pin connector (Harting I believe), but otherwise I am not nearly capable enough to analyze it further :)
I did a short internet-search on the Allen&Heath devices, but I have not found out more than that they use an Xilinx Arrix-7 FPGA on some cards (www.thomann.de/de/allen_heath_sq_madi_interface_card.htm)
So the same process as for the X-LIVE card has to be done to find out the used protocols and audio-signals. I'm out for now :)
So cool!! I'd love to see more X32 stuff. What would it take to get my hands on something like this? Buy parts and solder it together?
Yes, all components are freely available on the market and the use of the Arduino Vidor4000 prevents you from having to work with very small components. However, the two PCBs are required, for which the production data is available in the GitHub project as a Gerber file and KiCad file. This files can be used to have the boards manufactured by any PCB manufacturer available. The necessary firmware-files are also in my GitHub repository, together with some instructions on how to upload the files.
Wow great work, love seeing how you approached the problems you faced. Would it be possible to implement the protocol Behringer uses for the app in such a way that you would be able to control te fpga's processing via mixing station? (Probably you need two instances of the app, 1 for the X32 and 1 for the FPGA)
As the X32-Edit communicates via UDP/OSC protocol and this protocol is documented in the "UNOFFICIAL X32/M32 OSC REMOTE PROTOCOL" this is doable. The protocol could be implemented within the Vidor 4000 in such a way, that the X-FBAPE card would register as an additional X32-console. However, an idea from a few hours ago is easier to implement: use the DAW-Section of the X32 to control the additional 32 channels. But maybe someone will jump on board and implement it to the GitHub-Project?
Hi Christian, a cool idea for your next project; since you are into star trek: the FPGA universal audio translator! (Dante, AES50, AVB, MADI, SoundGrid, GigaAce, Analog) 32x32 any way converter!
Well... how can I say... Ummm... wait for the next video :) I've planned something like this. Dante MADI WSG Analog ADAT should be possible with this :)
Only shame the X32-Core is no longer made. An the M32C seems to be a bit too expensive for what it is.
I would 1000% buy one of these if you ever begin selling them. Fantastic work!
Also, out of curiosity: would it work as-is with the M32 mixers as well, or would you have to change your code or hardware significantly? I'm not a coding guy myself so I admittedly skipped a lot of those portions of this video, lol.
OK, you skipped parts of the video? I .... answer ... parts.... :-)
As far as I know the X32 and M32 share the same code-base. "Only" the hardware has better quality, better ADCs and different housing. Maybe the firmware is identical and only some resistors will let the firmware know, that this is a X32 or M32. So the M32 should recognize the X-LIVE as well as the X32 the DN32-LIVE. But if not, we could change the initialization-string from "X-UREC" to "DN32-UREC" or something else without problems.
@@pcdimmer Oh, sorry, lol! Thanks for still responding! That's good to hear that it wouldn't require a huge overhaul. Please keep innovating with the X32/M32 line, this stuff is awesome!
Amazing
would be awesome if you could control the additional 32 channels with MIDI from the console itself! (hit the MIDI/DAW switch)
I already updated the GitHub-Repository. The original MIDI-Interface of the expansion slot is now supported and the DAW-Section of the X32-Console can be used now to control all additional 32 channels. With the "REC" button of the DAW-Section the controls can be switched to DMX512-Control, so the X32 can control the lights with the original faders now. I'm planning a follow-up-Video to show the new functions for end of January... stay tuned.
Great re-engineering work!
I'm currently looking for an I2S-to-ADAT-converter but cannot find one. Not even PCBs on chinese market-places.
Would it be e.g. possible to connect the serial audio inputs/outputs of an ADAU1452 to a Behringer X-ADAT?
If I remeber correctly, ADAT uses 8-channel AES/EBU - more or less the same signal as UltraNet. AES/EBU (for more information have a look here: www.nti-audio.com/Portals/0/data/de/NTi-Audio-AppNote-AES3-AES-EBU-de.pdf) is a single-line-signal with an inherent clock-signal. I2S on the other hand uses dedicated frame-sync and bit-clock-signals.
So with this Vidor 4000 FPGA it is quite easy to do this conversion, but not the most affordable solution. In short: I have no out-of-the-box solution for you here, sorry.
There might be a better answer to your DIY card solution. The ex Dante card utilizes a mini PCI slot. The Dante card in that slot is a.Audinate Dante Brooklyn II card. I feel this slot on this Dante card gives you the most bang for your book because it’s a common open standard that a lot of data is out there about. You can also look up the pin out configuration for the Brooklyn II card for all the custom pins.
I had a look at the DANTE-Cards only during the video-editing - this would be a universal DIY-audio-card for different consoles, yes. But the size of the PCIe-cards is quite limited and it would not be possible to put the Vidor 4000 on-top (it would be to high). As these cards are configured using SPI, I2C and/or UART and support TDM-audio, this is not a completely different matter and should be possible. But for now I will stay with the chosen solution as there is still lot of work to do.
Wow! pretty awesome. However, you lost me just after "Hi and welcome". I didn't even know a human could sort this technology out.
You could at first mix the drumset down via a submixer, so you can use up only two channels on your X32
Yes, of course. Several people asked me about the benefits of the DIY-Card. I have a X32-Fullsize and a X32Core. I could use both systems connected via AES50. But my idea was to use only a single console with only three stageboxes and one Cat-Cable to the stage. In the last couple of days I improved the software for the card and can use the DAW-Section of the X32-Fullsize to control the additional 32 channels as well as the DMX512. So there is kind of benefit now.
Genious
Awesome video, really cool to see someone with way more patience than I reengineer this stuff.
Was wondering how hard it would be to make a "poor mans dante" aes67 card. Like would an fpga like this one actually support a standard like that? Thanks!
When I set my mind to something, I am very persistent. I wanted to know how the X32 communication takes place.
I have not enough information about Dante Audio-network and the used protocol to give a good answer. As Dante seems to use layer 3 ethernet, there would be a bit more overhead to implement to get the network-communication up. But the overall latency is worse than compared to my approach. Dante has something between 0.15ms and 5ms - this is 10 to 250 times more than in the direct approach in my video. Here the latency is around 21µs - 1/48kHz, hence realtime. But I see the benefits of this ethernet-approach and AES67 is something lot of people asked for in several mails I received. Would be a nice topic for a new project...
@pcdimmer thanks for your response! I guess as someone that has been working in and around network (layer2,layer3) audio for the last while it's kinda a specific interest for me. Looking forward to what crazy stuff you do next!
Wow!
Do you know how the expansion card pinout for the WING is laid out? I'm hoping that we can get some harddrive recorder for that, instead of just SD cards with the WING Live. Would love to work on that, but no idea where to get the pinout. Cymatic sadly is dead, so we can't expect a similar card for the WING from them.
Guess I'll have to look into reverse engineering it like you did with one of my WING-Live cards, or a WING-Dante card.
No, up to know I have no data about the WING-Expansion-Card. But it seems to use the same connector. As the WING-Cards seem to support 48 channels, there will be two additional TDM-lines. I'm walking around the WING-consoles each time I'm in one of the stores - maybe the next time I will take one with me. Then we will have more answers.
Cymatic used a SMSC DM860A Media Processor IC with USB OTG. So the task would be here to connect a USB Mass-Storage-capable controller-IC to write the 32 audio-channels to a connected USB-mass-storage-device. However, thinking about this solution and seeing the simple SD-Card-interface on the other hand: staying with SD cards is the best solution, I guess. Cards in SPI-mode are too slow, but all newer cards support 1-bit or 4-bit SD bus mode and this interface is much easier to implement in VHDL than USB-Host-Mode. With a larger FPGA I would test this implementation with a Soft-Core NIOSII controller and a FAT32-library.
@@pcdimmer I even expect 4 additional TDM lines. The WING expansion cards support up to 64ch/64ch. The default SD recorder card can support 32ch individually on each SD at the same time, the Dante expansion card supports 64 in/out.
The thing with the SD cards is that I don't really trust them that much. For critical recordings I tend to run SD, one Laptop via USB, another Laptop via Dante at the same time. I don't see USB-Host-Mode and filesystem happening on an FPGA directly for now, but I'm wondering if it would be possible to interface a more common SBC/SoC with the TDM lines. It seems that not many SoCs support 8 TDM hardware interfaces, and the clockrate makes this non-trivial to do via software-interfaces.
Maybe going the route of converting the TDM lines to a USB UAC device first would work? If the OS is trimmed to the bare minimum and tuned well I'm sure that it could be quite stable. :)
Also: I can highly recommend the WING. I've got the fullsize since shortly after release and already have a WING rack sitting here as well. Unbeatable value for the money, and much more processing than the X32 platform.
Looking around a bit: The Rockchip RK2118G/RK2118M might be a suitable chip. 8x TDM, low power Cortex CPU cores, USB 2.0 OTG, 10/100 ethernet - this could work and be a nice bridge between easy TDM interfacing and writing to a USB disk with a filesystem. Will keep an eye on that!
You are a genius man, impressive project and awesome video, even the "storytelling" is great plus you are very funny, you killed me at 22:27 lol! Are you gonna sell this card? I'm sure a lot of ppl are interested, me included =D
Thank you so much. I'm glad you like the video - then all those hours were worth it. But no, production and sale of this card is not planned. I already hope that Behringer doesn't see this video as an attack. But if I sell cards, they probably won't like it.
The PCB and all the production data (gerber-files) are available within the GitHub project. So, anyone who has basic solder-skills is therefore able to build a card themselves. The components are also not particularly small and you can build everything with a cheap soldering iron. Unfortunately, that's all I can do at the moment.
Is that the cool-retro-theme terminal emu running minicom?
Yes, I'm using cool-retro under WSL2. I'm using Ubuntu under WSL2 with Wayland and tunneling the USB-devices using usbip. I'm using a powershell-script to start everything so its only a mouseclick to use everything. Its looking really nice.
@pcdimmer looks great 👍
Love U 😭
Christian, are you a wizard? Advanced electronics black magic course
No, not really. I studied electrical engineering for a couple of years and that, together with a healthy curiosity, seems to be enough :)
@chris, is your wiring: 2x stage boxes to the board's standard AES50 connections and 2x boxes to the card's AES50 connection
It depends: in the video I used a X32core without analog inputs. Here you could connect four stageboxes: two to AES50 port A and two to AES50 port B. 32 channels of these boxes are then routed to the internal channels of the X32 and another 32 channels are routed to the Card. Two of the AUX-channels are then used to receive channels 1 and 2 of the Card with a submix of the 32 channels of the Card mixed by the FPGA.
Using a larger X32 console you have the internal analog inputs as well, so there are lot of different options possible :)
@ I see. I didn’t consider routing one of the AES connections directly to the card.
What is the purpose of the ethernet port on the card? (Sorry if you stated that, I might have missed it)