| | |
| | | ; (consider how to deal with multiple sounds to be hoaencoded and mixed later on... sox-mix might be better done in an explicit way rather than via the class directly. |
| | | ; in that case a 3DC would have to be used by using points (point-pairs) in a loop |
| | | |
| | | (if (probe-file *sox-path*) |
| | | (progn |
| | | (if (probe-file *sox-path*) |
| | | (let ((sound (sound sox-input))) |
| | | |
| | | (when (and (stringp sound) (equal output "pipe")) |
| | |
| | | ; case: order = 0 |
| | | (setf str (string+ str (format nil " ~s" filename))) |
| | | ; case: order > 0 |
| | | (progn ; here it would be more redundant to call sox-merge with the given params |
| | | (progn ; it is impossible to create a sox-merge instance as gain values are in dB which cannot represent negative amplitudes |
| | | |
| | | (setf str (string+ str " -M")) |
| | | (loop for gain in (sox-hoaencode-gains-up-to-order (order sox-input) (azimuth sox-input) (elevation sox-input)) |
| | | (loop for gain in (print (sox-hoaencode-gains-up-to-order (order sox-input) (azimuth sox-input) (elevation sox-input))) |
| | | do (setf str (string+ str (format nil " -v~d ~s" gain filename)))) |
| | | ) |
| | | ) |
| | | ; ) |
| | | ) |
| | | |
| | | (setf str |
| | | (cond |
| | |
| | | (t (sox-samplebits str bitdepth samplerate outfile)) |
| | | ) |
| | | ) |
| | | |
| | | (setf str (string+ str sox-effect)) |
| | | (print str) |
| | | (sox-out str sox-input output outfile recursive) |
| | |
| | | ; (when *delete-inter-file* (clean-tmp-files)) |
| | | |
| | | ) |
| | | ) |
| | | ) |
| | | (sox-not-found) |
| | | ) |
| | | ) |
| | | |
| | | |
| | | ; === sox-mix ============= |
| | | |
| | | (defmethod! sox-process ((sox-input sox-mix) (sox-effect string) &key output filetype samplerate bitdepth recursive batch-mode) |