Wykres commitów

380 Commity (d03c6749be42544722c0e43aab21e91f86c9daee)

Autor SHA1 Wiadomość Data
James Ball 0ab4b8cc84 Always show 3D settings and rename settings titles to be more clear 2024-01-21 17:56:47 +00:00
James Ball f748fa66d6 Rename ObjComponent, fix Custom Effect, and always show 3D settings 2024-01-17 01:26:07 +00:00
James Ball 22fdf8872d Refactor significant portion of codebase to use custom effect instead of perspective effect, and add perspective effect as a new permanent effect 2024-01-07 19:48:02 +00:00
James Ball 70028c55b5 Remove Vector3D and remove rotate from Shape 2024-01-07 16:37:22 +00:00
James Ball 8a91099c55 Rename Vector2 to Point 2024-01-07 16:17:20 +00:00
James Ball 9376b5d715 Fix trace effects 2024-01-07 16:00:43 +00:00
James Ball 18776c7324 Set value of parameters in correct order, increment version number, and clip input volume 2024-01-01 17:34:17 +00:00
James Ball b20ef8b994 Disable sidechain for Lua 2024-01-01 17:34:17 +00:00
James Ball 7a5ab4d31f Reduce how dark the disabled audio effect names are 2024-01-01 17:34:17 +00:00
James Ball 72cc253159 Resize effect component when too small, and add sidechain ability 2024-01-01 17:34:17 +00:00
James Ball 10fecca39e Correctly notify host of parameter changes when loading a project 2024-01-01 17:34:17 +00:00
James Ball 95ccbacc42 Double-click visualiser to make fullscreen 2023-12-29 13:28:26 +00:00
James Ball 0c10d7054b Enable OpenGL rendering on Windows and Linux 2023-12-27 11:51:21 +00:00
James Ball 968916bb10 Remove duplicate const 2023-12-26 20:49:36 +00:00
James Ball 925bf98e4b Correctly support mono output 2023-12-25 12:56:46 +00:00
James Ball 9f4890c35b Remove dumb cap on drawing speed that caused innacurate frequencies 2023-12-23 10:43:08 +00:00
James Ball 1dcdb50eb0 Remake README for osci-render 2.0 and get projucer file production-ready 2023-12-22 17:52:36 +00:00
James Ball eddfa9bcd9 Enable all buttons on native title bar 2023-12-22 14:41:52 +00:00
James Ball b8892532fc Fix some bugs and deadlocks when opening projects 2023-12-22 10:27:23 +00:00
James Ball fcf5d69f6b Make volume visualiser less laggy at lower sample rates, fix lfo frequency at lower sample rates, improve lua and svg demo files 2023-12-21 21:33:05 +00:00
James Ball 14607636ca Remove button for software oscilloscope, use MIDI key velocity to control gain 2023-12-21 19:58:00 +00:00
James Ball b8a86f3655 Add static dot when beam is moving extremely slowly 2023-12-21 18:46:28 +00:00
James Ball 1eec8fc2e1 Allow modification of visualiser quality, and improve how it looks 2023-12-21 18:31:18 +00:00
James Ball 972a9840cd Fix laggy visualiser component on lower sample rates 2023-12-21 17:24:39 +00:00
James Ball 2fa34819d9 Set lookandfeel earlier on, and set colour for highlighting menu bar 2023-12-21 16:18:34 +00:00
James Ball f810a73a2e Add drop shadow to menu bar and code editor 2023-12-21 15:17:08 +00:00
James Ball 185737dea8 Save ADSR and voice info to state and add Create New Project option 2023-12-21 14:43:15 +00:00
James Ball fd8935a589 Slightly improve Lua variable performance, and add control for MIDI voices 2023-12-21 14:14:33 +00:00
James Ball b85318a4fd Use independent states for every ShapeVoice for Lua 2023-12-20 23:30:20 +00:00
James Ball c17d5024cf Pass more variables from audioprocessor to Lua 2023-12-20 21:41:28 +00:00
James Ball a0d2c93327 Fix bug that meant you couldn't change slider ranges 2023-12-20 21:09:22 +00:00
James Ball 151aaf68cf Use native window with native menu bar 2023-12-20 20:58:08 +00:00
James Ball 0d4f461503 Remove race condition when painting error message, and remove newline characters from error message 2023-12-20 19:22:59 +00:00
James Ball 1eb0c4956f Use a unique id for each file, rather than non-unique filename, to identify a document 2023-12-20 18:43:03 +00:00
James Ball be8f30476b Only update code editors that map to the lua parser 2023-12-20 17:47:58 +00:00
James Ball 6686d25085 Show Lua errors in the code editor 2023-12-20 17:13:38 +00:00
James Ball e3ecb794b0 Start getting useful error messages for Lua 2023-12-20 13:27:22 +00:00
James Ball c62b6a9f90 Change envelope to show ADSR stats when ADSR mode is on 2023-12-19 12:11:12 +00:00
James Ball f9b9e09a53 Change design of envelope component 2023-12-18 15:06:34 +00:00
James Ball 3eb8bbae5a Remove tabs from interface, move MIDI settings to seperate toggleable window, resign MIDI settings and envelope component, wire up MIDI keyboard 2023-12-18 13:41:56 +00:00
James Ball 07a35e709e Add tooltips to fixed rotate and edit buttons 2023-12-17 22:46:24 +00:00
James Ball 633723f1ba Move description to parameters 2023-12-17 21:32:56 +00:00
James Ball b2d37dacb1 Add audio input support 2023-12-14 21:26:40 +00:00
James Ball ea67f99a94 Temporarily disable tooltips 2023-12-14 20:12:03 +00:00
James Ball f310e98d6b Add basic tooltips to effect component 2023-12-12 22:54:36 +00:00
James Ball 6608e0f35b Remove white background from tabs 2023-12-10 21:57:34 +00:00
James Ball 55c296d4f7 Update lookandfeel and revert to old colours 2023-12-10 21:38:35 +00:00
James Ball 7097779110 Correctly disable components visually 2023-12-10 21:03:12 +00:00
James Ball a520ec1621 Avoid having to change alpha for disabled components 2023-12-03 22:52:34 +00:00
James Ball 50cc383e25 Start improving design of effect component lists 2023-12-03 22:37:38 +00:00
James Ball 3ab190398b Allow sections to be resized 2023-11-25 22:10:36 +00:00
James Ball 553e672f84 Minor code cleanup 2023-11-25 18:45:04 +00:00
James Ball 00edb70a75 Have envelope control ADSR of MIDI 2023-11-25 17:57:35 +00:00
James Ball a7169bd8d1 Get all parameters working 2023-11-25 16:38:09 +00:00
James Ball 6d08a00b33 Move envelope to MidiComponent and get parameters working 2023-11-25 15:37:33 +00:00
James Ball 5047979ff4 Show dragging cursor when hovering over envelope line 2023-11-18 11:34:15 +00:00
James Ball 81eb0585ae Fix compilation issues 2023-11-18 11:07:05 +00:00
James Ball 95dd9a5f4b Add default ADSR envelope and control shape of curve with alt + mouse drag 2023-11-18 11:00:14 +00:00
James Ball 3959dafe28 Add functional envelope component for ADSR 2023-11-18 11:00:14 +00:00
DJLevel3 f898e8ac8a Implement oscilloscope improvements 2023-11-07 11:59:57 -07:00
James Ball 48a5f2bb20 Allow lua slider values to be used in perspective function 2023-10-19 12:20:24 +01:00
James Ball 2469835c2f Fix lua values so they update when the interface is closed 2023-09-16 13:59:52 +01:00
James Ball 059d436261 Add Lua fallback script if it doesn't run correctly 2023-09-14 20:21:08 +01:00
James Ball 60e7e2082d Fix various lua bugs to prevent crashes 2023-09-11 21:28:34 +01:00
James Ball ac2cf8f372 Fix default midiEndabled 2023-09-10 19:30:04 +01:00
James Ball 775da0186c Fix Blender when using MIDI, and change default MIDI enabled 2023-09-10 18:52:21 +01:00
James Ball 1bf3ba6646 Add Blender support 2023-09-10 17:43:37 +01:00
James Ball 740f2e2a0a Slightly improve line culling 2023-09-10 12:39:34 +01:00
James Ball a047888382 Super basic 3D object line culling 2023-09-10 12:35:26 +01:00
James Ball eece1b1dae Allow visualiser to be paused by clicking 2023-09-10 11:14:10 +01:00
James Ball 298b2eeb77 Fix BlockingQueue implementation 2023-09-10 10:53:50 +01:00
James Ball a6d25a122c Use a blocking queue instead of lock free to massively reduce CPU usage 2023-09-09 15:32:03 +01:00
James Ball 3c0bda1984 Replace std min with juce jmin 2023-09-09 13:47:02 +01:00
James Ball 398f3268f5 Fix SVG parsing bugs, object parsing bugs, rotation precision errors 2023-09-09 11:22:14 +01:00
James Ball 2157b8a867 Allow files to be selected on mac when opening 2023-09-09 10:02:16 +01:00
James Ball fca62d009f Support enabling and disabling MIDI 2023-09-07 22:04:08 +01:00
James Ball 596771f625 Change how min/max is initialised to prevent naming conflicts on Windows 2023-09-07 21:55:10 +01:00
James Ball 8c8ccb2a02 Get MIDI working, and MASSIVELY speed up calculating arc length 2023-09-05 22:57:29 +01:00
James Ball 81bea16c91 Fix the most major mac bugs 2023-09-05 20:46:05 +01:00
James Ball c6c3b21e06 Merge synthesiser branch into mac-support 2023-09-05 19:52:31 +01:00
James Ball 259dadbf3b Remove old buffer producer and consumer and replace with the way legacy osci-render does it 2023-09-01 23:42:17 +01:00
James Ball adf5624e4e Start trying to support mac 2023-09-01 19:52:36 +01:00
James Ball 8107c521b8 Add tabs for main settings and MIDI settings 2023-08-29 20:47:13 +01:00
James Ball 4667019163 Add failsafe when fetching new frame in loop 2023-08-28 22:09:34 +01:00
James Ball 13a6a6e2e3 Get basic MIDI input working 2023-08-28 22:06:21 +01:00
James Ball 665e7b806e Save and load fonts and styles 2023-08-27 22:01:37 +01:00
James Ball 7c0043edf6 Add text settings 2023-08-27 19:33:42 +01:00
James Ball 616e33c291 Adopt Dracula theme in code editor 2023-08-27 17:47:30 +01:00
James Ball 9eb5ac2c29 Add button to open software oscilloscope 2023-08-27 16:41:16 +01:00
James Ball c9a46c29d0 Completely remove custom SVG implementation and pugixml library in favour of JUCE classes 2023-07-30 14:01:56 +01:00
James Ball 4a3ba6c99c Set background colours for code editor 2023-07-28 22:14:06 +01:00
James Ball e193122cfc Style the title bar on standalone window 2023-07-28 21:55:54 +01:00
James Ball 5a7124cc80 Massively overhaul the entire interface colours to make it look similar to legacy osci-render 2023-07-28 21:10:21 +01:00
James Ball b845d150ff Support opening legacy osci-render projects and fix some bugs 2023-07-28 13:55:44 +01:00
James Ball 40c0086bf4 Add shortcuts for opening, saving, and saving as, as well as file menu bar 2023-07-25 20:44:18 +01:00
James Ball 8bdbe2aac4 Projects are now fully saveable and loadable from a DAW 2023-07-25 14:09:21 +01:00
James Ball c75a036048 Add ability to save state of project to xml 2023-07-25 12:23:27 +01:00
James Ball 96133574b3 Increase length of effect slider label 2023-07-22 22:11:02 +01:00
James Ball 12e4ffa509 Add TODO 2023-07-22 22:06:26 +01:00
James Ball d6436aa3fa Hacky solution to get editing perspective function fully working 2023-07-22 22:00:59 +01:00
James Ball 26860a00e6 Add pencil icon (non-functional) and change long-running spinlocks to mutexes 2023-07-22 18:42:30 +01:00
James Ball 3a50b4f53e Add fixed rotate buttons to perspective effect 2023-07-22 15:07:11 +01:00
James Ball 90ce1a73a2 Create SvgButton component to reduce duplication 2023-07-22 13:44:13 +01:00
James Ball 3701157440 Fix lua sliders and 3d rotation precision 2023-07-21 20:04:10 +01:00
James Ball e3c2010917 Add non-editable perspective effect 2023-07-21 17:42:29 +01:00
James Ball 70de26bbb2 Show different slider when non-static LFO chosen 2023-07-21 11:41:01 +01:00
James Ball 34adbc767d Remove LFO support for Lua and remove 'infinite' lua sliders as you cannot dynamically add parameters 2023-07-21 11:08:55 +01:00
James Ball 4520771b15 Make BooleanParameter discrete, show correct LFO names to plugin parameter 2023-07-20 21:54:21 +01:00
James Ball 7b38df4031 Add animation in Effect 2023-07-20 21:41:53 +01:00
James Ball 08458a4251 Add LFO and LFO Rate as parameters 2023-07-20 20:01:09 +01:00
James Ball e4bc512a66 Add combobox on all effects for changing LFO and move lua/obj panel underneath other effects 2023-07-20 17:24:34 +01:00
James Ball e4a579164c Make visualiser look better, add translate effect, fix fixed rotation axis 2023-07-19 21:40:31 +01:00
James Ball 230707823d Convert all parameters to raw pointers as JUCE manages them 2023-07-18 19:20:54 +01:00
James Ball 28f8626dbc Update effect sliders when DAW changes parameter 2023-07-18 18:28:09 +01:00
James Ball e22897d8d0 Add parameters for enabling and disabling effects, and refactor effects to store a boolean for enabled effects rather than presence in a list 2023-07-18 17:25:09 +01:00
James Ball de3ab79052 Parameters are now controllable from DAW 2023-07-17 20:09:13 +01:00
James Ball 707715bc2e Refactor EffectDetails into EffectParameter 2023-07-17 17:16:18 +01:00
James Ball a9e99d336b Ensure min < max always 2023-07-17 15:39:21 +01:00
James Ball 72951d3146 Range of sliders is now controllable 2023-07-17 14:37:36 +01:00
James Ball bb91460429 Store range, step, and smoothing within EffectDetails 2023-07-16 20:54:41 +01:00
James Ball afc16fc044 Most effects now change smoothly between values, making the visuals MUCH smoother when using sliders 2023-07-14 15:34:24 +01:00
James Ball 6d048ce26e Add wobble effect and remove frequency input from effect applications 2023-07-13 20:11:24 +01:00
James Ball 89452a4dd6 Introduce more locks to prevent concurrency issues 2023-07-11 22:28:54 +01:00
James Ball 3ea8bad02b Use weak_ptr to avoid memory leak and circular reference 2023-07-11 19:25:42 +01:00
James Ball 2462a7978e Add variable-size listboxes for echo effect 2023-07-11 18:48:45 +01:00
James Ball a369adb6ae Add delay effect and refactor effects to allow multiple values per effect 2023-07-11 13:32:52 +01:00
James Ball a103ac44b6 Add audio websocket server that sends data to software oscilloscope browser client 2023-07-10 22:00:36 +01:00
James Ball 662f423bc2 Add volume and threshold icons 2023-07-10 18:04:24 +01:00
James Ball c0e64094aa Create fully-functioning and somewhat good looking volume visualiser 2023-07-10 17:42:22 +01:00
James Ball afdd4483b3 Add basic volume visualiser with non-functioning sliders 2023-07-10 13:17:04 +01:00
James Ball be64e7325e Set audio visualiser to 60fps and show current frequency 2023-07-09 21:30:33 +01:00
James Ball 061595b575 Add proof of concept audio visualiser component 2023-07-08 18:59:05 +01:00
James Ball 8e61d6f280 Add core functionality for audio buffer producers and consumers 2023-07-08 13:25:35 +01:00
James Ball 011fc8bb10 Add trace min and trace max effects 2023-07-06 17:57:10 +01:00
James Ball 18704f46ed Files can be created within osci-render 2023-07-05 22:45:51 +01:00
James Ball 1b974b9706 Restrict to only one additional component in EffectComponent and make code less hacky 2023-07-05 18:17:11 +01:00
James Ball 3db0a94254 Make components align in ObjComponent and reset more things when resetting rotation 2023-07-05 18:14:04 +01:00
James Ball 40537cbe55 Add resources from Java osci-render, fully implement fixed rotation axis for 3D rotation, fix various bugs when opening and closing GUI as a VST 2023-07-05 17:57:41 +01:00
James Ball 241b6c8d18 Introduce proper thread safety around audio effects, and make sure key press detection is global 2023-07-05 15:17:17 +01:00
James Ball af0cd0e8d0 Add reset rotation button and rotation with mouse 2023-07-05 14:14:27 +01:00
James Ball e2f9a6c4a4 Focal length, rotation, and rotation speed sliders all functional, and add Effect initialisable with a lambda 2023-07-05 12:02:28 +01:00
James Ball a487306784 Prevent double-locking when using code editor 2023-07-04 20:59:47 +01:00
James Ball b5cfc2824b Add non-functional .obj settings that appear when .obj file is opened and start properly locking between audio/gui threads 2023-07-04 20:47:54 +01:00
James Ball b117aae5f5 Complete infinite lua slider support 2023-07-04 14:58:36 +01:00
James Ball 2ec4eaba52 Add .lua file settings with infinite (non-working) slider support 2023-07-02 21:00:14 +01:00
James Ball e4b5545723 Add common EffectComponent across all sliders incl. frequency and remove EffectComponentGroup 2023-07-02 18:47:04 +01:00
James Ball 902286a086 All files have their own code editors, fix various bugs 2023-07-02 13:09:24 +01:00
James Ball bb2a03ec2d Correctly show code editor by default 2023-07-02 11:22:01 +01:00
James Ball 91aa11ddcc Lua support fully working and efficient except for sliders 2023-07-01 15:29:53 +01:00
James Ball a4ee966f50 Get initial non-working lua parser set up 2023-04-04 16:17:37 +01:00
James Ball ac67c1bec6 Allow multiple files to be opened, allow files to be closed, and use j and k to change file 2023-03-30 21:09:53 +01:00
James Ball 0ff71379e4 Add basic support for live-editing open files 2023-03-30 17:28:47 +01:00
James Ball c54ab95b0d Massively speed up .obj file loading - now comparable to java osci-render - and fixed missing and duplicated edges 2023-03-29 18:02:23 +01:00
James Ball f6b0411901 Keep track of open files, and massively reduce memory usage for .obj files 2023-03-29 17:19:16 +01:00
James Ball 4bc4629474 Make code editor collapsible 2023-03-29 15:02:29 +01:00
James Ball 9a3e707257 Add very basic code editor 2023-03-29 12:51:22 +01:00
James Ball f6b32c3a0b Add lua library successfully to code 2023-03-29 12:16:26 +01:00
James Ball fe7b59bc70 add checkbox to effects 2023-03-29 10:55:11 +01:00
James Ball 945acf1df9 Change precedence of effects when order in list is changed 2023-03-28 16:21:18 +01:00
James Ball 4cf64c9654 Add smooth effect 2023-03-28 15:52:51 +01:00
James Ball e6c9cee6b1 Add vertical/horizontal distort, rotate, and vector cancelling effects 2023-03-28 14:33:56 +01:00
James Ball a032a16b66 Significantly reduce required code for adding effects 2023-03-28 13:44:46 +01:00
James Ball 3056ae3997 Add functional sliders for bit crush and bulge 2023-03-28 13:12:41 +01:00
James Ball 0ed2a10ac4 Add bulge effect, a way of adding effects, and a draggable list component for showing effects 2023-03-26 13:58:31 +01:00
James Ball cd07ce20a8 Add initial audio effect functionality 2023-03-25 20:24:10 +00:00
James Ball f2719d85b5 Add basic .txt support 2023-02-05 20:36:51 +00:00
James Ball 41af7364f5 Fix various parser bugs 2023-02-05 19:36:50 +00:00
James Ball b0806ecf3d Fully implement SVG parser 2023-02-05 17:39:02 +00:00
James Ball a063f2f988 Add code for SvgParser that mostly works 2023-02-05 00:43:57 +00:00
James Ball 60b80b7812 Add code for SvgState, MoveTo, LineTo, CurveTo, ClosePath 2023-01-23 22:40:55 +00:00
James Ball f0e99440fc Add todo 2023-01-20 23:42:49 +00:00
James Ball 56eaa48bb1 Various optimisations to improve obj file performance 2023-01-20 23:41:37 +00:00
James Ball d8256ac812 Add support for obj files with multiple connected components 2023-01-20 21:39:21 +00:00
James Ball 56efe597cb Use tinyobjloader instead of custom obj reader 2023-01-19 23:02:52 +00:00
James Ball ece67ce7ee Fix bugs with chinese postman solving 2023-01-19 22:16:13 +00:00
James Ball f43a82ae78 Add code for finding z pos of camera 2023-01-19 20:46:41 +00:00
James Ball 435c0fead7 Implement partially working chinese postman (without separate connected components working) 2023-01-19 15:36:33 +00:00
James Ball 0efc108e76 Add support for .obj files (unoptimised) 2023-01-15 22:34:02 +00:00
James Ball 6162a7f203 Create initial pipeline for generating frames and rendering them 2023-01-15 17:01:27 +00:00
James Ball 1154d09f52 Initial JUCE commit 2023-01-09 21:58:49 +00:00