complex project, need advices

hi ! i'm new here, i just ordered an arduino uno R3 but i don't yet what it really can offer.
i'm slightly used to electronic, i build some vintage guitar amps, effects ..

But i'd like to expose the main idea, to see if it's something possible or totaly too difficult ( then, i wonder what other module may help me )

i'd like to use a synth keyboard, sending some midi infos to the arduino : the sequence made would be recorded instantly, if i decide so ( with a limit of perhaps 24 notes ) , and the sequence could be played back, sent through midi back to the synth ( no computer involved ) .

  • each note of the sequence would feature a control affecting its character ( velocity, lenght .. )
    an overal speed control for the loop ( or no loop ) played continuously, a general velocity as well ..

but the main thing is about the sequence recorded. imagine if i play something on the keyboard, the flow of the notes will vary in speed ... but the result i'd like would be the same lenght of silence between each note played back by the arduino.

then, another difficult part would be this :
the sequence recorded would be played if i hit a note of the keyboard, and if i hit ançother note, i'd like the sequence to be transposed to this new range.

again, more complex : the sequence should or shouldn't start all over if i transpose it while it's being played continuously. a button would let me choose it.

please, is this project to crazy for an arduino ? did i buy it for nothing ?
thanks ! ^^

You would probably find it easiest to use something like a SparkFun Midi shield so that you can plug your synth directly into that, but you could build your own interface. That solves the hardware part but it involves a bit more money :slight_smile:

the sequence made would be recorded instantly, if i decide so ( with a limit of perhaps 24 notes )

A 24 note limit would not present a problem and the Arduino could probably handle more. The Arduino program would record the midi note/velocity and also the time between each note. Playback from that information should be easy too.

i'd like the sequence to be transposed to this new range

Transposition shouldn't be too difficult since it will only involve adding or subtracting a constant amount from each note number before it is sent.

