ARM Microcontroller MIDI-to-CV: A Straightforward Guide
Жүктеу.....
Пікірлер: 64
@TheAudioPhool Жыл бұрын
So i goofed up and set the MIDI baud to 32500 when it should be 31250. Probably a typo initially that i just ran with! Maybe i need a proof reader 😅 It works either way because each bit is sampled at the middle of the bit, and oversampled by 5 times so at these speeds the correct bit is still sampled, which is why i didn't catch it! But set UART 1 to 31250bits/s to make sure your system is as robust as possible!
@locussst Жыл бұрын
Love your videos! This one in particular has some very snappy editing (but not too fast), I appreciate the amount of information you've packed into 20 min :) would love to see you demonatrate midi velocity -> dynamic triggers
@TheAudioPhool
Жыл бұрын
That sort of stuff is on the way! If you sign up to my patreon you can keep up with regular updates to this project :)
@mangehallin4 ай бұрын
Come on now, back on the horse please! I'm actually learning stuff here! 😁
@huxley_a52887 ай бұрын
Great video! I’m learning alot from you and Moritz Klein here on YT. Please keep the videos coming. Maybe some more microcontroller stuff?
@gerardstrik2555 Жыл бұрын
Always a pleasure. And even some Tool! Brilliant!
@TheAudioPhool
Жыл бұрын
🤘
@TheAudioPhool Жыл бұрын
Hi folks! Sorry for the little break from posting. Been a super hectic time for me! I know this video is a little involved and i'm sure some of you will have issues and it will be quite difficult for me to help you, so here's a link to my main.c file (link also in desc.) so that you can compare your code against mine if you get stuck, or just copy my code straight into your project. That will help you figure out if you've made a mistake in your code or in setting up the microcontroller in the STM Cube IDE. Microcontrollers can be hard at first so don't give up if you get stuck! code: rb.gy/nr3kej
@tuppyglossop222
Жыл бұрын
It would help a lot if you didn’t talk at a million mph and edit out every pause between sentences. It is exhausting to listen to 😮
@hellcoreproductions
Жыл бұрын
@@tuppyglossop222 Play at 0.75x?
@tuppyglossop222
Жыл бұрын
@@hellcoreproductions Yes, I could do that, but what I did was to offer you some constructive feedback which would make your videos better.
@psynautic
Жыл бұрын
@@tuppyglossop222 who are you talking to at this point? hellcore didn't make the video. I actually like the energy that his new editing style injects into the videos.
@kylew706
Жыл бұрын
Love your channel!
@guyleee3 ай бұрын
Where are you? We miss you? :(
@misterthekaitheman Жыл бұрын
Man I love your enthusiasm and constant smiling throughout the video!! Makes me laugh too and makes the video really enjoyable to watch! Keep it bro!
@johnsmith-lb4mo11 ай бұрын
Love your video's, pity you don't upload more frequently with different projects and circuits.?
@garygranato9164 Жыл бұрын
brilliant nice to see you making videos again
@TheAudioPhool
Жыл бұрын
Thanks mate :)
@garygranato9164
Жыл бұрын
@@TheAudioPhool can you do a step by step serise where you build a pre-amplifier ?? the accuphase clones are very good :)
@pete3897 Жыл бұрын
Ha ha, you picked the right Tool™ for the job 👍 :)
@TheAudioPhool
Жыл бұрын
Saw them live last year. Incredible
@nathanfinnegan5227 ай бұрын
Did I just hear Schism? 🤯
@psynautic Жыл бұрын
you got a sponsorship!!!
@yurkshirelad9 ай бұрын
Brilliant video!
@steveurquhart5895 Жыл бұрын
brilliant work. 🙂
@TheAudioPhool
Жыл бұрын
Thanks Steve! :)
@majordabalert Жыл бұрын
God I love you
@FrootyRecords Жыл бұрын
I have watched all your videos and they are fantastic, you explain stuff in detail yet is still relatively easy to understand, but this one seams too over complicated, I don't know why you have gone this route rather than using a simple Arduino Nano or equivalent like a lot of people do with a midi library and a cheap SPI 12 or 16bit dac to get nice precision. Code using libraries is much easier to understand for beginners I think. But perhaps you have future things in mind so that is why you are using this? . Anyway , I will watch with anticipation for your next vids. Great work overall!
@TheAudioPhool
Жыл бұрын
Appreciate the feedback mate. I do have a long term plan for this stuff but I'm sorry to hear you found it difficult. I tried to make it as simple as I can! Thanks for watching and for the kind words :)
@LockStoppageSandwich Жыл бұрын
My favourite YT channel by far……………..Keep up the great work 👍 Would love it if you would do a series on making our own synths modules. Also a 8 channel matrix mixer.
@tarseminakshi95 Жыл бұрын
Sir what is use ossiloscop
@hellcoreproductions Жыл бұрын
Not sure if I missed something, but no disabling interrupt during the handler? Or just not worrying about it at MIDI baud?
@TheAudioPhool
Жыл бұрын
Yeah just not worried and also trying to keep things as simple as possible. The rxne flag is cleared when we read the UART so it works out ok. Nice to see that someone is paying attention though! 😁
@hellcoreproductions
Жыл бұрын
@@TheAudioPhool Makes sense, I'm not really clued on the vendor specific flags!
@TheAudioPhool
Жыл бұрын
It's a real pain tbh. You have to look up what action clears which flag.. probably easier to just turn the interrupts off 😅
@vegansynths7757 Жыл бұрын
The patreon link just sends me to the STM website. ?
@hellcoreproductions Жыл бұрын
Also is that the I'm Broken bassline at the beginning, or happy coincidence? :D
@@TheAudioPhool damn, I could sworn it was a Tool baseline
@JMMC1005
Жыл бұрын
@@pete3897 Second baseline is TOOL.
@TheAudioPhool
Жыл бұрын
@@pete3897 There are 2 basslines 😂 First one is Super Collosal, the second one is Schism by Tool
@donvukovic7440 Жыл бұрын
Please post the demo board you are using.
@TheAudioPhool
Жыл бұрын
Nucleo F303k8
@baddriddimworkshop Жыл бұрын
Man you're un fcking hero! my concern is doyou actually get fairly paid for what you do...
@TheAudioPhool
Жыл бұрын
I rely very heavily on my patrons to fund these videos. If you want to support me that's the best way if you're able! Either way thanks so much for the kind words :)
@hellcoreproductions Жыл бұрын
PCMR :D
@TheAudioPhool
Жыл бұрын
😎
@AhmetKizilay0 Жыл бұрын
Great tutorial. I have been wondering about midi to cv solutions. Do 16bits (also with 3x amplification) generate accurate pitch values?
@TheAudioPhool
Жыл бұрын
16 bits will do great. The board i used has 12 bits and the tracking is good so 16 bits will be 16(2^4) times better!
@AQLK87
Жыл бұрын
@@TheAudioPhool Because of the 12 bit DAC, we have 409.6 unique values per octave, giving approximately a 3 cent resolution. Did you notice this granularity? Looking at the number, it seems a bit big, and much too big for smooth pitch bends. But I have not tried it and maybe 12 bit is actually enough for the regular keyboard notes. I don't know if the uC has more analog outs, but would you recommend an attenuator that scales another 3.3V range down to whatever pitchbend range you want and add it to the 0-10V CV for smooth pitch bends?
@TheAudioPhool
Жыл бұрын
This is such a great question and something i thought a bit about before i made this video. What i didn't like about a lot of other tutorials is that to use a 16+b external DAC you need to use SPI which i think is quite involved for a beginner, but obviously the tradeoff is that most uC's only have 8/10/12b DACs inside, unless you go onto a fairly big development board or an FPGA or something. That's what makes this board a great pick for this because it hedges those 2 tradeoffs quite nicely i think by giving you a few options. So if we compare a standard midi controller, i'm sure you know this already but pitchbend messages are actually 14 bits long by combining both data bytes. 14bits = 16k levels, bending across +/-2st you get 16k/4 = 4096 steps/semitone in your bend, If you bend over a major 3rd(+/-4st) you get 2048 steps/semitone. Across the full 10v with this 12b DAC you get 34.133(4096/120) steps/semitone at the output of the DAC as you correctly calculated (2.92 cents). Which is fine for the individual notes (off by a max of +/-1.5cents is ok), but for bends, compared to what a standard MIDI controller will ask for (limited to a major 3rd) we are off by a factor of 64. You would be able to hear the steps over a nice slow bend. So, the cool thing about this micro is that is not only has 2 DACs built in, but also has built in op-amps that you can configure in software. So yes you could use the 2nd onboard DAC to output effectively just pitch bend information and then use an op-amp (internal or external) to scale it down to your desired pitch bend range (say 1-4 semitones) and then use a simple op-amp mixer for your final CV output. I didn't include this in the video because it's a little involved to set the op-amp etc but if you're not scared of the documentation you can have a look through it! I would say the easiest option is to set it with an external op-amp and trim it in with a small potentiometer, like i did in the video for the CV output. so lets say you limit DAC2 to going up or down by 2 semitones each way that gives you 4096/4 = 1024steps/semitone or 512steps/semitone for a major 3rd, which is comparable to the output resolution of a 16bit DAC. If you want larger bends i would go down the SPI route and use an external 16 bit or better DAC, which will give you the resolution you need to bend. 16bits over the full 10 octaves gives you 546 steps/semitone, 18 bits gives you 2184 steps/semitone which will give you the needed resolution if you wanted to use all 14 bits of your pitchbend message from your MIDI controller. Thanks for watching and thanks for the thoughtful question!! If you join my patreon you will get updates for this kind of addition to the MIDI controller and a load of other features :)
@jozefsoucik31155 ай бұрын
yeah manim animation.
@zetaconvex1987 Жыл бұрын
Looks a man who has typed his code in the wrong part of the file in the past.
@TheAudioPhool
Жыл бұрын
Many times! 😂
@stevenbliss9892 ай бұрын
This is your last video, is that permanent?
@toobar9084 ай бұрын
aw shwucks he ded
@BrittDurbrow Жыл бұрын
Really? I thought the status byte was the one that told me I was driving a Rolls-Royce...
Пікірлер: 64
So i goofed up and set the MIDI baud to 32500 when it should be 31250. Probably a typo initially that i just ran with! Maybe i need a proof reader 😅 It works either way because each bit is sampled at the middle of the bit, and oversampled by 5 times so at these speeds the correct bit is still sampled, which is why i didn't catch it! But set UART 1 to 31250bits/s to make sure your system is as robust as possible!
Love your videos! This one in particular has some very snappy editing (but not too fast), I appreciate the amount of information you've packed into 20 min :) would love to see you demonatrate midi velocity -> dynamic triggers
@TheAudioPhool
Жыл бұрын
That sort of stuff is on the way! If you sign up to my patreon you can keep up with regular updates to this project :)
Come on now, back on the horse please! I'm actually learning stuff here! 😁
Great video! I’m learning alot from you and Moritz Klein here on YT. Please keep the videos coming. Maybe some more microcontroller stuff?
Always a pleasure. And even some Tool! Brilliant!
@TheAudioPhool
Жыл бұрын
🤘
Hi folks! Sorry for the little break from posting. Been a super hectic time for me! I know this video is a little involved and i'm sure some of you will have issues and it will be quite difficult for me to help you, so here's a link to my main.c file (link also in desc.) so that you can compare your code against mine if you get stuck, or just copy my code straight into your project. That will help you figure out if you've made a mistake in your code or in setting up the microcontroller in the STM Cube IDE. Microcontrollers can be hard at first so don't give up if you get stuck! code: rb.gy/nr3kej
@tuppyglossop222
Жыл бұрын
It would help a lot if you didn’t talk at a million mph and edit out every pause between sentences. It is exhausting to listen to 😮
@hellcoreproductions
Жыл бұрын
@@tuppyglossop222 Play at 0.75x?
@tuppyglossop222
Жыл бұрын
@@hellcoreproductions Yes, I could do that, but what I did was to offer you some constructive feedback which would make your videos better.
@psynautic
Жыл бұрын
@@tuppyglossop222 who are you talking to at this point? hellcore didn't make the video. I actually like the energy that his new editing style injects into the videos.
@kylew706
Жыл бұрын
Love your channel!
Where are you? We miss you? :(
Man I love your enthusiasm and constant smiling throughout the video!! Makes me laugh too and makes the video really enjoyable to watch! Keep it bro!
Love your video's, pity you don't upload more frequently with different projects and circuits.?
brilliant nice to see you making videos again
@TheAudioPhool
Жыл бұрын
Thanks mate :)
@garygranato9164
Жыл бұрын
@@TheAudioPhool can you do a step by step serise where you build a pre-amplifier ?? the accuphase clones are very good :)
Ha ha, you picked the right Tool™ for the job 👍 :)
@TheAudioPhool
Жыл бұрын
Saw them live last year. Incredible
Did I just hear Schism? 🤯
you got a sponsorship!!!
Brilliant video!
brilliant work. 🙂
@TheAudioPhool
Жыл бұрын
Thanks Steve! :)
God I love you
I have watched all your videos and they are fantastic, you explain stuff in detail yet is still relatively easy to understand, but this one seams too over complicated, I don't know why you have gone this route rather than using a simple Arduino Nano or equivalent like a lot of people do with a midi library and a cheap SPI 12 or 16bit dac to get nice precision. Code using libraries is much easier to understand for beginners I think. But perhaps you have future things in mind so that is why you are using this? . Anyway , I will watch with anticipation for your next vids. Great work overall!
@TheAudioPhool
Жыл бұрын
Appreciate the feedback mate. I do have a long term plan for this stuff but I'm sorry to hear you found it difficult. I tried to make it as simple as I can! Thanks for watching and for the kind words :)
My favourite YT channel by far……………..Keep up the great work 👍 Would love it if you would do a series on making our own synths modules. Also a 8 channel matrix mixer.
Sir what is use ossiloscop
Not sure if I missed something, but no disabling interrupt during the handler? Or just not worrying about it at MIDI baud?
@TheAudioPhool
Жыл бұрын
Yeah just not worried and also trying to keep things as simple as possible. The rxne flag is cleared when we read the UART so it works out ok. Nice to see that someone is paying attention though! 😁
@hellcoreproductions
Жыл бұрын
@@TheAudioPhool Makes sense, I'm not really clued on the vendor specific flags!
@TheAudioPhool
Жыл бұрын
It's a real pain tbh. You have to look up what action clears which flag.. probably easier to just turn the interrupts off 😅
The patreon link just sends me to the STM website. ?
Also is that the I'm Broken bassline at the beginning, or happy coincidence? :D
@TheAudioPhool
Жыл бұрын
It's Super Collosal by Joe Satriani 😅
@hellcoreproductions
Жыл бұрын
@@TheAudioPhool Oh wow, #whyriffsshouldntbecopyright
@pete3897
Жыл бұрын
@@TheAudioPhool damn, I could sworn it was a Tool baseline
@JMMC1005
Жыл бұрын
@@pete3897 Second baseline is TOOL.
@TheAudioPhool
Жыл бұрын
@@pete3897 There are 2 basslines 😂 First one is Super Collosal, the second one is Schism by Tool
Please post the demo board you are using.
@TheAudioPhool
Жыл бұрын
Nucleo F303k8
Man you're un fcking hero! my concern is doyou actually get fairly paid for what you do...
@TheAudioPhool
Жыл бұрын
I rely very heavily on my patrons to fund these videos. If you want to support me that's the best way if you're able! Either way thanks so much for the kind words :)
PCMR :D
@TheAudioPhool
Жыл бұрын
😎
Great tutorial. I have been wondering about midi to cv solutions. Do 16bits (also with 3x amplification) generate accurate pitch values?
@TheAudioPhool
Жыл бұрын
16 bits will do great. The board i used has 12 bits and the tracking is good so 16 bits will be 16(2^4) times better!
@AQLK87
Жыл бұрын
@@TheAudioPhool Because of the 12 bit DAC, we have 409.6 unique values per octave, giving approximately a 3 cent resolution. Did you notice this granularity? Looking at the number, it seems a bit big, and much too big for smooth pitch bends. But I have not tried it and maybe 12 bit is actually enough for the regular keyboard notes. I don't know if the uC has more analog outs, but would you recommend an attenuator that scales another 3.3V range down to whatever pitchbend range you want and add it to the 0-10V CV for smooth pitch bends?
@TheAudioPhool
Жыл бұрын
This is such a great question and something i thought a bit about before i made this video. What i didn't like about a lot of other tutorials is that to use a 16+b external DAC you need to use SPI which i think is quite involved for a beginner, but obviously the tradeoff is that most uC's only have 8/10/12b DACs inside, unless you go onto a fairly big development board or an FPGA or something. That's what makes this board a great pick for this because it hedges those 2 tradeoffs quite nicely i think by giving you a few options. So if we compare a standard midi controller, i'm sure you know this already but pitchbend messages are actually 14 bits long by combining both data bytes. 14bits = 16k levels, bending across +/-2st you get 16k/4 = 4096 steps/semitone in your bend, If you bend over a major 3rd(+/-4st) you get 2048 steps/semitone. Across the full 10v with this 12b DAC you get 34.133(4096/120) steps/semitone at the output of the DAC as you correctly calculated (2.92 cents). Which is fine for the individual notes (off by a max of +/-1.5cents is ok), but for bends, compared to what a standard MIDI controller will ask for (limited to a major 3rd) we are off by a factor of 64. You would be able to hear the steps over a nice slow bend. So, the cool thing about this micro is that is not only has 2 DACs built in, but also has built in op-amps that you can configure in software. So yes you could use the 2nd onboard DAC to output effectively just pitch bend information and then use an op-amp (internal or external) to scale it down to your desired pitch bend range (say 1-4 semitones) and then use a simple op-amp mixer for your final CV output. I didn't include this in the video because it's a little involved to set the op-amp etc but if you're not scared of the documentation you can have a look through it! I would say the easiest option is to set it with an external op-amp and trim it in with a small potentiometer, like i did in the video for the CV output. so lets say you limit DAC2 to going up or down by 2 semitones each way that gives you 4096/4 = 1024steps/semitone or 512steps/semitone for a major 3rd, which is comparable to the output resolution of a 16bit DAC. If you want larger bends i would go down the SPI route and use an external 16 bit or better DAC, which will give you the resolution you need to bend. 16bits over the full 10 octaves gives you 546 steps/semitone, 18 bits gives you 2184 steps/semitone which will give you the needed resolution if you wanted to use all 14 bits of your pitchbend message from your MIDI controller. Thanks for watching and thanks for the thoughtful question!! If you join my patreon you will get updates for this kind of addition to the MIDI controller and a load of other features :)
yeah manim animation.
Looks a man who has typed his code in the wrong part of the file in the past.
@TheAudioPhool
Жыл бұрын
Many times! 😂
This is your last video, is that permanent?
aw shwucks he ded
Really? I thought the status byte was the one that told me I was driving a Rolls-Royce...
'promo sm' 😔
No, too quick for me. I'm old.
Please post the demo board you are using.
@TheAudioPhool
Жыл бұрын
It's the Nucleo F303k8