<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3412336748115576497</id><updated>2012-02-16T05:43:11.426-08:00</updated><title type='text'>Neutron-synth</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-6310040332529105547</id><published>2010-04-24T15:43:00.000-07:00</published><updated>2010-04-24T15:43:13.238-07:00</updated><title type='text'>Sent off the main boards!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cmcUouqPLaA/S9Nz8zJiGvI/AAAAAAAAAHA/ol_gZ_fjYhk/s1600/bot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="322" src="http://3.bp.blogspot.com/_cmcUouqPLaA/S9Nz8zJiGvI/AAAAAAAAAHA/ol_gZ_fjYhk/s400/bot.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;I have added a few tweaks and features, and sent the board off to be manufactured. (its a bit too fancy for me to DIY!)&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-6310040332529105547?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/6310040332529105547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/sent-off-main-boards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/6310040332529105547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/6310040332529105547'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/sent-off-main-boards.html' title='Sent off the main boards!'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cmcUouqPLaA/S9Nz8zJiGvI/AAAAAAAAAHA/ol_gZ_fjYhk/s72-c/bot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-5460086308775456536</id><published>2010-04-16T11:45:00.000-07:00</published><updated>2010-04-16T11:46:13.821-07:00</updated><title type='text'>Testing the multiplexer boards</title><content type='html'>Made a little arduino sketch to test the HC4067 MUX boards.&lt;br /&gt;It just steps through them and writes the values of the potentiometers to the serial port.&lt;br /&gt;Everything worked fine!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_cmcUouqPLaA/S8iwI-OMkQI/AAAAAAAAAG4/ZN0TgCq0xgU/s1600/testingMUX.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://2.bp.blogspot.com/_cmcUouqPLaA/S8iwI-OMkQI/AAAAAAAAAG4/ZN0TgCq0xgU/s400/testingMUX.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;I was quite happy, especially with the SMD soldering, which I am not very experienced with.&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-5460086308775456536?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/5460086308775456536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/testing-multiplexer-boards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5460086308775456536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5460086308775456536'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/testing-multiplexer-boards.html' title='Testing the multiplexer boards'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cmcUouqPLaA/S8iwI-OMkQI/AAAAAAAAAG4/ZN0TgCq0xgU/s72-c/testingMUX.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-3596793111665226547</id><published>2010-04-15T19:50:00.000-07:00</published><updated>2010-04-15T19:54:58.576-07:00</updated><title type='text'></title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cmcUouqPLaA/S8fPjvQPtMI/AAAAAAAAAGo/FdSQDIwfLK0/s1600/scarabboards.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://3.bp.blogspot.com/_cmcUouqPLaA/S8fPjvQPtMI/AAAAAAAAAGo/FdSQDIwfLK0/s400/scarabboards.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Multiplexer boards. they check the values of the potentiometers one by one and send the value to the microcontroller. this saves a lot of wiring headaches, not to mention running out of pins. they do exactly the same thing as the &lt;a href="http://mayhewlabs.com/arduino-mux-shield"&gt;Arduino MUX Shield&lt;/a&gt;. but only 1 multiplexers are used per board instead of 3.&lt;br /&gt;&lt;br /&gt;panel with pot and MUX boards installed, ready for testing.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cmcUouqPLaA/S8fP1FUhpPI/AAAAAAAAAGw/liGi2z23f5s/s1600/muxinstalled.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://3.bp.blogspot.com/_cmcUouqPLaA/S8fP1FUhpPI/AAAAAAAAAGw/liGi2z23f5s/s400/muxinstalled.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-3596793111665226547?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/3596793111665226547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/multiplexer-boards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/3596793111665226547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/3596793111665226547'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/multiplexer-boards.html' title=''/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cmcUouqPLaA/S8fPjvQPtMI/AAAAAAAAAGo/FdSQDIwfLK0/s72-c/scarabboards.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-6328900201163436448</id><published>2010-04-10T14:15:00.000-07:00</published><updated>2010-04-10T14:15:23.851-07:00</updated><title type='text'>The Steiner diode ladder VCF.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cmcUouqPLaA/S8DpSpVqpEI/AAAAAAAAAGg/0hNLh61aO2w/s1600/yusteiner.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_cmcUouqPLaA/S8DpSpVqpEI/AAAAAAAAAGg/0hNLh61aO2w/s400/yusteiner.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;This filter sounds better to me than the SSM2044, and it has bandpass and highpass. this is a &lt;a href="http://yusynth.net/Modular/index_en.html"&gt;Yusynth&lt;/a&gt; designed one, i am going to make a different board design with 3 or 4 filters with a voltage controlled center frequency spacing. but this one is a keeper, ill put it on a modular panel.&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-6328900201163436448?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/6328900201163436448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/steiner-diode-ladder-vcf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/6328900201163436448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/6328900201163436448'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/steiner-diode-ladder-vcf.html' title='The Steiner diode ladder VCF.'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cmcUouqPLaA/S8DpSpVqpEI/AAAAAAAAAGg/0hNLh61aO2w/s72-c/yusteiner.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-5049503044032784638</id><published>2010-04-05T19:54:00.000-07:00</published><updated>2010-04-05T19:54:34.478-07:00</updated><title type='text'>versatile synth control boards.</title><content type='html'>Here are some boards which can hold a bunch of potentiometers in a versatile way.&lt;br /&gt;Tthis particular version wass meant to be used with my arduino synth but they could easilly be used with almost anything that needs a lot of pots (i have a few extra which will go in to an analog sequencer)&lt;br /&gt;They can even be cut in half and still be broken out at either end.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_cmcUouqPLaA/S7qhohLjAkI/AAAAAAAAAGY/Nol42IA00W4/s1600/bottom.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://2.bp.blogspot.com/_cmcUouqPLaA/S7qhohLjAkI/AAAAAAAAAGY/Nol42IA00W4/s400/bottom.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;each pot can have either end connected to positive or negative or some other rail (there are 4 aux rails) this is handy for things like attack and decay which can be wired "backwards"&lt;br /&gt;&lt;br /&gt;the aux rails can also be used for LEDs or switches.&lt;br /&gt;&lt;br /&gt;In the future i may design a better version where each position could also be a jack or a switch&amp;nbsp; (they could now but short wires would have to be used) it would be nice for modular synth panels.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cmcUouqPLaA/S7qhlwUceaI/AAAAAAAAAGQ/O5WlKJYQNDw/s1600/32pots.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://4.bp.blogspot.com/_cmcUouqPLaA/S7qhlwUceaI/AAAAAAAAAGQ/O5WlKJYQNDw/s400/32pots.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-5049503044032784638?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/5049503044032784638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/versatile-synth-control-boards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5049503044032784638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5049503044032784638'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/versatile-synth-control-boards.html' title='versatile synth control boards.'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cmcUouqPLaA/S7qhohLjAkI/AAAAAAAAAGY/Nol42IA00W4/s72-c/bottom.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-2644338511538612119</id><published>2010-04-03T11:46:00.000-07:00</published><updated>2010-04-03T11:46:42.571-07:00</updated><title type='text'>Normalizing mixer for Yusynth Steiner filter</title><content type='html'>This is an unusual filter in that it has separate inputs for low pass, band pass and high pass, rather than outputs. I thought i would take advantage of that and replace the band selector switch with a simple mixer.&lt;br /&gt;&lt;br /&gt;The idea is, if you only connect a signal to the low pass input, then the controls will mix how much signal gets to each part.&lt;br /&gt;&lt;br /&gt;If you plug something else in to the band pass or high pass, then the mixer will control the input levels, but now the second input is sent to its respective filter input.&lt;br /&gt;&lt;br /&gt;This way you could have voltage controlled crossover frequency between 2 or even 3 different signals.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_cmcUouqPLaA/S7eMnTv3pBI/AAAAAAAAAGI/D0IZhNY5R54/s1600/nmix.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://2.bp.blogspot.com/_cmcUouqPLaA/S7eMnTv3pBI/AAAAAAAAAGI/D0IZhNY5R54/s400/nmix.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I have not built this yet, i am still waiting for a couple of components to finish the filter itself. after it is tested and working i will make this on a tiny addon board.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-2644338511538612119?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/2644338511538612119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/normalizing-mixer-for-yusynth-steiner.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/2644338511538612119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/2644338511538612119'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/normalizing-mixer-for-yusynth-steiner.html' title='Normalizing mixer for Yusynth Steiner filter'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cmcUouqPLaA/S7eMnTv3pBI/AAAAAAAAAGI/D0IZhNY5R54/s72-c/nmix.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-828201818921381875</id><published>2010-04-03T11:37:00.000-07:00</published><updated>2010-04-03T11:37:06.129-07:00</updated><title type='text'></title><content type='html'>Here is an update to the arduino synth.&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Io1Aiy74nnw&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Io1Aiy74nnw&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-828201818921381875?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/828201818921381875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/here-is-update-to-arduino-synth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/828201818921381875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/828201818921381875'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/04/here-is-update-to-arduino-synth.html' title=''/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-3851285377063554211</id><published>2010-03-20T12:24:00.000-07:00</published><updated>2010-03-20T18:14:15.910-07:00</updated><title type='text'></title><content type='html'>Im an idiot! such a noob mistake!&lt;br /&gt;Bought, programmed, and started using a "256k" EEPROM, then wondered why there were not enough address pins.&lt;br /&gt;&lt;br /&gt;well i have 128k of wavetables they should easily fit right?&lt;br /&gt;well actually no, not when its 256 kilo BITS. So i only have 1/4 of my wavetables loaded for now. fortunately i can get 2 megaBIT Flash EEPROMS at ebay pretty cheap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-3851285377063554211?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/3851285377063554211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/03/cdatablah-blah.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/3851285377063554211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/3851285377063554211'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/03/cdatablah-blah.html' title=''/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-4693783077988275552</id><published>2010-02-21T19:31:00.000-08:00</published><updated>2010-02-21T20:13:09.551-08:00</updated><title type='text'></title><content type='html'>&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1rAw8MmHKtw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/1rAw8MmHKtw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Here is the filterboard working (only one side so far, i need more controls!) I had to make an op/amp level shifter to get the arduino PWM to have a wide enough range to control the filter. very simple though.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cmcUouqPLaA/S4H6MKbfBHI/AAAAAAAAAFc/LmW7UDS6coM/s1600-h/offset.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_cmcUouqPLaA/S4H6MKbfBHI/AAAAAAAAAFc/LmW7UDS6coM/s320/offset.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Controlling the Q is not automated from the arduino yet, i will have to build a similar circuit for that as well.&lt;br /&gt;&lt;br /&gt;Also&lt;a href="http://www.cgs.synth.net/modules/cgs35_syntha_vcf.html"&gt; this &lt;/a&gt;is a very interesting filter circuit for me because it has seperate low pass, high pass, and band pass inputs rather than outputs.you could input different oscillators on the high/low pass for frequency based mixing, which ought to sound interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-4693783077988275552?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/4693783077988275552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/here-is-filterboard-working-only-one.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/4693783077988275552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/4693783077988275552'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/here-is-filterboard-working-only-one.html' title=''/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cmcUouqPLaA/S4H6MKbfBHI/AAAAAAAAAFc/LmW7UDS6coM/s72-c/offset.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-1232122506309727451</id><published>2010-02-15T13:25:00.000-08:00</published><updated>2010-02-15T13:25:18.238-08:00</updated><title type='text'>SSM2044 Filter board</title><content type='html'>Here is a single sided version of the dual SSM2044 filter circuit designed by T.Stoeckl at Midibox.&lt;br /&gt;This is the best pulsar pro board yet! hardly any missed holes, or extra unwanted holes on the ground plane. i just lost a couple of dots on the proto area.&lt;br /&gt;&lt;br /&gt;For pulsar pro toner resist users, I have found that taping the annoying green foil so it is nice and taut over the board (using avery laser sticker material) works better then their "hold it a special way and pray" method.&lt;br /&gt;&lt;br /&gt;The circuit is basically the same as the one here&lt;br /&gt;&lt;a href="http://www.midibox.org/dokuwiki/doku.php?id=ssm2044_pcb"&gt;at midibox&lt;/a&gt; except without the bypass relay, the reason i omitted it is because the filter mix will be done with digital potentiometers.&lt;br /&gt;Another small change was added spots for LEDs, I like leds on every board i do just to be sure it is getting power. also a little protoboard area for a dual opamp, just in case i need to do level shifting or something.&lt;br /&gt;&lt;br /&gt;This circuit compensates for the Q input Using an LM13700 transconductance amplifier IC.&lt;br /&gt;as i discovered, SSM2044 is quite flakey if you just wire up an SSM2044 on a protoboard like you might see here.&lt;a href="http://www.electricdruid.net/index.php?page=info.ssm2044"&gt;Electric druid SSM2044 page&lt;/a&gt; I expect those synths have some compensation happening elsewhere that is not shown in the circuits.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cmcUouqPLaA/S3m4XWlzwyI/AAAAAAAAAFM/d3AgNzQU-3U/s1600-h/filterboard.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_cmcUouqPLaA/S3m4XWlzwyI/AAAAAAAAAFM/d3AgNzQU-3U/s320/filterboard.jpg" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;The board layout. exported from ExpressPCB with DoPDF&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Imported at 1200DPI and edited in photoshop&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_cmcUouqPLaA/S3m45iMqWLI/AAAAAAAAAFU/1n5XkrPR62U/s1600-h/board.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_cmcUouqPLaA/S3m45iMqWLI/AAAAAAAAAFU/1n5XkrPR62U/s320/board.jpg" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Undrilled board. Came out pretty good! &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Next up will be the tedious drilling of all those holes!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-1232122506309727451?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/1232122506309727451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/ssm2044-filter-board.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/1232122506309727451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/1232122506309727451'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/ssm2044-filter-board.html' title='SSM2044 Filter board'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cmcUouqPLaA/S3m4XWlzwyI/AAAAAAAAAFM/d3AgNzQU-3U/s72-c/filterboard.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-2064554207402507931</id><published>2010-02-12T18:53:00.000-08:00</published><updated>2010-02-12T19:08:14.871-08:00</updated><title type='text'>Nice envelope gentator! on arduino.</title><content type='html'>I have used the PWM output of the arduino mega to generate an ADSR envelope.&lt;br /&gt;&lt;br /&gt;here is the not very elegant ADSR code its simply running in the main loop waiting for MIDI notes. it may have to be modified when glide is implemented. i can not use any interrupts besides the one generating the actual oscillator notes because it causes clicks. or horrible jitter. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if (envstart &amp;gt; 0){&amp;nbsp; //envstart is set to 1 by the MIDI input routine&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; if (attackpeak &amp;lt; 1){envval = (envval + attack); //step up to full level&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if (envval &amp;gt;= 1023) {attackpeak = 1;envval = 1023;}}&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; //switch to decay&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if (attackpeak &amp;gt; 0){&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if (envval &amp;gt; sustain) { //stop at sustain level&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; envval = (envval - decay);}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if (envval &amp;lt;= 1){attackpeak = 0;envstart = 0;envval = 0;}}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; if (envstart == 0){&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if (envval &amp;gt; 1) { //gate is done, do the release&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;envval = envval - release;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if (envval &amp;lt; 0) {envval = 0;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;else {envval = 0;}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; analogWrite(EGPin1,(envval&amp;gt;&amp;gt;2));//change to a direct write&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The envelope PWM output is controlling the volume by being filtered and becoming the reference voltage for the DAC0808 multiplying DACs&lt;br /&gt;&lt;br /&gt;The Digital input of the DACS are the 2 8 bit wavetables, each on a seperate DAC. adding them together in the analog domain gives much better sound then crushing them to half value and mixing them inside the arduino.&lt;br /&gt;&lt;br /&gt;once i have switched the synth to use encoders (which will run on a seperate arduino, as well as a display)&lt;br /&gt;i can have a seperate envelope for the volume of each oscillator.&lt;br /&gt;&lt;br /&gt;Because i used common analog linear potentiometers, and will be using encoders, i was having trouble scaling the ADSR controls to use the entire range of the pot and not jump to a high value suddenly.&lt;br /&gt;&lt;br /&gt;I have solved this with a simple array containing floating point values which decrease exponentially. This has improved the control ability and the sounds are even better now!&lt;br /&gt;&lt;br /&gt;first there is the array look up table. it contains 64 values, (could be increased to 128 for MIDI full range)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(declarations)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;//exponential table for controls and envelopes&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp; float exptable[64] = {&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;1023,750,562,422,316,237,177,133,&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;100,75,56,42,32,24,18.5,13.3,&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;10,7.5,5.63,4.22,3.17,2.375,1.78,1.336,&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;1,0.75,0.563,0.422,0.317,0.237,0.178,0.137,&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;0.1,0.075,0.0563,0.0422,0.0317,0.0237,0.0178,0.0137,&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;0.01,0.0075,0.00563,0.00422,0.00317,0.00237,0.00178,0.00137,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp; 0.001,0.00075,0.000563,0.000422,0.000317,0.000237,0.000178,0.000137,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp; 0.0001,0.000075,0.0000563,0.0000422,0.0000317,0.0000237,0.0000178,0.0000137};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(setup)&lt;br /&gt;&lt;br /&gt;(part of main loop)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;ARC ++; //counts through analog reads only 1 per loop, they are //slow to read, but humans turning knobs are even slower&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;if (ARC &amp;gt; 11) {ARC = 0;}&amp;nbsp; //number of analog controllers &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;switch(ARC){&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0:&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; detval = analogRead(detPin);&amp;nbsp; //detune&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //detval = map(detval, 0 ,1023, 1, 16);&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 1:&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tread = analogRead(attackPin);// attack&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tread = map(tread, 0 ,1023, 32, 0);&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; attack = exptable[tread];///READ FROM TABLE &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 2:&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tread = analogRead (decayPin);//decay&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tread = map(tread, 0 ,1023, 1, 32);&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; decay = exptable[tread];//READ FROM TABLE &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;.etc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have found it is very important to prescale the PWM the envelope is using to 31.25 khz or higher&lt;br /&gt;for outputting on pins 6,7,and 8 on the mega the code to do this is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;TCCR4B = (TCCR4B &amp;amp; 0b11111000 | 0x01); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you use a slower rate in the audible range, you will either hear it, or have to use such a long time constant on the output filter that you can not get fast attacks on the envelope,&lt;br /&gt;&lt;br /&gt;This way you have the advantage of not hearing the PWM frequency, and being able to use a small capacitor and still smooth the envelope nicely.&lt;br /&gt;&lt;br /&gt;currently the PWM output is going to a 1k resistor to a 0.1uf capacitor(to ground) and then to the DAC voltage reference input resistor (still experimenting with this)&lt;br /&gt;&lt;br /&gt;Surprisingly to me, although I have the envelope generator running in the main loop with MIDI note recieve and control input the envelope are very timely on a MIDI note and also very repeatable.&lt;br /&gt;&lt;br /&gt;This will probably get better when i start using the other arduino to send in the control settings because there will no longer be analogread happening at all. (some take longer than others because they have math, which surely must cause some jitter) I hope to generate a couple more envelopes and maybe one or two LFOs as well.&lt;br /&gt;&lt;br /&gt;Next i will start experimenting with using wavetables to control attack and decay amplitude, which could give it a more interesting shape.&lt;br /&gt;&lt;br /&gt;And finally i have ordered 2 seeedstudio megas to do this , they are smaller, and have even more exposed pins, which might enable me to use at least one more parralel DAC for the third oscillator (which is working on PWM now, with no envelope) i can get massive supersaw happening with all three going :D&lt;br /&gt;&lt;br /&gt;maybe i can fill this thing up !&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Binary sketch size: 18090 bytes (of a 126976 byte maximum)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-2064554207402507931?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/2064554207402507931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/nice-envelope-gentator-on-arduino.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/2064554207402507931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/2064554207402507931'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/nice-envelope-gentator-on-arduino.html' title='Nice envelope gentator! on arduino.'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-863331797467446675</id><published>2010-02-06T21:23:00.000-08:00</published><updated>2010-02-06T21:46:00.016-08:00</updated><title type='text'>Testing with DACS + filter IC</title><content type='html'>Here is the 2009 arduino mega with a 1977 SSM2044 filter IC :)&lt;br /&gt;it sounds MUCH better using the DACS instead of the pulse width modulation output. i was testing it without even an anti aliasing filter and only heard artifacts on very high notes (its primarily meant to be a bass synth so maybe ill leave it out or make it switchable.)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cmcUouqPLaA/S25NIwGQtKI/AAAAAAAAAFE/JVIH8wlYO-c/s1600-h/addingfilter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_cmcUouqPLaA/S25NIwGQtKI/AAAAAAAAAFE/JVIH8wlYO-c/s320/addingfilter.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I built a nice little power supply with +-15 volts and 5v for the arduino (once its weaned off USB power) the board was made using pulsar pro laser printer system.&lt;br /&gt;&lt;br /&gt;the chasis it is in is from a busted digital music corp MIDI router the boards are just velcroed down to it, (except the power supply on proper standoffs) &lt;br /&gt;&lt;br /&gt;the DACs were very easy , they worked straight away, the SSM filter on the other hand is very finnicky, and when the Q is turned up the volume gets quieter untill it starts to self oscillate. it is a very basic version though, i will try some of &lt;a href="http://www.electricdruid.net/index.php?page=info.ssm2044"&gt;these&lt;/a&gt; ones&lt;br /&gt;&lt;br /&gt;I have not set up the display yet, i decided to wait for some encoders to arrive, so i can do the pages and display all at the same time.&lt;br /&gt;&lt;br /&gt;the oscillators will be done with a few pages(not a nightmare like some synths!) but the filter will be left pure analog, with no presets or anything.&lt;br /&gt;&lt;br /&gt;also i have adapted the "multitasking" system to also work in the Interrupt service routine. there is a simple wavetable of 8 values, each of those values happens one per cycle of the waveform (up to MIDI note F6 or so then it might get hairy!) thingsa such as LFO updates, envelope updates and writing to DACS or pins only happens once per cycle of the waveform, and in 8 different time slots so one pass of the ISR will not block the normal loop routines such as reading potentiometers (soon to be encoders) or writing on the display.&lt;br /&gt;&lt;br /&gt;as an added bonus the envelope can be written to its DAC on the first sample of each cycle so, as long as wavetables are created with the zero crossing (127) at the first position of the table then envelope volume changes will happen on "zero crossing" and not cause zipper noise, (may be possible with 8 bit envelopes!)&lt;br /&gt;&lt;br /&gt;this is not real multitasking at all, just a trick to do more low priority stuff in a loop without updating it every time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-863331797467446675?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/863331797467446675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/testing-with-dacs-filter-ic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/863331797467446675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/863331797467446675'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/02/testing-with-dacs-filter-ic.html' title='Testing with DACS + filter IC'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cmcUouqPLaA/S25NIwGQtKI/AAAAAAAAAFE/JVIH8wlYO-c/s72-c/addingfilter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-8052648877123053693</id><published>2010-01-30T22:00:00.000-08:00</published><updated>2010-01-30T22:00:15.280-08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=Hdo-vNCDg_c"&gt;http://www.youtube.com/watch?v=Hdo-vNCDg_c&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;here is arduino mega doing wavetable osc function with ADSR envelope&lt;br /&gt;since this video i have added a few features with a mode selector&lt;br /&gt;it will have a lot more modulation options once i change from potentiometers to rotary encoders.&lt;br /&gt;&lt;br /&gt;for now i have added:&lt;br /&gt;&lt;br /&gt;fade between wavetables on envelope value&lt;br /&gt;Random selection of mix between wavetables on MIDI note&lt;br /&gt;Random selection of wavetable between the wave 1 and wave 2 selectors&lt;br /&gt;random selection of wavetables and mix&lt;br /&gt;&lt;br /&gt;second mode selector will deal with MIDI velocity&lt;br /&gt;then i can change volume with velocity&lt;br /&gt;change envelope time with velocity&lt;br /&gt;change wavetable mix with velocity&lt;br /&gt;&lt;br /&gt;and fixed the envelope generator a bit. i wasted about 2 hours trying to fix "double envelope" problem but it was actually windows 7 set to listen to the line in, as well as playing it anyways so it would play 2 times..duh. &lt;br /&gt;&lt;br /&gt;it sounds more dynamic now, i am using this arduino oscillator as a base for a pair of SSM2044 filter chips, in a DIY synthesizer project. it will also control the level and Q of the filters.&lt;br /&gt;&lt;br /&gt;a little trick for the analog reads, there are 12 analog reads they are very slow, taking over 100 cycles each and if i did them in order the response would be really sluggish, since the pots are only human input they do not have to be read very quickly compared to other things so i only read one per cycle of the main loop&lt;br /&gt;&lt;br /&gt;even so they can be tweaked and you do not notice any lag. &lt;br /&gt;&lt;br /&gt;i will be changing the "interface" for what its worth now :) to an LCD and 9 encoders&lt;br /&gt;1 encoder will select a page (osc 1, osc 2, modulation, envelope etc)&lt;br /&gt;and 4 above and 4 below to change the values.&lt;br /&gt;&lt;br /&gt;pseudo code&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;void&amp;nbsp; loop () {&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;counter++&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if counter &amp;gt; number of analog inputs then counter = 0&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;switch (counter){&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;case 1:&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;do stuff for analog 1&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;break&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;case 2:&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;do stuff for analog 2&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;.}&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;midi in&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ADSR&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LFO&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wavetable select&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;etc&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-8052648877123053693?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/8052648877123053693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/httpwww.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/8052648877123053693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/8052648877123053693'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/httpwww.html' title=''/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-5169137983412545258</id><published>2010-01-22T19:08:00.000-08:00</published><updated>2010-01-22T19:08:32.558-08:00</updated><title type='text'>Arduino smooth LCD meters.</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Well it took a while, But i managed to get arduino to show smooth bargraph meters on a standard &lt;span style="font-size: small;"&gt;hitachi &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;hd44780 LCD module&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It was difficult because I managed to read a lot of old information which was out of date. First of all i was using the LCD4bit library which at one time was needed for 4 bit mode, it is not needed any more. the standard LCDlibrary that comes with arduino IDE works with 4 bit mode just fine.&lt;br /&gt;&lt;br /&gt;Then there is a bit of confusion about how to do the custom characters for the LCD, the way i have done it works, but there is a better way that does not use "uint8_t" (whatever that is) but it does not affect the speed of the code and it works, so im going to stick with it for now.&lt;br /&gt;&lt;br /&gt;This will display 4 readings on analog 0,1,2 and 3 they are split in to 4 bargraphs sections each with a number indicator and a 7 segment bargraph.&lt;br /&gt;&lt;br /&gt;The empty space between the characters also counts as a reading, and there is a nub on the leading edge of the bar which appears to go "behind" the empty space. 7 segments gives 41 possible readings for the 1024 possible values on the 10 bit analog to digital inputs.&lt;br /&gt;&lt;br /&gt;if you adapted it to use all 16 segments, say for a stereo meter you could get 95 segment resolution.&lt;br /&gt;This code might be too big for a 4k arduino then just get rid of the stuff i have in there for the interrupts (not used for the LCD at all) and i am sure there are plenty of optimizations as well, like using arrays.&lt;br /&gt;&lt;br /&gt;the code is posted on the arduino forum, because blogger does not have a code insert option and i cant be bothered messing about with it right now. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1264215873/0#0"&gt;http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1264215873/0#0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-5169137983412545258?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/5169137983412545258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/arduino-smooth-lcd-meters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5169137983412545258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5169137983412545258'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/arduino-smooth-lcd-meters.html' title='Arduino smooth LCD meters.'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-7498689138634901843</id><published>2010-01-16T19:39:00.000-08:00</published><updated>2010-01-16T19:39:48.249-08:00</updated><title type='text'>DSO nano</title><content type='html'>I have recently purchased and received a DSO nano oscilloscope from &lt;a href="http://www.seeedstudio.com/depot/micro-digital-storage-oscilloscopedso-nano-p-512.html"&gt;Seeed Studio&lt;/a&gt; It is a re purposed mp3 player! anyways the reason i got it was so i can watch the waveform when i am designing devices for the soniccore scope platform, or general audio testing and monitoring. i wanted to put my big scope (cheapo 20 mhz dual trace) where i do electronics, and it took up valuable shelf space in my tiny studio.&lt;br /&gt;&lt;br /&gt;At first it feels rather cheap and plasticy, but once you put in the battery and put on the nice brushed aluminum backplate it feels a lot more solid. also the buttons are nothing to write home about, but for $89 i am not complaining.&lt;br /&gt;&lt;br /&gt;The graphical response is a lot better than i was expecting, i think it updates faster than the monochrome fluke scopemeter i saw, (but i can not be sure without seeing them together) and the display is nice.&lt;br /&gt;&lt;br /&gt;With very low signals you can see the jaggies, however it is to be expected and its a lot better then 8 bit USB pc ocilloscopes. and you can easilly see what is going on. plus it is portable, you do not need a computer, and because it is not mains powered you have a floating ground and it can be connected to anything you would want to get that close to.&lt;br /&gt;&lt;br /&gt;When i was working on the sonicors scope device (yes it is called scope, kind of confusing, but thats not the ocilloscope, but the &lt;a href="http://www.sonic-core.net/en/products/platform.html"&gt;soniccore scope&lt;/a&gt;) i was quite impressed i had an ocillator running at 690 hz and the DSO nano was reading exactly the same frequency. my big ocilloscope cant do that!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_cmcUouqPLaA/S1KDhj3PBnI/AAAAAAAAAEs/D-tWchDGT8A/s1600-h/dsonano.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_cmcUouqPLaA/S1KDhj3PBnI/AAAAAAAAAEs/D-tWchDGT8A/s200/dsonano.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Here it is being used to monitor the waveform for the A2CV project below.&lt;br /&gt;&lt;br /&gt;All in all for the price you can not really go wrong for a beginner or second scope.&lt;br /&gt;you can find these on ebay as well but the price is double!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Disclosure:&lt;br /&gt;By the way i am (hopefully) being given a $10 credit at seeedstudio for posting this. the offer is open for everyone who buys one, even if the review is negative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-7498689138634901843?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/7498689138634901843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/dso-nano.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/7498689138634901843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/7498689138634901843'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/dso-nano.html' title='DSO nano'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cmcUouqPLaA/S1KDhj3PBnI/AAAAAAAAAEs/D-tWchDGT8A/s72-c/dsonano.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-138744075716077482</id><published>2010-01-16T19:14:00.000-08:00</published><updated>2010-01-16T21:34:52.396-08:00</updated><title type='text'>A2CV analog to control voltage project.</title><content type='html'>This is a project which involvs an arduino and some analog circuitry to extract 4 control voltages from an audio signal.&lt;br /&gt;The audio signal is created in soniccore scope device, and hopefully a VST as well.&lt;br /&gt;the purpose is to be able to control voltage controlled devices on analog synthesizers from inside your music workstation.&lt;br /&gt;Here is a block diagram.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_cmcUouqPLaA/S1J9MZDjQxI/AAAAAAAAAEc/YhFVF5BC9Xs/s1600-h/blockdiagram.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_cmcUouqPLaA/S1J9MZDjQxI/AAAAAAAAAEc/YhFVF5BC9Xs/s200/blockdiagram.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;So far i have programmed the arduino, built the sample and hold, and comparator/optoisolator on protoboards. both are tested and working&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_cmcUouqPLaA/S1Khcz5SHxI/AAAAAAAAAE0/psrfs9jWsVQ/s1600-h/snh.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_cmcUouqPLaA/S1Khcz5SHxI/AAAAAAAAAE0/psrfs9jWsVQ/s200/snh.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The way I have programmed the arduino is the general loop is measuring the output voltages and there is an interrupt triggered every cycle which makes a delay for each of the sample and hold triggers.&lt;br /&gt;unfortunately i havent figured out how to crate a timer over and over which would generate its own interrupts, so most of the time the arduino is doing nothing but counting, and only has 1/6th of a cycle to actually do the measurement.any help with that would be greatly appreciated!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1263440852"&gt;Link to question and code on arduino forums.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The analog and digital sides are kept as seperate as possible to avoid noise passing from the digital circuitry to the CV outputs.the opto isolator for the comparator signal, the sample triggers on the LF398 ICs are floating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-138744075716077482?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/138744075716077482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/a2cv-analog-to-control-voltage-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/138744075716077482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/138744075716077482'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/a2cv-analog-to-control-voltage-project.html' title='A2CV analog to control voltage project.'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cmcUouqPLaA/S1J9MZDjQxI/AAAAAAAAAEc/YhFVF5BC9Xs/s72-c/blockdiagram.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412336748115576497.post-5868782046194080733</id><published>2010-01-16T18:56:00.000-08:00</published><updated>2010-01-16T18:56:33.476-08:00</updated><title type='text'>Added a misc blog</title><content type='html'>This is a seperate blog from &lt;a href="http://neutron-sound.blogspot.com/"&gt;My Physical Guitar Synth&lt;/a&gt; For showing miscellaneous other projects.&lt;br /&gt;Just to stop me from spamming forums so much with my photos :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3412336748115576497-5868782046194080733?l=neutron-synth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neutron-synth.blogspot.com/feeds/5868782046194080733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/added-misc-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5868782046194080733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412336748115576497/posts/default/5868782046194080733'/><link rel='alternate' type='text/html' href='http://neutron-synth.blogspot.com/2010/01/added-misc-blog.html' title='Added a misc blog'/><author><name>Neutronium</name><uri>http://www.blogger.com/profile/16636463575190759850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
