MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

Arduino General Discussion Thread
MUFF WIGGLER Forum Index -> Music Tech DIY  
Author Arduino General Discussion Thread
EATyourGUITAR
Here it is. Discuss all things ARDUINO. the best information from this thread will be added to the wiki. I don't know exactly how that happens but a mod told me that it can be done. I'll kick off the discussion with this list of shields at http://www.shieldlist.org
What shield do you use? Got any good books? Whats your favorite synth related Arduino project?

I want to buy a shield soon. I'm looking at the uno but I'm not sure yet.

http://www.arduino.cc/

It's peanut butter jelly time!
Jarno
Excellent idea!

Been looking at Arduino's myself, they are pretty easy to program, tons of IO.

Bought a Uno and two Nano's. Especially the Nano is very appealing, you only need a simple board with some buffering, plonk on a Nano and you can use it for anything you'd like. I think the Uno is a bit too large for this.
Had a look at the ArdCore as well, but I do think that's a bit too barebones.

First think on my agenda is to do a masterclock with Arduino, but I would also like to do a sequencer (maybe a parametric one like the one Tombola did).

One thing that is not completely clear is how to incorporate a (higher than 8 bit) DAC or ADC, but I'll get to that in due time, a "walk before you run" kind of thing.
alphabetter
My Electronics for Artists course includes some horrible square-wave organs built around an Arduino.

I am just doing some experiements with PWM output. http://lockerz.com/s/160902073
Anyone know what a good filter to use after a 1 bit PWM output is to get it back to something that looks OK? Third order Bessel is too whimpy. Going to try fourth order Butterworth when I get some time.

Overall the Arduino is great as an experimental platform though not really well adapated to audio without external components.
robotfunk
20objects has PCBs available for Ardcore, a project that allows you to embed an arduino in a module

http://20objects.com/ardcore/
Jarno
Like I said, a bit too barebones IMHO. Arduino has a ton of IO and the ArdCore really only has 2 analog ins, and 4 digital I/O, while the Arduino has 8 analog ins and 14 digital I/O.

But it is an almost off the shelf solution, probably a pretty quick build.
x2mirko
Ahh, Arduinos. They are absolutely awesome. Always wanted to get into microcontrollers since i did a practical course at the university, but never did it until i found out about arduinos. Such a nice learning curve grin

