Commit Graph

479 Commits

Author SHA1 Message Date
xenakios
dc86913533 Added pause playback feature with fades for smoothing 2017-12-14 22:17:45 +02:00
xenakios
6ad663da47 Use parameter index constants 2017-12-14 19:57:14 +02:00
xenakios
40096fc87d Propagate host provided maximum block size to buffering audio source 2017-12-14 19:06:26 +02:00
xenakios
a3c2a07e5b Enable compressor as needed. Apply harmonics bandwidth and Gauss mode 2017-12-14 05:02:04 +02:00
xenakios
76880a8d5f Update output channel count on the fly. Somewhat hacky... 2017-12-14 00:44:46 +02:00
xenakios
3fc51ab8c6 Mono output doesn't currently work... 2017-12-14 00:22:21 +02:00
xenakios
d05a5d41a8 Preliminary work to enable multichannel output again with a parameter to determine the output channels to render 2017-12-14 00:19:46 +02:00
xenakios
71a9419e51 Can afford to update the spectral processing order while dragging the mouse. Changed the drag behavior and drawing again but still not that great. 2017-12-13 23:49:21 +02:00
xenakios
66fe05f842 Try adding some visual feedback for the spectral order drags 2017-12-13 21:25:42 +02:00
xenakios
6760dd3e67 Actually set the processing order on mouse up 2017-12-13 20:16:20 +02:00
xenakios
c78c42c153 Added component to allow reordering the spectral processing stages 2017-12-13 19:55:35 +02:00
xenakios
e980344bb3 Remove capture toggle button from editor. Also remove JS engine and dynamic object as those are not used currently. 2017-12-13 18:48:52 +02:00
xenakios
bd1eabf3bf Add more parameters including input capture enabled. A slightly nasty timer hack had to be implemented for that but can't be helped since the Juce provided bool parameter doesn't do callbacks...Small tweaks and fixes. 2017-12-13 18:30:09 +02:00
xenakios
3dc95b6f1d Avoid setting the audio buffer more than once 2017-12-13 05:23:57 +02:00
xenakios
e411a99f70 If capture buffer used, refresh waveform when GUI has been closed and reopened. 2017-12-13 05:18:39 +02:00
xenakios
f872a13257 Merge branch 'master' of https://bitbucket.org/xenakios/paulstretchplugin
eh
2017-12-13 00:06:26 +02:00
xenakios
891a85b5a5 Init zero octave parameter to proper value. Use param index constant. 2017-12-12 23:38:24 +02:00
xenakios
1576cfcf97 Use tryEnter for loop xfadelen setting. Fix oopsie in rate parameter setting... 2017-12-12 20:46:52 +02:00
xenakios
5a17f43763 Use Juce CriticalSection for main audio processor too. Use tryEnter for changing main volume parameter. Looks like it's best to do the tryEnter stuff for everything possible... 2017-12-12 20:43:43 +02:00
xenakios
7805f1a0aa Switch to using Juce CriticalSection in StretchSource. Especially when used with tryEnter, seems to help the audio glitches a lot, even when running under the debugger... 2017-12-12 20:27:29 +02:00
xenakios
68d5674eb9 Use parameter index constants. Init octave mixer parameters. 2017-12-12 20:00:51 +02:00
xenakios
5737b92165 Layout parameters in a grid for now etc 2017-12-12 19:54:54 +02:00
xenakios
572b1d2515 Added more parameters. Added int constants for parameter indexes. Initial work to do GUI layout with Javascript. Disabled spectrum visualizer for now. 2017-12-12 19:14:43 +02:00
xenakios
de5c0d4f87 Merge branch 'master' of https://bitbucket.org/xenakios/paulstretchplugin
joo
2017-12-06 03:03:15 +02:00
xenakios
2fe40137cc argh 2017-12-05 02:09:20 +02:00
xenakios
9ec0ad88f7 Merge branch 'master' of https://bitbucket.org/xenakios/paulstretchplugin
juuh
2017-12-04 02:38:49 +02:00
xenakios
6c589705b6 argh 2017-12-04 02:38:22 +02:00
xenakios
b4502ba442 Add harmonics processing parameters. Add harmonics processing visualization etc 2017-12-03 23:47:28 +02:00
xenakios
75be994714 Constness 2017-12-03 23:28:54 +02:00
xenakios
ccf7ba303f SpectralVisualizer optimizations, create objects only when needed etc 2017-12-03 22:51:57 +02:00
xenakios
16868d5ccd Allow FFT object to be constructed without inverse FFT. Added SpectralVisualizer component that does an extremely inefficient visualization of the spectral processing stages. 2017-12-03 22:00:40 +02:00
xenakios
a1f7c52eb0 All/most spectral processing stages now in stand alone functions 2017-12-03 19:09:42 +02:00
xenakios
4a2cc8ff71 Initial work to separate spectrum processing implementations into stand alone functions from the ProcessedStretch class, to allow visualizations etc without having to instantiate the full ProcessedStretch object 2017-12-03 18:39:47 +02:00
xenakios
e52241ba86 Avoid resetting active source play range when changing file. Update xfade cache when changing file. 2017-11-28 21:10:22 +02:00
xenakios
5f24356658 Init FFT windowing type 2017-11-28 20:46:04 +02:00
xenakios
da1fea6850 Check volume and loop xfade length in setters before entering mutex 2017-11-28 16:35:15 +02:00
xenakios
eece70d89b Add parameters. Use plain old member variables for main volume and loop xfade length. GUI layout tweak. 2017-11-25 21:25:46 +02:00
xenakios
4a89c2f1c4 Init FFT size with parameter value 2017-11-25 05:52:48 +02:00
xenakios
8bd4468603 Parameter and slider stuff. Added spread parameter. Mutex locking fixes. This had went unnoticed because VS for some reason didn't break into the debugger on entering a non recursive multiple times. 2017-11-25 00:22:07 +02:00
xenakios
73ef79509c Use shared audioformatmanager between plugin instances 2017-11-24 01:44:30 +02:00
xenakios
e9e1c45550 Nicer way to deal with the shared audiothumbnailcache 2017-11-23 19:36:46 +02:00
xenakios
a109d71f09 Use shared thumbnailcache for all plugin instances. Kind of a tricky thing with std::shared_ptr going on here using the deprecated unique method...But, oh well... 2017-11-23 19:12:29 +02:00
xenakios
9207325698 Lock mutex when restoring plugin state 2017-11-23 17:57:37 +02:00
xenakios
321e9bbf1c The crossfading between FFT sizes might be working! It seems to be quite heavy for the buffering thread though, so getting glitches in debug build...Removed unused member etc 2017-11-22 18:50:39 +02:00
xenakios
c43de8120c Attempt to do a crossfade when changing FFT size, using the same stretchsource instance. It's tricky and not really working yet like this. 2017-11-22 00:18:50 +02:00
xenakios
8890faea01 MacOs build bullshit. Well, the plugin was confirmed to run in GarageBand at least... 2017-11-21 04:36:13 +02:00
xenakios
5b54b15ba6 Finally removed the Control class, the same stuff can be done in the AudioProcessor subclass...The Control source files are still in the repo in case they need to be looked at, but will eventually remove those too. 2017-11-21 00:39:07 +02:00
xenakios
31dbfb84cd Remove unused external variables 2017-11-20 23:00:51 +02:00
xenakios
98858218d5 When setting stretchsource playrange, don't clear the ring buffer and seek only if the current seek position is not within the new play range 2017-11-17 17:17:31 +02:00
xenakios
6aa514f52b Finally support changing FFT size. This however doesn't now use the double stretch source thing, so glitches will probably happen... Parameter component was changed to support changing the parameter value only on mouse releasee etc 2017-11-17 16:41:33 +02:00