Digital Violin Feasibility

Dear people,

Would like to program a digital violin using 4 Arduinos and 4 speakers. Would like you to help me whether is it feasible to construct one. Thank you. <3

From Internet:

I built schematic using EasyEDA:

That's not schematics. That's a PCB layout.

You don't need 4 Arduinos. One is enough.
You don't need 4 speakers. One is enough.
You don't need 32 pins for the 32 buttons, if it's a violin. Four is enough.

You probably don't have a bow to move across some sort of sensor. You probably just push buttons, right? Because you have the free string tones there (G, D, A and E). If you push A on the E string, you should hear A5 (880 Hz). If you at the same time push G on the same string, this shouldn't affect the pitch at all. So your circuit should only care for the highest pitch button pushed on each string. That is, if you think of it as a violin. Or any other string instrument. So, a clever use of resistors could mean each string has its own analog port. If you want to read each button separately, you need at least 12 pins.

If you want a portable system, you would probably have to build the sound producing circuit. At its simplest form it would be 4 pins capable of producing beeps for a piezo. Either 4 separate piezos or just one, with a circuit that mixes the 4 tones. Though a violin hardly ever produces more than 2 tones at the same time! Your D major chord is usually played arpeggiated. First you hear D, then it mixes with A, but before you hear the F#, the D dies.

With just a few extra components, your violin could output MIDI data. Connect it to your computer and let your computer generate the sounds. Windows has a built in synth, which is good to start with. Even better, download Reaper and some synths and have them produce real violin sounds.

1 Like

How can we cleverly use 12 pins for 32 push buttons?

Thanks and best regards.

Button array. Search with those terms.
In short, 6 rows, 6 columns. Each row goes to one pin, each column goes to one pin. At each row-column crossing you have a button. Set one row pin high, all others low. Read each column pin. If a column pin is high, that row-column button is pressed.

Better 4x8 for 4 strings and 8 positions (half tones). Then a byte is read for each string and the highest bit (pressed button) determines the tone on that string. Please note that no button pressed on a string should mean no tone, a bit different from a violin played with a bow.

I hope I found the right words - my violin is German.

1 Like

Is it better (4 rows and 8 columns) or (6 rows and 6 columns)? I am confused.
I am not a musician, but I know a bit about piano only.

Thanks and best regards.

The matrix arrangement is a matter of software, not of music. I tried to point out that 4x8 is the best choice for this project.

1 Like

Hi,
I'm not sure what form your Arduino Violin would take but have you;
Googled;

arduino violin

Tom... :smiley: :+1: :coffee: :australia:

1 Like

Multiplexing 4x8 for the project.
Probably I can try 2 of this first.

Thanks and best regards.

The idea of multiplexing fades away with that. 16 buttons uses 8 pins. Two of them use 16 pins. Unless both can share 4 pins. Anyone?

1 Like

This is what I have found:

HUibV

I am thinking of connecting the 4 column pins of 1 4x4 push button board to the 4 column pins of the other 4x4 push button board.

I got another idea.

4 1x8 multiplexing. This project will need 4 Arduinos with 4 speakers. 9 pins for each Arduino.

I think 4 speaker idea makes the sound more stable compared to one speaker.

Just in case you don't know this... The regular Arduino by-itself can't sound like a violin.

There is no DAC, so no true-analog output. It can't generate natural or complex tones/waveforms and it can't vary the volume so you can't get musical dynamics or ADSR

To some extent analog can be "faked" with PWM but you'll still run-into limitations.

There are some Arduinos with DACs, but you still might run-into processing or memory limitations.

1 Like

No, if you use the 16 buttons matrix array in post #9, you will only need 12 pins for two banks.
You arrange the connections as a 4 x 8 matrix.

Tom.... :smiley: :+1: :coffee: :australia:

2 Likes

That crossed my mind. That's why I added:

1 Like

Dear all,

Can you help me out in labelling the frequencies of the 32 chords? Example C4. Please.

Thanks and best regards.

Google;

frequencies of violin chords

Tom.... :smiley: :+1: :coffee: :australia:

2 Likes

G3 D4 A4 E5
G3# D4# A4# F5
A3 E4 B4 F5#
A3# F4 C5 G5
B3 F4# C5# G5#
C4 G4 D5 A5
C4# G4# D5# A5#
D4 A4 E5 B5

Correct?

Thanks and best regards.

Found this online:

May include more notes to the project.
What are the ideal range to play basic songs?

G3 D4 A4 E5
G3# D4# A4# F5
A3 E4 B4 F5#
A3# F4 C5 G5
B3 F4# C5# G5#
C4 G4 D5 A5
C4# G4# D5# A5#
D4 A4 E5 B5
D4# A4# F5 C6
E4 B4 F5# C6#
F4 C5 G5 D6
F4# C5# G5# D6#
G4 D5 A5 E6
G4# D5# A5# F6
A4 E5 B5 F6#
A4# F5 C6 G6
B4 F5# C6# G6#
C5 G5 D6 A6
C5# G5# D6# A6#
D5 A5 E6 B6
D5# A5# F6 C7
E5 B5 F6# C7#
F5 C6 G6 D7
F5# C6# G6# D7#
G5 D6 A6 E7
G5# D6# A6# F7
A5 E6 B6 F7#
A5# F6 C7 G7
B5 F6# C7# G7#
C6 G6 D7 A7

30 Rows 4 Columns