Author |
Message |
iVoid
Joined: May 05, 2017 Posts: 2 Location: Extra Dimensional Void
|
Posted: Fri May 05, 2017 7:06 pm Post subject:
Software recommendation needed |
|
|
I'm looking for software that can help me create my own sounds right down from the waveform, mathematically, as well as editing and applying filters, I thought of coding my own filters, so I can fully experiment and learn a few things in the process, but I wouldn't mind if it also had a good filter library of its own. I guess the correct term for what I am describing is sound synthesis?
Being completely new to this my first thought was Matlab xD because I'm familiar with it, though I never used it for sound, but I thought someone here might be more experienced and know a better option I'd also be interested in hearing your opinion about this kind of mathematical approach to sound synthesis compared to other options.
I'd also like a recommendation on software that can modulate the sounds I create, and play the result based on any of my PC input devices, from my QWERTY keyboard, to game controllers, including analog controls of any kind, maximum flexibility. Though not ideal, something that could allow me to simply map a sample to each key would already be interesting.
Any help is appreciated |
|
Back to top
|
|
|
xjscott
Joined: Apr 25, 2007 Posts: 232 Location: Appalachia
|
Posted: Fri May 05, 2017 11:38 pm Post subject:
|
|
|
The keyword mathematically makes me think you want to specify things according to algorithms and equations.
Supercollider, Chuck, and pd are three things that come to mind for this level of control. |
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24085 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Sat May 06, 2017 12:57 am Post subject:
|
|
|
Yeah or Max/Msp or Reaktor. Max is PD like, or PD rather is MAX like - very powerful.
Or could have a look at open source hardware to have the processing on an external box .. like http://www.axoloti.com/ or .. the pads and phones are becoming powerful enough to go beyond toys as well ... a bit of a software swamp there though.
And to paint waves .. a decent wave editor should support that ... for a free one ... Audacity is very reasonably decent, otherwise look into DAW software (although those have a tendency to lay a workflow upon you - which may not be a bad thing).
Or do what I did .. write your own software _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24085 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Sat May 06, 2017 1:04 am Post subject:
|
|
|
BTW, I've seen Matlab being used to prototype sound algorithms with (and then implement it in like PD, or in plain C as a plugin for other audio tools). _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
iVoid
Joined: May 05, 2017 Posts: 2 Location: Extra Dimensional Void
|
Posted: Sun May 07, 2017 2:59 pm Post subject:
|
|
|
xjscott wrote: | The keyword mathematically makes me think you want to specify things according to algorithms and equations. |
Yes that is exactly what I'm looking for.
Blue Hell wrote: | Or do what I did .. write your own software |
aha I was hoping it wouldn't come to that just yet
Well, thank you both! You've given me a lot to try out, I'll be experimenting for the next few days, I'll let you know how it went afterwards |
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24085 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Sun May 07, 2017 3:51 pm Post subject:
|
|
|
Have fun :-) _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
Acoustic Interloper
Joined: Jul 07, 2007 Posts: 2067 Location: Berks County, PA
Audio files: 89
|
Posted: Sun May 07, 2017 4:49 pm Post subject:
|
|
|
Here is a ChucK patch generated from data in a data sonification project that students and I have been working on for several years (note the raw_waveform and the hpf high pass filter). It spits out a WAV file generated from data being sonified.
EDIT: The code delimited block is screwing up the for loop headers, so I'll just attach the ChucK patch. The code below has at least two format errors.
Code: |
// file waveformdblsawexp_0_-1.ck generated by genchuck.genWaveform from ../SWedJfstCgpaGprjGprvNOQSAW.csv [0, -1, 0.21203703703703702, 0.6666666666666666, 0.9148148148148149, 0.7962962962962963, 0.49444444444444446]
[0.0,0.64690382,1.00000000,0.83135705,0.40184453] @=> float raw_waveform[];
5 => int raw_waveform_length;
220.0 => float tonicFreq;
440.0 => float otherFreq;
2.0::second => dur durationWAV;
dac => Gain __g__ => WvOut __w__ => blackhole;
"waveformdblsawexp_0_-1.wav" => __w__.wavFilename ;
// LiSaTemplate3.ck reduce effect of high-pass filter
// LiSaTemplate2.ck from jan. 2016 adds a second LiSa.
// LiSaTemplate.ck from summer 2015
LiSa lisa => HPF hpf => dac ;
LiSa lisa2 => hpf ; // added Jan 2016
.5 => lisa.gain ; // added Jan 2016
.5 => lisa2.gain ; // added Jan 2016
tonicFreq * 0.25 => hpf.freq ;
10.0 => hpf.Q ;
// generate a waveform signal ranging -1.0, 1.0 and play
// it using LiSa, D. Parson, 7/2015
second/samp => float SRATE;
1.0 / tonicFreq => float tonicPeriod ;
raw_waveform_length * 2 => int sampleCount ; // half positive, half negative
sampleCount::samp => lisa.duration ;
sampleCount::samp => lisa2.duration ; // added Jan 2016
(tonicFreq * sampleCount) / SRATE => lisa.rate ;
(otherFreq * sampleCount) / SRATE => lisa2.rate ;
for (0 => int ix ; ix <raw_waveform_length> ix) {
lisa.valueAt(raw_waveform[ix], ix::samp);
lisa2.valueAt(raw_waveform[ix], ix::samp);
}
for (raw_waveform_length => int ix ; ix <sampleCount> ix) {
lisa.valueAt(raw_waveform[ix%raw_waveform_length] * -1.0, ix::samp);
lisa2.valueAt(raw_waveform[ix%raw_waveform_length] * -1.0, ix::samp);
}
<<< "Sampling rate is", SRATE, "sampleCount is ", sampleCount >>>;
1 => lisa.loop ;
1 => lisa2.loop ;
1 => lisa.play ;
1 => lisa2.play ;
durationWAV => now ;
null @=> __w__;
|
Below are time-domain and frequency-domain snapshots from Adobe Audition.
If you literally want to generate the waveform, ChucK is probably easier to learn.
To my hearing, Supercollider has better ugens than ChucK, but I like ChucK's programming model & found it easy to learn. I am still trying to find time to get good at SC.
Have fun!
Description: |
|
Filesize: |
43.38 KB |
Viewed: |
570 Time(s) |
This image has been reduced to fit the page. Click on it to enlarge. |
|
Description: |
|
Filesize: |
208.53 KB |
Viewed: |
585 Time(s) |
This image has been reduced to fit the page. Click on it to enlarge. |
|
Description: |
The real ChucK patch that I attempted to show above. |
|
Download |
Filename: |
waveformdblsawexp_0_-1.ck |
Filesize: |
1.78 KB |
Downloaded: |
610 Time(s) |
_________________ When the stream is deep
my wild little dog frolics,
when shallow, she drinks. |
|
Back to top
|
|
|
|