Commit Graph

86 Commits (b3c17c14c32b6f6defed7453241b414ded96c482)

Author SHA1 Message Date
Ben Niemann ab0887f438 Completely rewrote sheet rendering:
- Don't use QGraphicsView anymore. It was convenient, but got very slow for large sheets.
- Use widgets with custom paint method, just painting what's on the screen.
- Split sheet view into three separate widgets:
  - SheetEditor with the sheet itself
  - Static TimeLine at the top.
  - Static TrackList at the left (not yet used for much).
- Rendering of Score measures is somewhat degraded...
- Batching of updates has been removed, but doesn't seem to be needed right now (Qt's batching of widget updates seems to do the trick well enough).
- Created separate package for SheetView related classes.
- I'm a slacker re unittests :(
2016-11-12 18:05:34 +01:00
Ben Niemann 4261864f97 Try not to swallow stacktraces when terminating a process. 2016-10-02 15:13:11 +02:00
Ben Niemann 9a04e8723d New instrument library. 2016-09-19 19:30:06 +02:00
Ben Niemann 5624c78cd0 Gracefully handle crashes in the audio process. 2016-09-18 12:22:19 +02:00
Ben Niemann ee3066f8e0 Get PipelineGraphMonitor working again. 2016-09-17 11:50:54 +02:00
Ben Niemann 2c034722dd Remove uses of old NodeType, all node instances now have a NodeDescription. 2016-09-17 11:37:47 +02:00
Ben Niemann ebcdd6af32 Split up sheet_view.py. Cleanup a bunch of imports 2016-09-04 22:55:59 +02:00
Ben Niemann 7939509cf4 ObjectReferenceProperty is hard. Don't use it. 2016-09-04 01:36:32 +02:00
Ben Niemann 8bc4dfb7d7 Move NodeDB into separate package and process - UI and project processes use a single shared DB process. 2016-08-28 00:25:05 +02:00
Ben Niemann cfaffc2a0a Add PipelineGraphMonitor to better debug audio graph changes. 2016-08-21 16:06:59 +02:00
Ben Niemann 12387c6412 Make frame size changeable from settings dialog. Doesn't even require a backend restart, can be done while playing! 2016-08-14 14:02:33 +02:00
Ben Niemann 8f936a5786 Add toggle menu to open pipeline perf monitor. 2016-08-07 00:18:02 +02:00
Ben Niemann 5974a793b8 Render performance data as gantt chart. 2016-07-17 02:57:28 +02:00
Ben Niemann 7bec71cf5b Pass performance data to UI. 2016-07-17 00:17:25 +02:00
Ben Niemann 79ac0bad0f Created new server-side player instance.
- Player is per sheet (to make playback state management easier later on).
- Pipeline changes are tunneled through the Sheet object to each connected player.
- SheetView in the UI creates and owns the server-side player.

Needs async setup/cleanup for some UI objects.
Fix/comment-out tests.
2016-07-11 21:30:23 +02:00
Ben Niemann 21eb56ff61 Instrument library makes some noises again. 2016-07-09 22:45:41 +02:00
Ben Niemann 851cf125ca Partial reanimation of instrument library. 2016-07-09 21:14:49 +02:00
Ben Niemann 896a3e53bb Fix tests. 2016-07-03 19:50:13 +02:00
Ben Niemann 1725db8075 Can stream audio from project's audioproc process to main audioproc process. 2016-07-03 14:35:38 +02:00
Ben Niemann 17ddba8b18 Some parts of the infrastructure to stream audio from the project's audioproc process to the UI's backend. 2016-07-03 04:15:01 +02:00
Ben Niemann 9343800820 Select audio backend in settings dialog. 2016-07-02 22:16:46 +02:00
Ben Niemann e90d05f240 Start a audioproc process on startup. Properly shutdown processes on exit. 2016-07-02 20:45:40 +02:00
Ben Niemann 1d2b2fdbef Move Instrument classes to music. 2016-07-02 17:31:26 +02:00
Ben Niemann 58480a53e2 Shutdown project process on close. 2016-07-02 15:05:47 +02:00
Ben Niemann 22e1b8eeb4 Can now open UI for a blank project. 2016-06-25 23:07:19 +02:00
Ben Niemann e6712055db Rearrange project management a bit. 2016-06-25 21:30:39 +02:00
Ben Niemann ed8f0aac93 Add ProjectRegistry to hold opened projects. 2016-06-25 20:48:52 +02:00
Ben Niemann 9e06d1466d Got rid of object addresses, commands reference objects by ID.
The address of list elements change, if the list is modified, so the client side addresses of the object proxies can become invalid.
2016-06-25 16:29:29 +02:00
Ben Niemann fbaee0c241 UI creates project process, connects to it, call open()... and then crashes. 2016-06-25 01:00:30 +02:00
Ben Niemann 7aeeffd4c8 Reintroduce restarting the UI process on magic return codes.
Fix some unclean shut downs.
2016-06-24 01:11:25 +02:00
Ben Niemann 6313801f38 Launch EditorApp from UIProcess class. 2016-06-23 00:49:45 +02:00
Ben Niemann 0ae22035f5 Remove audioproc references from UI, this needs to be rebuilt later. Made all tests pass. 2016-06-19 22:28:15 +02:00
Ben Niemann 5aa6c2adb1 Rebuilt ProcessClient again using mutation based architecture. 2016-06-19 16:37:29 +02:00
Ben Niemann e26956ba2d Quickly hacked audioproc to do synchronous processing, breaking a lot of stuff, but it kinda works. 2016-06-14 00:00:19 +02:00
Ben Niemann f9dd982f18 Wire up MidiHub to the onscreen piano of the instrument lib. 2016-01-01 17:58:08 +01:00
Ben Niemann 9dea545a28 Initial commit to git (from latest version in svn). 2015-11-29 13:02:36 +01:00