By now I have build a lot of stuff using arduinos. As for synth stuff, i've only build two things:
1. An Arduinome (check this and this. Build me the equivalent of a 128. Was my first bigger project and, well, i kinda screwed up the enclosure. It's all a bit wobbly, but works perfectly fine. It's one of the lower entries of my to-do-list to fix this and make it a really sturdy enclosure.

2. A 4x8/2x16 step sequencer. Designed it completely by myself (which is not saying much as it really isn't complex at all lol ). It's essentially one arduino and a few multiplexers. The arduino doesn't handle the voltages, it just does the logic.
It consists of two completely independent units of 2x8 sequencers. Both have a clock and reset input. Each row has it's own output, but each pair of rows shares another output that first outputs 8 steps of the first, then 8 steps of the second row, alternating between the two. That way, i can use each of the units as an 16 step sequencer instead of 2x8 steps.
Apart from that, there's the brain switch, which turns off the clock and reset inputs and turns on the brain of the arduino, making it listen to a serial connection via usb for easily syncing it to my daw and also for doing more crazy stuff like adressing single steps or using different patterns for the sequencer (reverse, pendulum and so on). First i wanted to build all that into the hardwarepart of the sequencer (adding all kinds of switches for different modes of operation), but i figured it would be more fun to have a very simple interface. Also, i could just add an expander which adds those options, if i really wanted to.
One thing i really misjudged were the leds i used. Those things light up my whole room when it's dark. Also i think i'd go blind if i'd look right into them lol
EATyourGUITAR
what do you think of the pro mini 328? I like the size and price but I'm concerned about starting projects on the UNO and moving them over to the Arduino Duemilanove 328 hardware. I really like the pad per hole universal shields. I don't like the on-board 2.1mm power headers. synth modules have totally different power headers. small finished products get a chassis mount 2.1mm power entry module anyway. I have numerous 9.5V power supplies that were for my guitar pedals. most shields have regulators that let you use anything from 7v to 12v but I may want access to my 9v rail for other stuff. I was thinking about desoldering the power socket from the shield.
x2mirko
Jarno wrote:
One thing that is not completely clear is how to incorporate a (higher than 8 bit) DAC or ADC, but I'll get to that in due time, a "walk before you run" kind of thing.


It's actually pretty easy. There are libraries for both SPI and I2C for the arduino and you really don't need to do a lot to set up the communication with a DAC/ADC as long as you make sure that the one you buy speaks one of those protocols.
EATyourGUITAR
I don't know anything about SPI but I have looked at using I2C DAC & ADC before when I almost made a bit crusher. a friend of mine made a voltage controlled bit crusher in a DIP8 PIC. after I saw that I gave up on the I2C version. I see some people add ram to the arduino to get longer delay times for audio effects. I have no idea what is compatible or what libraries they use to add ram.
Jarno
Hey x2mirko, that sequencer is pretty damn sexy!
mckenic
Im not trying to be a prick here and PLEASE take this with a pinch of salt/ignore completely if you already know this... I think the terminology is getting a little mixed up.

The Arduino is a programmable board. I run wires out of mine to a gutted Wah pedal and into Max4Live - there I use it as the Wah controller in Guitar Rig. The latest, most up to date board is the Uno. The older board is the Duemilanove.

Shields are used to build projects and they sit atop the board - I have built Arduinome, Drum trigger, Wave File player and Midi/CV shields. My Wave player wont work as more grunt is needed so it wont run on my Duemilanove board and Im hoping to pick-up an Uno board asap.

I think Arduino boards are FANTASTIC to try stuff out - they got me into building DIY kits (Sammich/x0x/Flight of harmony etc.) but because of that there are LARGE gaps in my DIY knowledge. Power/multiplexing etc. I know nothing about as its all done by an Arduino and a Shield hihi

Arduino & Max/Msp is like Pizza & Coke for me! They go wonderful together!

So again, sorry if ya'll already know all this - please ignore and Im not trying to be a dick!
robotfunk
Jarno wrote:
Like I said, a bit too barebones IMHO. Arduino has a ton of IO and the ArdCore really only has 2 analog ins, and 4 digital I/O, while the Arduino has 8 analog ins and 14 digital I/O.

But it is an almost off the shelf solution, probably a pretty quick build.



It has 4 analog ins, you can choose either a pot or a CV input for each. I'm assuming 8 digital pins are used to drive the DAC, that does not leave you with too many digital pins (which are not created equal)
Jarno
Thought you needed only a couple of pins to drive the dac.

By the way the neutron shield modulator seems great as well, wonder when it's for sale.
x2mirko
@mckenic: I didn't really see anything mixed up in the earlier posts, but it's still good to have a little definition in the thread, i guess - after all, it helps to make sure everyone means the same thing when talking about these things thumbs up

mckenic wrote:
The Arduino is a programmable board.


If one wants to be really precise, the name arduino covers the hardware (as in: the board), the software (IDE and programming language) and the documentation/learning ressources. If you ask the developers, it even includes the community. It's really all meant to be one unit.

@Jarno: Thanks! it's a lot of fun and probably my best-executed diy-project as of yet. Even though it's pretty simple, i'm very proud of it w00t
x2mirko
Jarno wrote:
Thought you needed only a couple of pins to drive the dac.


Depends on how you communicate with it. The simplest solution is to send every bit to the dac on a seperate line - which needs ridiculous amounts of digital pins for, say, a 14-bit dac (14 pins). With protocols such as spi and i2c, the bits are transmitted serially and therefor need a lot less lines (if i remember correctly, it's 3/4 pins for spi (depending on the variant of spi you are using) and 2 pins for i2c. I'm pretty sure one could design a adc/dac shield for the arduino which allows more analog ins/outs that the ardcore, if that is the goal.
I guess the ardcore designer also had cost in mind - having all the options of digital and analog ins/outs needed for a generic project while keeping the cost at a nice level. adc/dacs are pretty expensive in comparison to most other parts - at least at high resolutions.
mckenic
Yup of course! thumbs up

I prolly needed to do that in my head as I was getting a little confused thumbs up

Really, really cool sequencer BTW mate! Multiplexers confuse the hell out of me! Although the Collins book is helping!

At the moment, Im using the PWM out and some mad equations posted here somewhere to get crazy pitched madness - I'll try find a link. I'd LOVE to get the variables controlled by a pot or something!
EATyourGUITAR
mckenic wrote:
So again, sorry if ya'll already know all this


some of us know already but all the information is appreciated. there are people of all skill levels reading and contributing to this thread. that is the best part.
thumbs up
sduck
It's all greek to me, so be liberal with your definitions and explanations and circles and diagrams please. I want/need to know more about these. Any web pages with arduino for dummies type stuff?
x2mirko
sduck wrote:
It's all greek to me, so be liberal with your definitions and explanations and circles and diagrams please. I want/need to know more about these. Any web pages with arduino for dummies type stuff?


In my opinion, the best way to get started is buying a board (and one of the many arduino-experimentation/beginner kits that are available from different sites) and just starting with the learning-section on the arduino-page. The whole page is really good for learning hands on.
Neutron7
Sorry about the horn tooting!

how about a board that:
takes an arduino UNO or clone.

Can have 16 controls, which can be pots, switches or (up to 8 way)multi way switches.
has an option of PWM 10 bit or 12 bit SPI DAC 2 chan out.
up to 8 LEDs
does level conversion and shifting for 2 CV outs and 2 CV in
output filter can be customized.
has 2 gate/trigger ins/outs
MOTM/EURO/.com power connectors
onboard regulator, protection etc.
MIDI in/out
can take aditional shields, and has an amplifier to bring them to synth level.



I finally have someone helping with the documentation for it,
Jarno
Very nice! How, when, how much?

Just started doing a board of my own (Arduino clock with LED readout).
mckenic
PLEASE - toot away!

I need to understand exactly how I would use your board Neutron7 - but my mind is racing already with possibilities!
Neutron7
you could use it for anything you want to modulate your synth with.

the outputs and inputs have adjustable gain, as well as offset. so you can
shift output from +-5v to 0-10v and reduce and ofset the input CV to get full scale on the arduino input from synth CVs

on the one in my modular at the moment, i have
selectable by switch:

1 dual ADSR with linear or "capacitor" output and retrigger
2 envelope controlled LFO (level and/or rate)
3 time-level type envelope
4 burst generator (outputs a fixed amount of pulses on a gate)
5 adjustable low frequency noise / sample n hold.
6 chaos generator (8 kinds of chaos)
7 8 stage voltage sequencer
8 dual LFOs with adjustable sync-phase

I have settled on 8 pots, 1 8 way selector switch and 4 toggle switches as the "standard" which my programs will work with, but you could modify the program to have twice as many controls(with 2 control boards instead of 1), if you wanted to try a 16 stage sequencer, for example. or not use the multiplexor board at all, for something with just a couple of controls.

what it can not do very well with current arduinos is do more than a basic audio rate oscillator or sound processor. there is a new arduino coming out with a 98 mhz 32 bit ARM chip though, so i expect that to change in a big way!
lazerkind
I did a basic dual osc module with my arduino.
Sounds rather cool in a lofi way.
7CV in + 11 knobs and 3 switches to control various modes, tracking and octaves.
Some demos.
Dual Sine FM
[s]http://soundcloud.com/lazerkind/dual-osc-fm-demo[/s]
Dual Saw FM
[s]http://soundcloud.com/lazerkind/dual-osc-demo-ii-saw-mode[/s]
WTF!
[s]http://soundcloud.com/lazerkind/dual-osc-demo-iii-nasty-mode[/s]
x2mirko
lazerkind wrote:
I did a basic dual osc module with my arduino.
Sounds rather cool in a lofi way.
7CV in + 11 knobs and 3 switches to control various modes, tracking and octaves.
Some demos.
[s]http://soundcloud.com/lazerkind/sets/dual-osc-demos[/s]


cool stuff. Did you use external adcs for the cv inputs? I've played around a bit with an arduino as osc, but didn't manage to get the tracking right yet - it felt like that was a problem of accuracy of the internal adc, but i wasn't sure about that - might also just have been me being stupid wink

also: is the source code available somewhere? would love to check it out smile
lazerkind
No I used the standard 10bit arduino adc's.
I never got it working stable with the fastest settings so I settled for a predivide of 16. With that I got 5 octaves of tracking, and it's fast enough for me. The fast setup just sounded out of tune all the time.

I need to clean up my source a bit before posting anything.
But basically I'm doing dual DDS synthesis with various modulations.
This was my starting document.
http://interface.khm.de/index.php/lab/experiments/arduino-dds-sinewave -generator/

Edit:
Oh, and I use a dual 8bit dac for output. I simply like gritty stuff twisted
When the next arduino comes out I'll probably do some 24bit audio instead.
x2mirko
lazerkind wrote:
No I used the standard 10bit arduino adc's.
I never got it working stable with the fastest settings so I settled for a predivide of 16. With that I got 5 octaves of tracking, and it's fast enough for me. The fast setup just sounded out of tune all the time.


ah, that might actually be my problem grin
I'm pretty sure i'm using the fastest settings, too. I'll have to check that out when i get back home.

also, thanks for the link, will check that out smile
Yeuky
Arduino's were my first real microcontrollers, but as time passes on they appeal to me less and less. The last project I finished a few days ago was a nightmare, my first to use an UNO aswell. The instability of the new serial chip is ridiculous (Or perhaps I was just unlucky). I've come to see many better solutions, i.e the new NXP DIP ARM32 chip, the BeagleBone, Maple, Netduino (Mmmmm .Net!) etc. If you look around, you can find much greater power for the same price (Raspberry Pi anyone?) I think the days of 8-bit microcontrollers are coming to a close, and ARM32 will fill this void.

For mere faffing about, and the benefit to projects that the arduino's ubiquity provides, I'll still keep on around.
EATyourGUITAR
could you explain to me how this ARM32 works? do you still code in C using arduino libraries? or is it all assembler?
Neutron7
The arduino "due" is supposed to work the same as arduino people are used to. Atmel is working with them. some third party libraries will take longer to get working, but i expect it wont be long for the most popular ones.

of course the whole thing could be vaporware!

also microchip claims they have arduino compatible 32 bit boards, but they are being really slow about releasing anything that lets you do more than basic things.
Yeuky
EATyourGUITAR wrote:
could you explain to me how this ARM32 works? do you still code in C using arduino libraries? or is it all assembler?


You can program them in many of the same ways as you can an AVR. You can do assembly via JTAG, compile C code, whatever.

There are a number of different approaches to programming in the more accessible products, however.

The 'mbed' project uses an online IDE, and you just save the completed program on it, just like it was a USB thumb drive.

There is even a project called 'maple' which uses the arduino IDE and language, and is thus compatible with most of the libraries.

What I believe is the better solution, however, is the Beaglebone. You simply plug it in via USB, it sets up a network connection. You can then navigate to it's IP address in your browser and you have full access to the IDE. The board itself runs a variety of Linux that makes all of this possible, just to give you an idea of how much more powerful it is.
EATyourGUITAR
Linux and penguins rule. It would be sick to have a web page controlling the modular. I see the wifi and ethernet stuff people are doing
Neutron7
I have a maple, but for some reason i couldnt get the driver to work in windows7 64, (that was a year ago, though maybe things have changed.)

if you want a full blown mini computer with linux, you could get a beagleboard or something like that, but soon you might as well just get a netbook or something smile i like the knobby panel with the little computer hidden inside pretending to be a massive circuit board.
EATyourGUITAR
ok so the beaglebone is $90 and the pro mini is $20. the beaglebone can run ubuntu with wifi and DVI out. there is a youtube video. totally sick. but @ $90 its not even cheap or small. I can't imagine why I would need all that anyway. someone brought up the point that it can be used for home lighting control or security systems. why not an alarm that blasts some awful sound from the modular when people break in.
EATyourGUITAR
I just noticed the old arduino is $23 now with free shipping

I think I'm just gonna buy it since it is so cheap. I know everyone likes the new UNO but my goal is to learn the pro mini so I'll start on the Duemilanove.
Neutron7


here is a 4 oscillator "synth" done on an arduino mega, just a bit after i got back in to synthDIY a couple of years ago and got my first 2 modules smile

It is doing envelopes and lfos, detuning and modulation etc and 4 wavetable oscillators.

it uses an external eprom with some "borrowed" and home made wavetables.

there are 16 wavetables, each with 16 waves 256x8bits.

after the eprom are 2 8 bit DACs, and the envelope is done by varying the DACs vref with a filtered PWM output.

I used parallel DACS because serial (even SPI) was too slow for the program to still work, (and i needed the arduino mega because it had enough pins for all that.)

another filterd PWM output is used to send a CV to the external filter, as well as a gate output for external ADSR (for the filter)

I have a nicer 5u panel version of this synth, but i stole some parts from it, i think i will alter the program to do 4 channels MIDI, 4 separate oscs with different pitch bend and CV outs, so i can run the continuum in to it.
Neutron7
EATyourGUITAR wrote:
I just noticed the old arduino is $23 now with free shipping

I think I'm just gonna buy it since it is so cheap. I know everyone likes the new UNO but my goal is to learn the pro mini so I'll start on the Duemilanove.


I use em for all sorts of things now, they are cheap enough that you can save a lot of time, even if you only use a tiny amount of its functions. and if the one you got is PRE uno, you can easily program the bootloader in to an atmega 328 with it,($4) then swap it with the one in the arduino you dont even need a programmer. just 6 jumper wires.

then you just need a crystal and a couple of other compinents and you can run your "arduino sketch" in a circuit for permanent use.

a lot of times though the thing i build is not used for very long, (test setups etc) so it is nice to have the arduino back to do something else with later. and not bother with all that hassle.
BananaPlug
Quote:
how about a board that...
thumbs up
The multi-function utility module you made with it is something I always thought would be a great Arduino project. I started an Arduino project about dividers and logic but the user interface was getting to be a real bottleneck (too many features) so I put it aside.
Great thread. That BeagleBone is nuts. It's got Linux. I could program a module in AWK and say it's steampunk hihi
Neutron7
BananaPlug wrote:
Quote:
how about a board that...
thumbs up
The multi-function utility module you made with it is something I always thought would be a great Arduino project. I started an Arduino project about dividers and logic but the user interface was getting to be a real bottleneck (too many features) so I put it aside.
Great thread. That BeagleBone is nuts. It's got Linux. I could program a module in AWK and say it's steampunk hihi


thats why i kind of standardized on the interface, make it as versatile as possible to fit in the space, then work with what restrictions you made on it. otherwise you could go crazy with different versions with different amounts of controls and so on.
YashN
I'm using my Arduino in a few different ways:
- experimenting with sound synthesis: oscillators, PWM outputs, filtered
- sequencer of CV signals for sending to my modded analog synths (currently being tested on a Korg Poly-800 and a Korg DW-8000)
- experimenting with MIDI processing

Neutron7 wrote:
1 8 way selector switch


Which part are you using for this, Neutron7, and where did you get it?
EATyourGUITAR
someone is buying me a beaglebone when they are released.
This is fun!
anyone know how to add wifi? I saw the ubuntu with the Dlink USB wireless. is there a better way?
EATyourGUITAR
YashN wrote:
Neutron7 wrote:
1 8 way selector switch


Which part are you using for this, Neutron7, and where did you get it?

can you just use this?

http://www.smallbearelec.com/Detail.bok?no=477

and a resistor ladder hooked up to one analog IN. you just quantize in software.
glacial23
I've done a few Arduino projects of my own design, mostly using the Modern Device RBBB, due to its small form factor:

-An 8-step analog-style MIDI sequencer.
-a "programmable module", using a quad DAC for analog outputs (I haven't really documented this, but it's similar to the Wiblocks NB1A, sans RTC chip and with Zener diode protection on the inputs.)
-a clock-pulse-to-MIDI clock adapter.

Current Arduino projects in the works:
-MIDI retrofitting an MXR185 drum machine.
-A sort of video synth using the Gameduino shield. So far all it does is fade between random colors, but I plan to make a shield that stacks on top of it to provide analog inputs and whatnot...
Neutron7
EATyourGUITAR wrote:
YashN wrote:
Neutron7 wrote:
1 8 way selector switch


Which part are you using for this, Neutron7, and where did you get it?

can you just use this?

http://www.smallbearelec.com/Detail.bok?no=477

and a resistor ladder hooked up to one analog IN. you just quantize in software.


I think it is exactly that switch, i got 100 of them on ebay for $14 or something silly

it is a resistor ladder, but it comes before the multiplexer, Thats just for lots of controls though, and is more or less the same as using an analog in.
EATyourGUITAR
mouser has a shipping date for the beaglebone. December 15th, 2011. they are open for pre-orders right now if you want it to ship automatically when it comes in.
Neutron7
700 mhz? woah

i think ill pre-order one for sure.
Found some info:


Seven 100K sample per second A to D converters are available on the expansion header. (12 bit)

NOTE: Maximum voltage is 1.8V. Do not exceed this voltage. Voltage dividers
should be used for voltages higher than 1.8V.

In order to use these signals, level shifters will be required. These signals connect direct
to the processor and care should be taken not to exceed this voltage.


There are up to eight PWM outputs on the expansion header.

• High Resolution Outputs- up to 6 single ended.
• ECAP PWM- 2 outputs
<<what is that?
EATyourGUITAR
digikey has them in limited quantity right now. only 132 in stock

and here is the manual with the specs
EATyourGUITAR
I was reading the beaglebone manual yesterday. it says 66 GPIO. I'm pretty sure these can be any digital IN or OUT. that is insane.

notice how the beaglebone does not have VGA out like the beagleboard xm. the beagleboard is $250. too much money. so I found this pandaboard for $180. at this point we are wayyy past the $20 arduino. but we are maybe double the price of a Duemilanove + Gameduino shield and about 100 , maybe 1000 times the computing power. full size SD makes it cheaper to get 32GB storage on board. think of the applications for video synthesis or video processing. it has touch screen support. you could build a touch screen groovebox analog synth. wiimote support. even sensor bar support. there are youtube videos of people using the xbox kinect on the beagleboard. considering the price of the buchla lightning, the $100 kinect + $90 beaglebone is a very attractive development platform for gesture recognition and musical instruments.

EATyourGUITAR
EDIT
schmidtc
This ones $39 and built to wiggle. Arduino and Maple libraries for delay/vco/flanger etc. are open source downloads.

http://www.openmusiclabs.com/cart/index.php?main_page=product_info&cPa th=11&products_id=26&zenid=6j1gilnq9pgug78uqkgtqhosr5
Neutron7
Beaglebones are available at mouser now, a bit cheaper than digikey.

they only have 17 of them now though.

http://ca.mouser.com/ProductDetail/BeagleBoard/BB-BONE-000/?qs=ojrz6AC P3aRSdMehdG1Csw%3d%3d
osterchrisi
I use these a lot: JeeNodes
Basically an Arduino (well an ATmega to be correct) with a radio, so you can send data between different JeeNodes and/or a JeePlug which is a radio transmitter you can plug into your USB-port. It's freakin brilliant.
EATyourGUITAR
from memory I think they had aprox 2300 on order and now it says 17 in stock 2200 on order. that means beagleboard is shipping very limited quantities of the beaglebone to retailers in the first production run. I would like to see an ultra mega awesome 8 channel DAC shield for the beaglebone.

in other news, I found this sweet codec shield. it can go up to 88Khz/24bit

schmidtc
Yea, that's the one. I've got on of their microdecs in my modular. I'll get a video up soon.
Neutron7
Buying one to make sure it can be used on shield modulator smile
nickciontea
http://brownshoesonly.com/2011/04/05/maxon-ad-999-delay-pedal-hack/

EATyourGUITAR
I found some interesting information about using I2C DAC's on the beaglebone. the beaglebone has two IC2 interfaces. Texas Instruments makes a 8 channel 12bit DAC called DAC7578. digikey part 296-27740-5-ND in 16-TSSOP. then I found a site that will make it in a DIP16 package using the digikey part for a small fee. Adafruit has a beaglebone proto cape (like a shield). you would still need another board with all the TL074's to amplify and offset your signals. the beaglebone also has 66 general purpose I/O to use for gate in and gate out. there are also analog inputs built in. think of the possibilities.
Neutron7
I think it would be better to use an SPI DAC, especially with the speed of that board. (some DACs can do both)
EATyourGUITAR
I think it only has one SPI. I could be wrong. anyway, I read a lot on SPI and the multiplexing or daisy chaining or whatever. it just seems way over my head to program all this junk in software. having a dedicated I2C line to each dac on just 2 wires seems way easier to code. I really don't need 16 channels of analog. maybe I could just use one 8 channel DAC on SPI and keep it simple. there is also analog I/O onboard. maybe I should just start with that? with SPI and I2C DAC's as modules in DIP16, I was hoping I could use them on the breadboard and reuse them with different micro controllers.
Neutron7
It's not really that hard, you share 2 or 3 (depending if its an output or i/o device ) pins between all SPI devices, and any of the other free pins as a chip select.

You enable the chip select for whatever device you want to communicate with, send / recieve data, then disable chip select. The actual sending and receiving of data is much like serial, but can be faster.

Some devices might use other pins as well, like a display might have another pin for data/setup mode.
EATyourGUITAR
what confuses me is this
Neutron7
You don't have to do it that way, just have a different slave select (same as chip select) for each one. It wastes a few more pins, but it's easier.
JJ
I think you should check this out:

EATyourGUITAR
JJ very cool. there are so many awesome things happening in that video. I will do some reading on that copperduino and asylum.


Neutron7 wrote:
You don't have to do it that way, just have a different slave select (same as chip select) for each one. It wastes a few more pins, but it's easier.




I only see one pin for SS. how do you do it?
Neutron7
Got a beaglebone today and managed to make it blink an LED.

Its very cool and all, but its going to need a lot of work.

1: it takes a long time to boot up with the linux and IDE and everything (actually longer than my pc with an SSD) compared to arduinos almost instant on.

2: you cant just start it without USB connected and have your "sketch" run yet so its not even useful for us yet. (this will be fixed of course, but a lot of stuff is not ready)

this weekend i will test the timing of a 1 ms square wave and see if it is jittery at all. baby steps smile

hopefully they will have a "boot in to" option or something which bypasses all the linux and other mumbo jumbo (but how do you get out of it?

there are other IDEs though, i would prefer one based on my PC where i just put the program on the board and run it standalone. i know there are certain advantages, like being able to run it in your browser and not worrying about java and other OS related stuff.(and probably others)

anyways, still a LOT to learn about it.

oh yes, and the reason it is that shape, it comes with an altoids tin which it fits in perfectly.
EATyourGUITAR



looks like the adafruit proto cape will fit in the tin.



this one is opensource

you do not need to program through the web interface and you also do not need to use the linux bootloader. without the linux bootloader, it should be fast as shit. only problem is that it is not an arduino. you could run an arduino bootloader for ARM A8 but I don't even know what you need or how.

EDIT, I guess you can program by changing the linux image. if you are good with linux, it should make sense. I know people use ubuntu but tinycore is probably way smaller. I'm in the chat right now and there are some people saying beaglebone is alpha or beta or whatever. I think all this junk will be sorted really quick with the community and texas instruments behind it.
Neutron7
hmmm..... not in a million years unless they make double Decker tins.

You need a bit of space the the bottom for the SD card and USB, and something to hold it down, after that there is about (guess) 0.15 inches left to close the lid.

if you had no headers on the protoshield then you could fit only SMD or resistors etc, no tall components or even DIP ICs.

besides, cutting neat square holes in a tin is not fun.

i think the tin is just a place to keep it safe smile
EATyourGUITAR
http://narcissus.angstrom-distribution.org/

select beagleboard from the menu. this lets you compile a custom linux bootloader (rootfs) for the beaglebone so you can get it really small and lightweight.
JJ
There's not that much info on the Copperduino yet, but come January and there will be...
EATyourGUITAR

from the arduino forums

8 voice polyphony midi synth on the arduino duemilanove. not bad for a $23 microcontroller.
AlyseumSupport
The CopperLan capable board that is showing up in some Alyseum MS-812 videos is now available.

On the Copperduino web site, there are setups using various shields such as a polyphonic synth, a MIDI interface and various controls and displays.

EATyourGUITAR
MadGav wrote:
The concept of ARDcore is interesting, but I've no interest in dealing with a low performance 8-bit chip. The Arduino Due is now just about out, and while not big on grunt looks like a leap up in CPU power, or there are however many other ARM chips around.

My vain wish would be a Euro module, 4+ DC-coupled inputs, 2+ DC-coupled outputs, ARM based so it software could be C/C++ and a simple framework to allow processing code to be integrated with the hardware.

I wait in hope smile I'm pretty sure with something like this I could crank out a bunch of interesting code in fairly short order.

(Prompted by mention of CZ-alike elsewhere, for which I have existing code)


reposted from another thread. moving it here.

I think its time to discuss the new arduino Due and the 32bit arm M3 running @ 84Mhz. is it pin for pin compatible with the neutron shield modulator? will the ardcore code examples be ported using the new arduino IDE? is anyone interested in the GCC toolchain for ARM M3? also, what are you planning to do with the extra channels of ADC and DAC. the due is reported to have 12 channels of 12bit ADC and 2 channels of 12bit DAC. there are also 12 channels of PWM output that can be filtered for use as analog CV and audio outs. the arm M3 datasheet says 16 channels of ADC @ 12bit are possible so I wonder if this can be done using alternative IDE's.
MadGav
I've mailed Open Music Labs to ask about plans for their Audio Codec Shield and Due, 2x2 high quality ADC/DAC plus the onboard ADC/DAC ought to be pretty useful?
EATyourGUITAR
yeah I always thought the 8Mhz arduino was a little weak to do anything fancy with the audio codec shield. the performance increase of the 32bit 84Mhz should be huge for 2ins x 2outs. I still don't have the pinout for the due so I don't know if the SPI has the same pinout. the due has better ADC and DAC so its not exactly hurting without the high quality codec. the libraries provided for the audio codec shield are for arduino and leaf labs maple. the mega is still not supported. I have no way of knowing if the arduino libs for 8bit will compile fine on the new 32 bit arduino. you may be fine or you may need to rewrite the libraries from scratch. it all depends on if you want to be on the bleeding edge with more work or just jump into something that will definitely work like the leaf labs maple + audio codec shield.

read the wiki for the audio codec shield
http://wiki.openmusiclabs.com/wiki/AudioCodecShield
MadGav
Response from Mark @ Open Music Labs about their Codec Shield and Due:

"we havent looked into the due yet, but will be doing so soon."
Rick Burnett
I just purchased a Due so it should be coming in after a few days. Like most people, I really like the Ardcore, but need more inputs and outputs for what I want to do. Most of my circuit work so far in preparation was for the Mega doing less, then someone turned me on to the Due, so now I am reworking my designs to work with 3.3v.

The pinout seems similar to the Mega to me, but I did not look too closely at it. What I REALLY like is the DACs that are built in. I wanted to do 2CV/AUDIO in and 2CV/AUDIO out (meaning, I can use them for either) and then do a bunch of gate in and out signals.

I do want to possible create 2x more CV outs, so I will be looking into a few different DAC solutions. I guess it depends how easy it is to write my own code. With so many digital outputs, I'd love to just hook two in parallel with different chip selects and write them in a row. Given the ARM is 32-bit, what would REALLY be nice is just creating a 32-bit piece of data that I can push out with one clock cycle to both of them, not sure how deep you can get in the arduino/ARM land for doing this sort of stuff.

Has anyone looked into circuits for taking 0-3.3V and massaging it for audio and/or CV? I figured I'd bring the level up with an opamp and then just create another offset/attentuate circuit on the outputs so have the most freedom.
krz
Just mentioning...
The guy at mutableinstruments.net uses
Arduino for most of the projects/kits/builds.
YashN
krz wrote:
Just mentioning...
The guy at mutableinstruments.net uses
Arduino for most of the projects/kits/builds.


No.
BenKissBox
krz wrote:
Just mentioning...
The guy at mutableinstruments.net uses
Arduino for most of the projects/kits/builds.


You are wrong.
Using the same model processor does not mean that you use the same underlying design. Mutable stuff has nothing to see with Arduino.
Jarno
Oh no, we've been misguided for two years! hihi

On a serieus Note though, I am looking to use an Arduino as the brains for a programmer for a sequencer. Just like a serge, archangel etc.
The idea is to use fsr's for keys and then some logic in the form of the arduino.
Anybody know some example projects?
YashN
There are a lot of Arduino-based sequencer designs on the web, both for MIDI sequencing or for CV/Gate, just search for them.

It's actually quite easy to do.
Jarno
Sequencers, yes, but keyboard scanning?
(Should have been more specific)
YashN
http://lmgtfy.com/?q=Arduino+key+scanning

Tons of info.
Nantonos
YashN wrote:
http://lmgtfy.com/?q=Arduino+key+scanning

Tons of info.


Tons of info and relevant info are not the same. Yes, lots of info about reading 4x4 numeric keypads, or people asking questions on forums with no answers/wrong answers/"ok fixed now" dead-end followups. Some info on scanning (music) keyboards, often with a fixed velocity or a promise to improve that later but then no update. Etc.

To answer the actual question: on Open Music Labs, first read How does a MIDI keyboard work? (non-MIDI keyboards can work the same way). Then look at latching multiplexers to scan a keyboard.

The Arduino forum tends to have a lot of bad info and dead ends but this thread is interesting. Over on the Teensy forum, Minimal MIDI keyboard and USB-MIDI to Digital Pin are helpful threads.
YashN
Yes, OpenMusicLabs is a great resource, I especially like the articles which go quite in-depth on some subjects.

About 'bad info, dead ends, no updates', the point about Arduino libraries and the hardware/firmware and IDE as well as the community usually sharing its code is that you can add your own code easily: the whole setup was originally planned for non-coders, like artists, etc...

On the other hand, not first looking for the vast amount of info or expecting other people to do everything for you is just laziness.

The point is: if it doesn't exist, do it yourself.

The Arduino example sketches and the online documentation are a great start. PWM + rudimentary filter for CV, and callback example for MIDI library v4 together with Hairless Serial MIDI bridge gets you quite far. The rest is multiplexing pots, and perhaps sending messages to an LCD.
Jarno
Nantonos wrote:
YashN wrote:
http://lmgtfy.com/?q=Arduino+key+scanning

Tons of info.


Tons of info and relevant info are not the same. Yes, lots of info about reading 4x4 numeric keypads, or people asking questions on forums with no answers/wrong answers/"ok fixed now" dead-end followups. Some info on scanning (music) keyboards, often with a fixed velocity or a promise to improve that later but then no update. Etc.

To answer the actual question: on Open Music Labs, first read How does a MIDI keyboard work? (non-MIDI keyboards can work the same way). Then look at latching multiplexers to scan a keyboard.

The Arduino forum tends to have a lot of bad info and dead ends but this thread is interesting. Over on the Teensy forum, Minimal MIDI keyboard and USB-MIDI to Digital Pin are helpful threads.


Superb, thanks! Some reading to do hihi
pre55ure
Jarno, I'm currently working on an atmega based sequencer. I've spent quite a bit of time over the past couple of months getting everything up and running. I've you need help with with something specific- send me a PM and I might be able to help you avoid some of the dead ends I went down.

thumbs up
Jarno
thumbs up

A lot of rounding of of other projects to do, and I will need to do some prototyping of the touch circuits (NAND didn't work too well). But, thanks! Much appreciated!
guest
@Jarno - do you want to read in the analog voltage level of the FSRs and play these back out? how many FSRs do you want to use? how many outputs would you want?
Jarno
I did a simple layout for a fsr controller and found the touch sensitivity not that great so Thinking of probably using them as switches only. But I also tried capacitive touch a while back, a opamp based switch I built worked really well (probe wah clone), but I recently tried the paia circuit and another name based circuit, and those didn't work to well.
Thinking of using about 8 pads/switches/sensors.
Still plenty of other projects, but I'll probably prototype some building block circuits for this.
guest
Jarno wrote:
I did a simple layout for a fsr controller and found the touch sensitivity not that great...


FSRs have a non-linear response, they change resistance really fast at first, and then not so much later. if this was the issue you had with them, you can use them with an inverting amp to linearize the output. check out the circuits at the bottom of this page:

http://www.openmusiclabs.com/learning/sensors/fsr/

for circuits with +/-12v rails, you can just short the + terminal to ground, and the output will go from 0v to 12v when pressed.
Roy72
Hi,

Sorry for hijacking an old thread - but I'm having trouble getting my Mac (10.10.4) to link up to the Seeeduino board in my MengQi voltage memory to update it. I've tried downloading the FTDIUSB drivers but it hasn't made any difference - any ideas?

Cheers,

Roy
LesHall
Hi, new here, from electro-music.com, not getting much response there as the traffic seems to have died off so I'll take the plunge in here:

Y a
a
a
a
splash!

Just recently I took on a new Arduino project. It's based on using the ATtiny84 chip to implement a lot of synth functions and crazie functions as well. Today I tried to create a CV2F with a sampled input, some config switches, and a square wave output. It worked just fine in basic form after some time wrestling with the lack of tone() function, and I just added controls and compiled it working - need to do a quick test on it tho.

The idea is to make all kinda modules so a Function Generator module would take care of converting square to sine or saw or ramp or whatever is desired. The plan is that each chip will have internal pullups on the config switches so that by default it operates in the most widely used mode (all ones on the config inputs) and you use pulldowns or pots or dividers to set other stuffs.

I'm planning to open source the code so folks can edit/revise/improve/modify to their heart's content as long as CC Share Alike license is honored (attribution to prior author(s) and share your work with the community as well). I am an open source kinda guy so that is my way.

The ATtiny84 is really a powerful little chip for this application despite it's not having a DAC (R2R and delta techniques will work here, i think I'm going with delta). Take a look at a pinout and/or datasheet and you'll see why.

Anyway, just thought I'd chime in here and make mention of my project. If anyone wants a chip I'll mail it and if anyone wants source code I'll post it. See ya!

Les
p.s. if you want a pre-programmed chip it's free and I will accept a small donation to cover my costs if you have such, though it is not required.
mush
I've been following the progress on EM quietly for a while. I am super-interested in this project! Don't have much time for building nowdays, but I'm sure interested in this as well as the Karplus Strong thingies.

applause

LesHall wrote:
Hi, new here, from electro-music.com, not getting much response there as the traffic seems to have died off so I'll take the plunge in here:

Y a
a
a
a
splash!

Just recently I took on a new Arduino project. It's based on using the ATtiny84 chip to implement a lot of synth functions and crazie functions as well. Today I tried to create a CV2F with a sampled input, some config switches, and a square wave output. It worked just fine in basic form after some time wrestling with the lack of tone() function, and I just added controls and compiled it working - need to do a quick test on it tho.

The idea is to make all kinda modules so a Function Generator module would take care of converting square to sine or saw or ramp or whatever is desired. The plan is that each chip will have internal pullups on the config switches so that by default it operates in the most widely used mode (all ones on the config inputs) and you use pulldowns or pots or dividers to set other stuffs.

I'm planning to open source the code so folks can edit/revise/improve/modify to their heart's content as long as CC Share Alike license is honored (attribution to prior author(s) and share your work with the community as well). I am an open source kinda guy so that is my way.

The ATtiny84 is really a powerful little chip for this application despite it's not having a DAC (R2R and delta techniques will work here, i think I'm going with delta). Take a look at a pinout and/or datasheet and you'll see why.

Anyway, just thought I'd chime in here and make mention of my project. If anyone wants a chip I'll mail it and if anyone wants source code I'll post it. See ya!

Les
p.s. if you want a pre-programmed chip it's free and I will accept a small donation to cover my costs if you have such, though it is not required.
LesHall
Oh hey that's really cool mush! It is very exciting to see others interested in my work. That's what makes it all worthwhile.

I just uploaded to the chip with all the config switches put in and I broke it! no backups doh! so now i get to play Mr. Fixit...

Les
LesHall
I got it working, have not tested control inputs. Here it is:

http://pastebin.com/41afndxB

Les
old gregg
why bother yourself with arduino and not use the barebone AVR chip ?

It isn't that hard to think in terms of registers and hardware instead of relying on the arduino plateform. IMHO it is even simpler to undestand.
LesHall
old gregg wrote:
why bother yourself with Arduino and not use the barebones AVR chip ?

It isn't that hard to think in terms of registers and hardware instead of relying on the Arduino platform. IMHO it is even simpler to understand.
A
I have to agree with you on those points, old gregg. The primary reasons for this are both personal choice and to gain acceptance by the Maker community. Arduino is huge among Makers and I am a Processing programmer for some few years now. Arduino, based on Processing, just fits right in.

For example with Arduino I can use a Metro Mini ($15) from Adafruit as a controller for my synth and easily either program it to run without a PC connected or simply upload Firmata to it for PC control by Processing, thereby adding a powerful 3D user interface that I know how to code to my system.

Others use Arduino for quadcopters, robots, 3D printers, lite-up wearables, and all manner of DIY. I know there are technical reasons to roll your own the easy way as you say, however this approach works for me.

Since it's all open sourced, there's nothing stopping you or anyone else from rewriting the code faster better cheaper in c++ or better yet Assembler. In fact, I'm kind of hoping that people will do just that. But for me, yeah, it's Arduino all the way.

Les
LesHall
Huh, that was easy to say, old gregg, back when I had completed the CV2F. Now in making the delay line, I'm finding that I have to strip off most of the functionality just to make up for the overhead of the Arduino software. All that maker and preference stuff aside, I may need to follow your advice after all! I'll give this some thought for sure...

Les
Sandrine
old gregg wrote:
why bother yourself with arduino and not use the barebone AVR chip ?

It isn't that hard to think in terms of registers and hardware instead of relying on the arduino plateform. IMHO it is even simpler to undestand.


I agree, that overhead is fine in non-time intense applications, but is totally unpredictable time-wise as nobody knows what's in it lol

The Atmega chips are very capable, but I'm into the 18fxxxx PIC chips now, rated to 40 Mhz but I've "overclocked " then to 48 Mhz, really zips along
I'm a PIC girl from the '80's so hard to change

My solution:
Use Arduino to control the PIC/user interface etc, , use PIC for the speed, together
LesHall
I am being pulled in your direction, Sandrine. For the moment I'll implement some of the LFO and related features that Arduino actually IS capable of doing, and plan on getting a dev kit for AVR or PIC (or both!) for evaluation.

BTW this all grew out of Lunetta circuits from the Lunetta forum of electro-music.com - are y'all familiar or interested in such?

Les
squench
Here's a video of a patch with the Arduino-based VCLFO that I designed for my PAiA 4700 system:

https://www.youtube.com/embed/J8uZBOMn6a8
LesHall
squench wrote:
Here's a video of a patch with the Arduino-based VCLFO that I designed for my PAiA 4700 system:

https://www.youtube.com/embed/J8uZBOMn6a8


Yeah, I'm realizing that the Arduino is best suited for LFO, CV2F, and similar "slow" type functions as well as control and user interface / communications functions. Also wild stuff like adding accelerometers or other sensors, keyboard and mouse, control surfaces, etc.

But there is no substitute for a delay chip doing delay, for example - lol.

Les
piano39
Here's my idea for an Arduino DCO. I wonder if any of you guys can tell me if this is work:

- Use an Arduino UNO with a midi shield
- Arduino will respond to MIDI Note ON and Note Value. It will ignore MIDI Note OFFs. This would allow it to act like a traditional VCO where the oscillator continues to hold frequency for further processing (such as ADSR controlling a VCA).
When a Note ON is received, the Arduino would output a given frequency (Based on the midi note number). It would continue to output this frequency until another MIDI Note ON is received.

If this works, bells and whistles can be added for multiple waveforms, PWM, etc.

So, my question is: Would this be stable for the standard midi note values?
guest
that should be fine. if you use the counter for making a square wave, you get 16b resolution (without changing prescaler, much more elsewise). and the master frequency is set by a crystal, so it will be very stable.
av500
using a timer for generating a square wave will give you a stable and alias free signal, but given its limited resolution will not map accurately to your MIDI notes. the standard way of using a phase accumulator will give you much better frequency resolution, but then you will have to fight aliasing.
guest
i was curious how bad using a timer would be, so i ran a quick spreadsheet with all the midi notes, and their closest match using a 16b counter. unfortunately for the arduino, the input clock frequency is fixed to 16MHz, and the prescalers are limited to /1, /8, /64, etc. so, at 16MHz and setting the output to clear on 0, and set to 1 at half count (you get slight PWM doing this by +/-0.5 count bit), you get worst case error of ~0.5cent at 12kHz, with most notes lower than that having negligible error. but, you can only go as low as 24Hz. if you toggle the ouptut, so the frequency halves (and the PWM error goes away), the max error is ~1cent, with the error dropping into the negligible range for frequencies below 6kHz. the lowest note in this condition is 12Hz. of course, if you toggled the prescaler on, you could go as low as you wanted.

if you could fiddle with the input frequency (use your own crystal), you could play with this tradeoff. whats interesting, is that the error doesnt scale linearly with frequency: some frequencies are slighty better than others.
old gregg
LesHall wrote:
squench wrote:
Here's a video of a patch with the Arduino-based VCLFO that I designed for my PAiA 4700 system:

https://www.youtube.com/embed/J8uZBOMn6a8


Yeah, I'm realizing that the Arduino is best suited for LFO, CV2F, and similar "slow" type functions as well as control and user interface / communications functions. Also wild stuff like adding accelerometers or other sensors, keyboard and mouse, control surfaces, etc.

But there is no substitute for a delay chip doing delay, for example - lol.

Les


Yep they're great for that kind of controlling. Another thing they're nice for, is to imitate those 8bit game console sound. I've added that fonction to an LFO project and I like it a lot !

But for proper audio is another story (but not impossible, check the Shruthi for instance, if you don't mind the limitations).
Sandrine
Using an accumulator in the main loop works for any frequency output but it may jitter because of internal "Arduino" stuff happening. That's what I've noticed. The ADC's can cause slowness or jitters if not implemented in a timely fashion.

Even Digital I/O caused enough delays in loops that I had to resort to direct control of those ports.

So you could have a square wave running at 1.5mS period but with a .1mS duty cycle. In a basic program, it'll do just that, but add a bunch of I/O elements and it'll still keep frequency, but the duty cycle may change one way or the other...

Reading and understanding the I/O section of the Atmel datasheet, or having it for reference, is almost a must really

Ah the pluses and minus of Arduino hmmm.....
WonderAliceLand
I am planning to buy 100 arduino nanos. I was wondering what the general parts list (ie. parts I should stock up on) would be for DIY arduino eurorack and DIY arduino input devices.

I'm aware I will need buttons, wires, potentiometers, 3.5mm input, the nano itself, leds, etc (watched a lot of Look-Mum-No-Computers) but I don't know which type and beyond just copying random builds I see, I was hoping I could get some direct input. Thanks!

(note: Sorry if this has been asked, I searched this thread for words "parts" and "list" and I couldn't find anything, I have also searched the forums in general but this seemed the best place to discuss arduino specifically)
djthopa
100 nanos?

Thats a lot of Arduinos smile
WonderAliceLand
djthopa wrote:
100 nanos?

Thats a lot of Arduinos smile


Yuuuuuuuup. My wife and I are tech heads. The possibility of 100 projects is making us exited, we just don't know where to get the individual ingredients for a decent price.

Besides just buying a bunch of buttons an knobs with a set of diodes and wires and breadboard, I don't know what to do.
ezod
Already posted this in its own thread, but for those interested in interfacing standard Arduinos (that is, the 5V kind with the normal shield form factor pinout) with Eurorack, which I suspect describes one or two of us on this thread, we're running a Kickstarter now for a new breakout module as both a vehicle for some of our own module ideas and an open source hacking platform for yours.



It's literally a 14 HP open source Arduino shield for Eurorack, with a rad-looking Detroit Underground front panel. smile

I'm really looking forward to working more on the software side of this, preferably with other like-minded 8-bit micro fans, so I hope you'll join us!
Sandrine
Whatever happened to this? An Uno (Atmega328) is OK but probably an Atmega2560 would have been better. I love them for the dual SPI and 4 USARTs + way bigger memories, but I guess the speed is about the same.
The Teensy is kick-ass fast if you can get around the pin shortage and the price (way higher)
Borogove
av500 wrote:
the standard way of using a phase accumulator will give you much better frequency resolution, but then you will have to fight aliasing.


My current approach to antialiasing is to use the naive phase accumulator to index into a wavetable that uses cosine-shaped ramps for the discontinuity in square and saw type waveforms. They're a little duller than the real thing but you were gonna put 'em through a lowpass anyway. It's a mathematically unsound solution but works decently well in practice.

There are other easy fixes I've used on other projects: differentiated parabolics and the 2-point polyBLEP.
FunkEQ
we're not worthy
MUFF WIGGLER Forum Index -> Music Tech DIY  
Page 1 of 5
Powered by phpBB © phpBB Group