After investigating the possibility of using SW UART for MIDI out, I decided to give up... I had lots of issues getting reliable serial baudrate conversion and did not have enough spare time to investigate further, as can be seen based on my lack of posts in the last few months. So I am now using HW UART, 31250 in, 31250 out... no conversions... and that seems to be working fine. Took me some time to actually get it right, I thought I was also loosing bits there, until I found out about the running status in Midi... dammed it.. should have read the midi specs!!!
On the Raspi side, I plan to do as explained here to get the serial port to work at 31250.
Thursday, July 25, 2013
Monday, April 8, 2013
SW UART
My plan is to have my AVR board handle midi Input and send that to the Raspberry PI (as well as the potentiometer and switches status) through 38400bps serial port of the Raspberry Pi. To do so, the AVR will be receiving MIDI through the HW UART and will be sending serial data by bit banging.
I tried using the SW UART implementation of AVR lib, but it seems to be failing every now and then (actually very often). I was expecting it to "just work" and let me work on other stuff, but it seems like I am going to have to spend some time debugging the code from AVR lib or looking for other alternatives... I am not big expert on AVR coding, so I expect a few nights of intensive work.
Meanwhile, I am almost done modifying rtMidi to allow Midi comming through serial port.
I tried using the SW UART implementation of AVR lib, but it seems to be failing every now and then (actually very often). I was expecting it to "just work" and let me work on other stuff, but it seems like I am going to have to spend some time debugging the code from AVR lib or looking for other alternatives... I am not big expert on AVR coding, so I expect a few nights of intensive work.
Meanwhile, I am almost done modifying rtMidi to allow Midi comming through serial port.
Thursday, March 21, 2013
USBtinyISP
Yesterday I got my USBtinyISP from HobbyKing, but had no time to test it yet. I already wrote the code for the AVR so I can't wait to try that. I still need to work on the midi reception in the Raspi, to change rtMidi to use serial midi (at a non standard baud rate) instead of ALSA midi. One possibility is to use ttymidi (which converts serial to ALSA midi messages), but my plan is to extend rtMidi instead and not use ALSA midi at all.
Sunday, March 10, 2013
While waiting
While I wait for my AVR programmer, I have been working on the VA synth. This is what I have added this weekend:
LFO: Added the delay to the LFO. So LFO is now complete.
HPF: I played around with different filters, and I did not see the point. Will probably install a Juno106 clone VST and play around to figure out what should I be expecting from the HPF, cause as far as I tested it did not add much (or, considering it is a filter, did not remove much).
LPF: I added a new filter and that sounds A LOT better. Will record a sample soon. Also LFO now controls the filter. Still missing keyboard tracking.
AntiAlias: Added a better antialias downsampling filter.
NOISE: Improved the CPU performance of the NOISE section. I was just calling rand() before and that does not seem to be the most optimal. I added a random number generation technique which only required a multiplication and an addition.
One thing I want to start looking into is adding a way to store/load presets. I think I will use an XML file for that, but still not sure.
LFO: Added the delay to the LFO. So LFO is now complete.
HPF: I played around with different filters, and I did not see the point. Will probably install a Juno106 clone VST and play around to figure out what should I be expecting from the HPF, cause as far as I tested it did not add much (or, considering it is a filter, did not remove much).
LPF: I added a new filter and that sounds A LOT better. Will record a sample soon. Also LFO now controls the filter. Still missing keyboard tracking.
AntiAlias: Added a better antialias downsampling filter.
NOISE: Improved the CPU performance of the NOISE section. I was just calling rand() before and that does not seem to be the most optimal. I added a random number generation technique which only required a multiplication and an addition.
One thing I want to start looking into is adding a way to store/load presets. I think I will use an XML file for that, but still not sure.
Monday, March 4, 2013
Lesson learned
A couple of lessons learned from yesterday's video of juno6pm playing porcelain:
- I need to be able to allow any possibility between 1 channel with 6 voices to 6 channels with 1 voice.
- Need more drum samples!!!
Sunday, March 3, 2013
Raspberry Pi playing Porcelain (Moby)
Video Description:
This is my Juno.6pm virtual analog synth plus sample playback drum machine playing Porcelain out of a Midi file I downloaded from the internet. Ableton Live is only working as a Midi Out device.
The drum samples are not quite the correct ones, but shows what it is capable of doing.
Friday, March 1, 2013
Juno6pm Input Board: Bad News
My AVR programmer stopped working today. That means my progress on the input board will be delayed until I can get a new one. I did a quick search and I think I will go with the USBtinyISP programmer sold by hobby king. One of the reasons to choose the USBtinyISP is the buffered IOs. The lack of those buffers is probably what killed my programmer.
In the mean time I guess I will continue working on improving the synth part and maybe prepare a video of both synth and drum machine.
In the mean time I guess I will continue working on improving the synth part and maybe prepare a video of both synth and drum machine.
Subscribe to:
Posts (Atom)