@Chibchan thanks.
In the end it was simpler than I thought. I had seen how to do it with the sox synth, I just needed to figure out how to do it with samples.
Here's a quick and dirty bash script that generates most common triads and 7th chords from a wav file:
Code:
wv=$1fn=${wv:0:-4}# Major triadssox ${wv} 2nd-voice.wav pitch 400sox ${wv} 3rd-voice.wav pitch 700sox -m ${wv} 2nd-voice.wav 3rd-voice.wav ${fn}M.wavrm -rf 2nd-voice.wav 3rd-voice.wav# Minor triadssox ${wv} 2nd-voice.wav pitch 300sox ${wv} 3rd-voice.wav pitch 700sox -m ${wv} 2nd-voice.wav 3rd-voice.wav ${fn}m.wavrm -rf 2nd-voice.wav 3rd-voice.wav# Diminished triadssox ${wv} 2nd-voice.wav pitch 300sox ${wv} 3rd-voice.wav pitch 600sox -m ${wv} 2nd-voice.wav 3rd-voice.wav ${fn}o.wavrm -rf 2nd-voice.wav 3rd-voice.wav# Augmented triadssox ${wv} 2nd-voice.wav pitch 400sox ${wv} 3rd-voice.wav pitch 800sox -m ${wv} 2nd-voice.wav 3rd-voice.wav ${fn}+.wavrm -rf 2nd-voice.wav 3rd-voice.wav# Major 7thsox ${wv} 2nd-voice.wav pitch 400sox ${wv} 3rd-voice.wav pitch 700sox ${wv} 4th-voice.wav pitch 1100sox -m ${wv} 2nd-voice.wav 3rd-voice.wav 4th-voice.wav ${fn}M7.wavrm -rf 2nd-voice.wav 3rd-voice.wav 4th-voice.wav# Minor 7thsox ${wv} 2nd-voice.wav pitch 300sox ${wv} 3rd-voice.wav pitch 700sox ${wv} 4th-voice.wav pitch 1000sox -m ${wv} 2nd-voice.wav 3rd-voice.wav 4th-voice.wav ${fn}m7.wavrm -rf 2nd-voice.wav 3rd-voice.wav 4th-voice.wav# Dominant 7thsox ${wv} 2nd-voice.wav pitch 400sox ${wv} 3rd-voice.wav pitch 700sox ${wv} 4th-voice.wav pitch 1000sox -m ${wv} 2nd-voice.wav 3rd-voice.wav 4th-voice.wav ${fn}7.wavrm -rf 2nd-voice.wav 3rd-voice.wav 4th-voice.wav# Minor 7b5sox ${wv} 2nd-voice.wav pitch 300sox ${wv} 3rd-voice.wav pitch 600sox ${wv} 4th-voice.wav pitch 1000sox -m ${wv} 2nd-voice.wav 3rd-voice.wav 4th-voice.wav ${fn}7b5.wavrm -rf 2nd-voice.wav 3rd-voice.wav 4th-voice.wav# Minor major 7thsox ${wv} 2nd-voice.wav pitch 300sox ${wv} 3rd-voice.wav pitch 700sox ${wv} 4th-voice.wav pitch 1100sox -m ${wv} 2nd-voice.wav 3rd-voice.wav 4th-voice.wav ${fn}mM7.wavrm -rf 2nd-voice.wav 3rd-voice.wav 4th-voice.wav# Augmented major 7thsox ${wv} 2nd-voice.wav pitch 400sox ${wv} 3rd-voice.wav pitch 800sox ${wv} 4th-voice.wav pitch 1100sox -m ${wv} 2nd-voice.wav 3rd-voice.wav 4th-voice.wav ${fn}+M7.wavrm -rf 2nd-voice.wav 3rd-voice.wav 4th-voice.wav# Diminished 7thsox ${wv} 2nd-voice.wav pitch 300sox ${wv} 3rd-voice.wav pitch 600sox ${wv} 4th-voice.wav pitch 900sox -m ${wv} 2nd-voice.wav 3rd-voice.wav 4th-voice.wav ${fn}o7.wavrm -rf 2nd-voice.wav 3rd-voice.wav 4th-voice.wav
If the sample is single cycle and needs to be looped, the above can be preceded by:
Code:
sox in.wav out.wav repeat 32
Statistics: Posted by delete000 — Sun Mar 03, 2024 11:51 pm