Commit Graph

160 Commits

Author SHA1 Message Date
xenakios
11e61f8cfd Attempt to draw the points in the audio file where the FFTs are taken but of course it doesn't work like this because of the looping 2018-05-11 16:45:34 +03:00
xenakios
28f14ddf7a Add looping enabled parameter 2018-05-09 12:33:06 +03:00
xenakios
8a4aee93ec When changing audio file, set the first buffer flag to flush the existing stretched audio faster 2018-05-09 12:17:28 +03:00
xenakios
cfbbad0e74 The stretch source doesn't really need to do anything except inc the param change count when the spectral module enabled parameters have changed. However this could get messed up if the spectral module order isn't correctly set in the stretcher instances already...Hmm. 2018-05-01 19:17:59 +03:00
xenakios
60293c6a84 Calculate smoothed prebuffering available amount in the processor 2018-05-01 18:22:21 +03:00
xenakios
d42971e09f Added simple signal smoother class. Use that to smooth out the buffer amount component display. 2018-05-01 17:54:20 +03:00
xenakios
81882b9ecb Remove the now unneeded map 2018-04-26 23:15:39 +03:00
xenakios
c8f865dd4a Almost getting there but some still is still messed up... 2018-04-26 23:07:08 +03:00
xenakios
cd15a0ea48 Messy attempt to make the spectral module enabled parameters be tied to particular modules, this needs to be seriously examined... 2018-04-26 21:45:37 +03:00
xenakios
40fcc1bdb0 Remove kiss fft files from repo 2018-04-26 18:03:41 +03:00
xenakios
2f3a526291 Remove the freeze seek code as it wasn't working. Best to postpone until the stretcher code has been rewritten. 2018-04-23 20:55:25 +03:00
xenakios
08398392ca Implement more ratiomixer parameters etc 2018-04-03 18:32:53 +03:00
xenakios
941ebf31a5 Initial work to change octave mixer spectral module to a more generic ratio mixer module that has more shifters and allows changing the shift ratios. Also added a separate tab page in the GUI for it. 2018-04-03 16:34:20 +03:00
xenakios
3729c4ec28 Glah 2018-04-03 02:07:47 +03:00
xenakios
890c568155 Attempt implementing seek while frozen, doesn't work too well like this...Don't use opengl stuff at all if the opengl module isn't set available. 2018-04-02 20:07:55 +03:00
xenakios
8421269565 Use global constant for pi instead of define. Calculate sinus transform in envelope transform only if amount more than zero. 2018-03-26 15:40:30 +03:00
xenakios
faf84a7233 Commented out parameter check. Damn, this got included in the public release... 2018-03-21 17:26:00 +02:00
xenakios
6b09d11d49 Change the initial order of spectral modules to make the compressor be the last module. This is way too messy like this...But maybe this was the last time this needed to be done... 2018-03-21 13:43:03 +02:00
xenakios
6747d20aa8 Consolidate and clean up storing and recalling parameters. Enable storing and recalling of spectral module order again, using different state IDs. So old states will be discarded, but oh well... 2018-03-21 13:15:48 +02:00
xenakios
d4b1bffe7a Kind of working now, but maybe not in the best way... 2018-03-09 19:39:39 +02:00
xenakios
6d7671e8cf The spectral module enabled parameters still not doing so great... 2018-03-09 18:05:33 +02:00
xenakios
7fe4ea982e Remove the spectral module selection and move parameters. Initial attempt to implement the module enabled parameters. Might need to redesign this a bit... 2018-03-06 13:44:36 +02:00
xenakios
d813794ea9 Added linear interpolation option for envelope random transform, fixes etc 2018-03-03 17:55:02 +02:00
xenakios
c391a2c0af Added free filter envelope random transform 2018-03-03 17:22:23 +02:00
xenakios
536b1ccaf1 Allow free filter to attenuate more 2018-03-03 15:57:24 +02:00
xenakios
23d8621c83 Remove the original free edit code and the binaural beats code 2018-02-28 19:32:17 +02:00
xenakios
9774af6e62 Member renames and clean ups 2018-02-28 13:32:46 +02:00
xenakios
ff35bce695 Add envelope transform feature 2018-02-28 00:05:35 +02:00
xenakios
d624b2370d Formatting tweaks 2018-02-27 20:14:09 +02:00
xenakios
657c3d6c20 Argh, what a mistake 2018-02-27 20:11:14 +02:00
xenakios
b672213e98 Tweaks to free filter calculations but don't seem to be working correctly yet 2018-02-27 19:21:00 +02:00
xenakios
51049e4ae1 Mutex protect the envelope when manipulating the amount of nodes from the GUI. Should probably redesign this stuff a bit...Init envelope reset nodes. 2018-02-27 15:21:36 +02:00
xenakios
195a630060 Implemented free filter processing. Note that the envelope manipulation from the GUI is not handled thread safely yet 2018-02-27 15:02:34 +02:00
xenakios
e8d134ce48 More work on free filter 2018-02-27 04:06:53 +02:00
xenakios
909b61922b Attempt implementing offline rendering from the plugin but not going so great. Looks like the StretchAudioSource doesn't really work that robustly... 2018-02-26 17:49:19 +02:00
xenakios
47638ba0c6 Prepare to allow adding offline rendering feature 2018-02-26 16:34:13 +02:00
xenakios
13d03ecaeb Handle corner case in hasProperties 2018-02-25 21:06:59 +02:00
xenakios
101825df59 Fix for clang 2018-02-23 21:12:16 +02:00
xenakios
a988086ec6 Whoops, almost forgot the smoothed play range stuff for multiple channels 2018-02-23 21:01:39 +02:00
xenakios
3a8da6de0c Make seeking work again. Some variadic template, fold expression etc trickery for value tree etc. Readme change. 2018-02-23 20:46:51 +02:00
xenakios
6f6670b2d4 Parameter store and recall stuff 2018-02-23 18:09:01 +02:00
xenakios
1f24ffb1b6 Moved dry source playback into its own method. Allow moving waveform time selection without having to press shift 2018-02-23 17:43:29 +02:00
xenakios
f47e848f19 Shorter range change fade length. Readme change. 2018-02-22 22:20:06 +02:00
xenakios
122c90bf3f Smooth play range change almost working... 2018-02-22 21:03:46 +02:00
xenakios
a8079b277f Attempt to do fade outs and fade ins when seeking source sound, but not working yet. Readme changes. 2018-02-22 20:01:29 +02:00
xenakios
c98b7c70e4 Report unstretched play range length when playing original source 2018-02-22 02:04:30 +02:00
xenakios
1a8bddeb9b Added convenience functions to deal with storing and getting audio parameters and use them 2018-02-22 01:09:36 +02:00
xenakios
715a753893 Resample unprocessed source sound as needed 2018-02-21 20:16:07 +02:00
xenakios
e6a7d26d27 Preliminary work to play the sound source unprocessed 2018-02-21 19:34:39 +02:00
xenakios
3171940a67 Experimented with adding a sound play range offset parameter but not going to be able to support it properly for now. Show debug build title in about screen. 2018-02-15 16:03:00 +02:00
xenakios
e3d893ee9e Added zoomscrollbar for waveform. Removed unused code. 2018-02-14 15:18:35 +02:00
xenakios
b6f5c0ea7d Shorten the FFT switch crossfade length. Remove commented out code. Formatting change. 2018-02-13 22:16:18 +02:00
xenakios
acbbe693bd Boolean stuff 2018-02-13 19:41:52 +02:00
xenakios
c9a3a3ab03 Show additional technical info in label optionally. Added utility function to toggle a bool variable. 2018-02-13 16:51:57 +02:00
xenakios
ccf47720ab Waveform length display improvement. Draw waveform texts brighter. 2018-02-07 14:52:22 +02:00
xenakios
a589f133d2 Format waveform duration in a nicer way 2018-02-06 21:15:20 +02:00
xenakios
b179285b93 Added method to sound source to get playback position percent. Avoid seeking sound source when changing FFT size. Readme change. 2018-01-31 20:06:12 +02:00
xenakios
42061670a8 Clean up. Removed the MultiStretchAudioSource, hopefully it doesn't need to be restored later... 2018-01-30 18:56:00 +02:00
xenakios
f414f19e01 Remove the bool enabled members from the spectral process parameters 2018-01-30 18:49:00 +02:00
xenakios
ced5a5e22a Increase spec process enabled button size. Init spread spec process to disabled. Remove checks for spec process enabled states from processBlock 2018-01-30 17:54:06 +02:00
xenakios
84164da2d7 Finally added enabled buttons for the spectral steps. 2018-01-30 17:32:23 +02:00
xenakios
a24d5c8c81 Make callGUI more generic and move it to globals.h. Readme change. 2018-01-05 17:49:54 +02:00
xenakios
85875d96f4 Remove the unneeded Mutex.h file 2018-01-03 18:28:14 +02:00
xenakios
fbd337bf5d Removed the redundant spectrum processing methods 2017-12-29 05:12:03 +02:00
xenakios
22aaaeb836 Got rid of unnecessary buffers. There may have at some point been some reason to do it like that though... 2017-12-27 17:57:00 +02:00
xenakios
7dcf9831f2 Try zeroing even more buffers, but no help... 2017-12-27 17:43:36 +02:00
xenakios
a6ec40904c Rename member. Attempt clearing buffers more thoroughly but old audio still appears to be present when restarting playback... 2017-12-27 17:35:30 +02:00
xenakios
9630daba15 Use standalone functions for all spectral processors. Readme change. 2017-12-23 21:46:37 +02:00
xenakios
8a92376713 Hardcode 8 channels for stretchsource xfade buffer 2017-12-17 19:54:12 +02:00
xenakios
11be9bfde5 Comment out some logging code 2017-12-15 21:12:49 +02:00
xenakios
dc86913533 Added pause playback feature with fades for smoothing 2017-12-14 22:17:45 +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
e411a99f70 If capture buffer used, refresh waveform when GUI has been closed and reopened. 2017-12-13 05:18:39 +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
5737b92165 Layout parameters in a grid for now etc 2017-12-12 19:54:54 +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
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
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
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
xenakios
0dcd410780 Support bool parameters in parameter component. Add freeze parameter to plugin. 2017-11-16 19:45:40 +02:00
xenakios
43be82edc8 Plugin initialization bug existed also on Windows, fixed for now...Make the GUI poll for some state changes from the AudioProcessor, instead of the processor calling the GUI. When using memory buffer in input source, copy all channels to xfade buffer. Some other tweaks. 2017-11-16 16:58:04 +02:00
xenakios
84e564b393 Still trying... 2017-11-16 02:48:24 +02:00
xenakios
adc6505424 Still trying to understand the MacOs no sound issue, but no luck...Sigh. 2017-11-16 02:33:00 +02:00
xenakios
3fd0b4ea09 Trying to get the Mac build working, but no luck... 2017-11-16 01:42:51 +02:00
xenakios
4620ba818e Save and restore plugin state. Port input file skipbuffer bug fix from standalone app. 2017-11-15 20:51:52 +02:00
xenakios
c34961995d Implemented a proper equality operator for the processparameters. Also tried something a bit too smart with it, left commented out in the code... 2017-11-15 02:06:36 +02:00
xenakios
d442e2eaea Added diagnostics to see how often the parameters have been set. Added a somewhat hacky way to avoid doing the parameter updates if not needed, using raw memory comparison. 2017-11-14 19:44:13 +02:00