Now, I think I finally did it, and I am enjoying it a lot ¡¡¡
The name of this application is: FREE MUSIC, FREE SOUNDS ¡¡¡
As all we know, almost all synthetizers are restricted to the use of just the well-known musical notes,
as a consecuence, if I want to make some research on consonance, then I have to restrict my investigation
to the musical tones imposed by musicians and their sacred musical scales, no pun intended, indeed, because
musical scales became kind of sacred religion.
The main objective of this mathematica app is TO FREE MUSIC AND SOUNDS from the chains of such an ancient musical theological-dictatorship. :-) :-)
Using dynamic input variables, piecewise funtions and Manipulate rutine, this app allows to play chords of up to 6 notes, assigning any frequency value to each note, at will, without any musical scale restrictions at all.
**Besides, you can assign up to 12 harmonics amplitude values to each note in order to get any desired pitch.
The harmonics can be edited at any time for each sound, and saved for further playing or chord inclusion.**
At the botton of the console there are four buttons with pre-assigned harmonic values to simulate guitar, piano, flute and violin pitchs. By this time, only the guitar pitch is fully functional (it took me a lot of work to make the guitar harmonics-table using an Spectrum Analyzer, as well as the interpolating functions to embrace all the proper harmonics at any frequency level)
However, I hope to do the same task for the other pitchs: piano, flute and violin, very soon.
Each sound can be saved and played at any time ( 'Play Sound' button at right), besides any sound can be added to the chord at will.
The attached image shows the chord of just two sounds: 110 and 220 hertz assigned to the chord which can be played using the 'Play Chord' Button at right.
A plot of all the waves added to the chord is included at the right bottom of the console, by adjusting che Chord Duration you will be able to see the resulting wave form. In this way, the sound play time and the chord play time can be adjusted at will.
Attack Decay Sustain and Release for each sound can be also adjusted. All the harmonics have the same attack-dcay-sustain-realease values (In the future I hope to have the time to improve this).
The harmonics scale can be also adjusted.
Apart from the 12 harmonics, the app includes various waveforms: square, triangle, bessel, fractional, riemann.
I am enjoying so much this app, however, I only regret two issues:
1.- Considering that it took me a lot of work and even when I would like to publish this app in the web to be freely used, I am not willing to send this app to wolfran to be considered for publication as a demonstration app, specially because there are no guarantees and it could finally get not published at all. I understand there is no way to make an independent executable file.
2.- The Play function is too slow when using my piecewise functions, mainly when the sound and chord duration are >1. Thus, even using a low-samplerate value (4000), each time you change any value the Play function took about 3 or 4 seconds to update. I understand this is well-known problem with mathematica play button and piecewise functions.
Well, that's it, I only wanted to share all this, of course, if someone wished to share some thoughts, ideas or even construct and play some special chords, I will be happy to do them for you.
I would also appreciatte any feedback on the guitar pitch I got using an spectrum analyzer.
I am a civil engineer with some background on dynamical and numerical analysis, so all this wave-stuff is of so much interest to me. You can find me in the web and youtube with my full-name
Best regards,
Domingo Gomez Morin