You should start (after you've got the hardware) by just writing a sketch to record a simple sequence and then play it back. Once you've got that done you can start adding complications such as transposition.

Pete

thanks Pete !

so it seems not impossible, that's cool.
about the recording sketch, do you mean that it's a program written patiently through a computer, then used to play a synth ?
or a sketch that would make it independant, just recording what's played by the synth when choosed with a button ? cause i'd like the second, as a stand alone.

i'll check your sparkfun.
should i consider selling my arduino already ? if the hardware part is about midi plugs, resistors, potentiometers, etc, i'm cool with that and all i'm worried about is the brain needed into the board involved.

did you by chance see such project somewhere ?
thanks !

The Arduino will need to be hooked to a PC while the program (sketch) is being developed but once it is working you can load the program into the Arduino and from then on it won't need the PC.

should i consider selling my arduino already

No, you need to keep that. The Midi shield plugs into the Arduino and connects/interfaces the MIDI plugs to the Arduino.

when choosed with a button

Oh, and you'll need a couple of buttons too :slight_smile:

did you by chance see such project somewhere

No, but I have a synth (SY77) and an Arduino (Duemilanove). I haven't connected them together but I am somewhat familiar with MIDI and the Arduino so I can see that your project idea can be done.

Pete

oh ! ^^ i have a TG77, great machines but i don't use it. but i keep it for the new environment i'll have, with more room etc.
and an emu II, a d50 ..

but once it is working you can load the program into the Arduino and from then on it won't need the PC.

... and it will record any new sequence, from the keyboard ?

ok, if i can't build the midi shield by myself i should get one then ?

hey, i realise i have an extremely good example of the 80' kind of sequence i want to do with it. simple, fun, useable... ( the modern sequencers i find are craps, and it requires to tune the notes with a potentiomer, and i hate that concept . virtual ones also are crap )

check this old school video, coming directly from the 80' ^^
the pro one is too expensive for me, but i could control so many other cool sounds with it, or some pure emulator II samples !

at 2:17 ( except that with my project, i could also control the character of each note of the sequence )

another great one is from jan hammer, playing with jeff beck ( got several jeff beck stratocasters, love this genius )

and it will record any new sequence, from the keyboard ?

If that's how you write the program, yes.

ok, if i can't build the midi shield by myself i should get one then ?

Yep. I was just looking at the SparkFun site. They have a Midi shield and a Midi breakout (which is also a shield). Unless you need a Midi Thru which is only on the breakout, I would get the shield ( SparkFun MIDI Shield - DEV-12898 - SparkFun Electronics ) because it also includes 3 buttons so you wouldn't need anything else.
Then you'd have a lot of programming ahead of you!

Pete

i'm glad you gave me some cool and useful advices.
so i'll get a midi shield and plug it to the arduino and see.
but i'll need more buttons ! three isn't enough. and there'll be a line of 24 potentiometers or encoders, for the velocity of each note, and another line for the lenght, and some buttons to start and stop, and record, and a line of buttons to easyly choose where the sequence ends before the loop starts again, etc etc ... big project
i just don't know yet how they'll work with such programmable machine. i guess i'll do tests little by little, to see what's what and what it does ... i hope that the arduino is enough for all these controlers interacting with the base.
oh yes, a midi in, out and through would be nice. any things not existing on the breakout that would exist on the midi shield ? or just better with a midi through added ?

and there'll be a line of 24 potentiometers

Whoa. Slow down fella! You didn't mention 24 pots in your first post. The Uno has 6 analog input pins and even the Arduino Mega only has 16.
You can play a sequence on a keyboard and have the Arduino remember the sequence including the timing between the notes. You can then have it play back that sequence repeatedly and even transpose the sequence. But if you want to vary the velocity of each note on-the-fly you'll have to either give up on the Arduino or come up with some way of doing it that doesn't involve more than the 6 analog inputs on your Uno.

Pete

see, i had a good idea to expose my project to see the limits it may have ^^

so the six analog inputs may each be assigned already to : start/stop , speed, velocity, notes lenghts( all the same then ) , record/stop recording , transpose sequence from start/transpose sequence without starting the sequence all over, while it's being played . that's 6.
am i right ? or are there some other kind of inputs to use these basic controls needed ?

so no more room left for other controlers i guess ... but it's still interesting, i could use it anyway.
if i could assign one arduino to a part of the controlers, and some other ones to some other controlers that would be great !

but anyway, i see that you understood very well my intentions with this project, thanks Pete.

  • if i could find a way, i'd like for each step several controls like :

-pot for velocity ( that would be damn cool to let it play with the emu II filters ^^ ! )

-pot for lenght

-pot for volume ( better than on/blank silent note )

-a button on each step : once one is engaged, the sequence stops at this button and restarts from the beginning. so it may end at the 10th , 12th , 17th , 24th step ..

-a correction button, that would allow me to transpose or correct each note individualy. that could be a button that would play the sequence step by step , one step when i push this button once, then the next step when i push this button again ... and if i want to correct the note, i'd just have to play another key on the synth, then it'd need another record button, just to save what has been changed into the sequence. this would have another advantage as this would also allow to record a sequence step by step if wanted, taking my time, or on the fly.

unfortunately if a midi sequence comes out of the arduino, there's no much i could do to edit and control each note/event, once it's made.

but the basic principle is there, simple, like i'm looking for.
still thinking of some kind of arduino with much more than 6 or 16 inputs .. does it exist ?

i wonder if : a digital input means something like something like a computer input, or a digital potentiometer ( encoder ? ) , compared to a classic potentiometer.
Because if i can use some encoders, the arduino mega has 54 inputs like that. ( and what a pwm output ? )

i'd need 6 controls at least for the basic controls, ( digital inputs ) + 24 controls for the notes individual velocitys, + 24 inputs for the individual notes lenghts, + 1 control for the sequence lenght ( basicaly, a switch in a form of 24 switchs, one canceling every others. analog i guess ) .

that's already 55 controls ! 48 analog, 7 digitals.

i still need 24 controls for the individual note on/off ( digital then ) and perhaps at least two buttons/switchs ( digital ) for the step correction, and the save correction button.
so at least 81 controls

i may add that i'm also looking for a way to synchronise the speed and number of steps of the sequence, with some other sequencers, or cubase midi for drum for example ...
starting all together you know, synchronised in speed. if only it's possible. but it would certainly be easier to save the midi sequence into cubase, and synchronise it with another cubase midi sequence. less fun ...
i don't know how they did in the past to synchronise a rythm box and a synth that has a sequence played. just by ear ?

i'm starting to understand things a little, about the analog versus digital inputs etc ...
i didn't find a micro controler that features many analog like i'd need.

oh ! 48 analog inputs ! could that be the stuff i'd need ? ^^
i don't know what these stuffs are called a shield ..

http://shieldlist.org/appliedplatonics/analoginput

a digital input means something like something like a computer input

A digital input/output only has two states - on or off like a switch or button.

and what a pwm output ?

That is just a digital output that is switched on and off at different rates. It can be used to control the speed of a motor or to generate a buzzing sound in a speaker.

i don't know what these stuffs are called a shield

A shield is a board that is designed to fit on top of the Arduino.
For example, there is a GPS shield which has a GPS receiver on it. If you look at this image you can see the GPS shield on top of an Arduino.
SparkFun GPS Logger Shield - GPS-13750 - SparkFun Electronics The shield (the red board) fits into the two headers on either side of the Arduino. Click on the image to get an enlarged version.
Most shields can also fit on top of each other so you could (perhaps) put the 48 analog input shield on the Arduino and then put the MIDI shield on top of the analog shield.

But before you consider buying the 48 analog input shield I think you should try something simpler like just recording a sequence and be able to play it back. Then modify that so that it will also, for example, transpose the sequence and work your way up to the more complicated stuff.

Pete

yes, i finaly understood the difference between digital and analog , here.

i'm glad i've found this 48 analog inputs shield. combined with 6 other analog inputs and 54 digital inputs, and the midi shield , ( if everything is ok ) i have my project covered.
i'll ask some advices to arduino's support about this.

if it can fit together, i'll perhaps buy it directly, since you confirmed that the more simple version would work anyway. At this point i'll start with the simple project anyway, and add the other analog inputs later.

great ^^

by the way, should i need any other shield ?
would the arduino by itself would memorize things, and sequences ? i think so but i'm not sure, a bit confused.

by the way, should i need any other shield ?

I don't think so.

would the arduino by itself would memorize things, and sequences

Yes. Once you've loaded a program into the Arduino it doesn't need to be reloaded. If you want it to able to remember a sequence even after the power is turned off you can write the program so that it keeps the sequence in the EEPROM which is a permanent memory.

Pete

If you want it to able to remember a sequence even after the power is turned off you can write the program so that it keeps the sequence in the EEPROM which is a permanent memory.

that's cool, i'll add a "store sequence" button. and later i may add a screen or something ( these little modules i'm discovering are so cool ! when i was 5-10, i dreamed of such thing ) , and a few other buttons to select some stored sequences, delete, etc .

hi ! i realised in another post that i'm maybe still misunderstanding the way it works, with one analog input divided into several sample rates ...

to simplify my thought i'll give a picture of how i imagine that analog input : to me it's like an input to control one thing with a potentiometer for example. Like a treble control on an amp. But if on the amp i need a treble , a bass , a medium and a volume control, i'll need four separate "analog inputs". I can't have one input only for all the four controls.

and the arduino board has only one true analog input in fact. i don't understand how it works here, with a sample rate divided.

Another thing i noticed on your idea was quantizing, am i right ?!? That would be much more complicated, mind. Also, all the things you are asking about- wouldnt it be easier and cheaper to just buy something done?!? and adapt it to your needs ?!? Unless you want to use the project as a way to learn and practice your coding of course , there are midi controllers and implementations for older synths quite advanced out there with kits available that would shorten your time and research many years( cause this seems a project that will take you a couple years, im guessing unless you have enough money to dedicate your whole time to this day after day, of course).
Dont want to discourage you, but instead be a bit realistic and trying to point you to shortcuts/alternatives, thats all ! I always say- why invent the wheel if someone else done it already ?!? that approach will always save you lots of time and hassle, if not money as well !!

ha ha,yes i wish it would exist on the market, but it doesn't , the way i personaly want.
but i don't think it would need years of work on it anyway. but i don't have time to start the project anyway these days, so .. later. i was worried about the hardware possibilitys, but now it seems solved, thanks to these :

two like this Mux Shield II - DEV-11723 - SparkFun Electronics

and one like this http://www.sparkfun.com/products/9595

then, some tests with a couple of potentiometers or encoders, and push/push buttons, to start the code principles, then expanding the project.

You'll have trouble using those shields together, as they both use pins 2 to 4.