Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 12-17-2017, 08:09 AM   #361
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

My custom GUI for Ctrlr panel with lua scripts support:

Some improvements of the LCD with the same font, that was used in the original controller:

Last edited by fundorin; 12-17-2017 at 08:17 AM.
fundorin is offline   Reply With Quote
Old 12-17-2017, 10:36 AM   #362
azslow3
Human being with feelings
 
Join Date: Nov 2017
Location: Heidelberg, Germany
Posts: 745
Default

Quote:
Originally Posted by fundorin View Post
Why not? I don't get it, tbt. I've watched your AZLua video yesterday. It's a good project.
The project was good. But not for original purpose...
a) I have understood that I should not immediately implement something and that can be extremely frustrating
b) I have understood why (DX) MFX had to die (design problems)
c) I had a look at Lua. My experience with developers from the same organization was not perfect, so I had no big hopes. But I have found Lua not so bad, for what it is.

Quote:
For the past several years, I was desperately trying to find a proper tool for Reaper, that would use Lua and be able to operate both OSC and MIDI.
It seems like you had a lot of fun

Quote:
...because I'm not a programmer...
I guess there could be a good CSurf solution otherwise, taking the time you have invested into account.

Quote:
So, I would definitely prefer (CSurf module + MIDI I/O + OSC I/O + WEB I/O + PlugMaps Lua interpreter with Rea API, MIDI and OSC bindings) to work with, since it could be native and bulletproof solution to my task.
I agree. Till Lua (or any other generic interpreter) and I have abandoned Web idea (OSC Apps work better than any browser for controlling purpose).

Back it time, I had to choose one of the following approaches:
* just write ACT module for my use case (simplest)
* bind some interpreter (probably Python) to ACT API (a bit more work)
* create something "new" (it was clear that takes A LOT of time)

Since I was new in the DAW world and so I had no strait idea what my controller(s) should do, I have decided to proceed with the last, most complicated, approach.

Just imagine that instead of Reaper as you know, you have to choose between using someone else project (like a hardware "all-in-one" studio device) or you have to write a Lua(Python/JS) script which describe your own project. I do not think anyone will use such a "DAW". There are so many other products where you can add/move tracks, routes, FXes "on the fly". There is usually quite some learning curve, compare to simple analog mixer and tape recorder, but almost everyone is aware that the time invested will pay back. That is how all modern music production is working.

Interesting, that in Control Surfaces department there was no such "revolution". In most DAWs there are still just 2 possibilities as in "pre-DAW" time: use "black box" hardware+software with fixed functionality or "MIDI Learn" the same way as for "MIDI era" controllers with hardware MIDI synth. Some DAWs allows users to write own scripts (Bitwig, Ableton) or programs (Reaper, Sonar).

AZ Controller is an attempt to make the same general approach change as software DAWs have made with recording, allows interactively build reaction/response from/to devices. Current version is still at "baby" level, there are not many projects from which it can "learn" what/how it should do. Also the audience is limited. Hardware recorders producers could not stop software DAW development, software DAW producers (most of which are bound to hardware companies) can effectively "suppress" such direction (by not disclosing the API...). Sonar is dead. And so Reaper is THE ONLY DAW which allows such controllers revolution. Let see how far I will get this time
azslow3 is offline   Reply With Quote
Old 12-17-2017, 10:46 AM   #363
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Quote:
Originally Posted by azslow3 View Post
I guess there could be a good CSurf solution otherwise, taking the time you have invested into account.
I'm constantly looking at Csurf from time to time, but don't get it. The last time was today. If only there was a simple heavily commented example project available, so it would be possible to get it working with SL. Some basic functionality, like transport button, single encoder for selected track volume and a single pot for pan. I need a starting point into this area. Otherwise, it's all wild unexplored jungle to me.
fundorin is offline   Reply With Quote
Old 12-17-2017, 01:45 PM   #364
azslow3
Human being with feelings
 
Join Date: Nov 2017
Location: Heidelberg, Germany
Posts: 745
Default

Quote:
Originally Posted by fundorin View Post
I'm constantly looking at Csurf from time to time, but don't get it. The last time was today. If only there was a simple heavily commented example project available, so it would be possible to get it working with SL. Some basic functionality, like transport button, single encoder for selected track volume and a single pot for pan. I need a starting point into this area. Otherwise, it's all wild unexplored jungle to me.
Included into SDK Faderport should be exactly that (it is one strip controller, with not so many controls and with the feedback).

General idea of CSurf is... you can DECLARE a surface the way Reaper understand your intention. It is proposed you do the rest alone, using general Reaper API or whatever you want else.
There are some basic methods called by Reaper when related parameters are changed, but in general you are on you own to find anything else.
azslow3 is offline   Reply With Quote
Old 12-17-2017, 03:55 PM   #365
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Quote:
Originally Posted by azslow3 View Post
Included into SDK Faderport should be exactly that (it is one strip controller, with not so many controls and with the feedback).
Faderport is the one that's I'm always checking first, because it's the smallest. Yet, I couldn't manage the purpose of those functions and variables due lack of knowledge about C++ syntax, even though I've watched a couple of courses/video about C++. Just don't understand, which variables/functions are from Reaper API/C++/custom.
Quote:
Originally Posted by azslow3 View Post
General idea of CSurf is... you can DECLARE a surface the way Reaper understand your intention. It is proposed you do the rest alone, using general Reaper API or whatever you want else.
There are some basic methods called by Reaper when related parameters are changed, but in general you are on you own to find anything else.
On my own. Exactly. No tutorials, except ReaScript ones.
fundorin is offline   Reply With Quote
Old 12-17-2017, 04:12 PM   #366
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,132
Default

Quote:
Originally Posted by Geoff Waddington View Post
... there is no such thing as CSurf....
Now I am perfectly confused. (Sorry for mingling the citations.)

-Michael

Last edited by mschnell; 12-17-2017 at 04:22 PM.
mschnell is offline   Reply With Quote
Old 12-17-2017, 05:59 PM   #367
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by mschnell View Post
Now I am perfectly confused. (Sorry for mingling the citations.)

-Michael
No worries, I finally think I see what they mean by CSurf.

It seems they are using it to indicate a C++ control surface interface based on the examples in the Reaper SDK, which calls a control surface a CSurf in the code.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-17-2017, 06:07 PM   #368
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 25,054
Default

Quote:
Originally Posted by Geoff Waddington View Post
No worries, I finally think I see what they mean by CSurf.

It seems they are using it to indicate a C++ control surface interface based on the examples in the Reaper SDK, which calls a control surface a CSurf in the code.
Yea... the extension reaper_csurf.dll which is what that code compiles into aka the built in support for various control surfaces. When we created the FaderPortXT driver, we extended the builtin support in CSurf as the built in control surfaces support is part of the SDK.
__________________
Clever is not the same as good, clever is from the head, good is from the heart. -Benmont Tench
karbomusic is online now   Reply With Quote
Old 12-17-2017, 07:51 PM   #369
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Quote:
Originally Posted by karbomusic View Post
Yea... the extension reaper_csurf.dll which is what that code compiles into aka the built in support for various control surfaces. When we created the FaderPortXT driver, we extended the builtin support in CSurf as the built in control surfaces support is part of the SDK.
So, could you, please, add meaningful comments to csurf_faderport.cpp code, explaining each line's purpose and tell me, which files should also be added/altered in source directory to add a new plugin to the build or compile a completely separate new plugin for a single controller?

2Geoff: Sorry for hijacking your thread again. 🤡
fundorin is offline   Reply With Quote
Old 12-17-2017, 08:13 PM   #370
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 25,054
Default

Quote:
Originally Posted by fundorin View Post
So, could you, please, add meaningful comments to csurf_faderport.cpp code, explaining each line's purpose and tell me, which files should also be added/altered in source directory to add a new plugin to the build or compile a completely separate new plugin for a single controller?
I'm not sure I know it that well at this point, it's been 2011/12 since I did the work I did. I can say that there is a MIDI event listener (void OnMIDIEvent(MIDI_event_t *evt)) with midi event data as an incoming argument, that get's parsed in one big "if" statement and then acted upon accordingly (usually by calling an action by ID or setting a control surface param based on what came from reaper). Most everything else in that file are variable declarations and utility functions.

I'd love to help more but I'm not well-versed in writing C++ as I am debugging it in a debugger. I'd start helping and be stuck as quick as anyone else because I don't know the conventions well enough from a compiler standpoint.
__________________
Clever is not the same as good, clever is from the head, good is from the heart. -Benmont Tench

Last edited by karbomusic; 12-17-2017 at 08:18 PM.
karbomusic is online now   Reply With Quote
Old 12-17-2017, 10:50 PM   #371
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,132
Default

Quote:
Originally Posted by Geoff Waddington View Post
No worries, I finally think I see what they mean by CSurf.

It seems they are using it to indicate a C++ control surface interface based on the examples in the Reaper SDK, which calls a control surface a CSurf in the code.
Ah, just an example !
So it is there just to provide hints to C++ programmers.
Hence any criticism on that code used in a practical application (or mentioning it as something anybody would even know) seems perfectly pointless.

Nonetheless, discussing it here as a base for some future "product" seems decently viable (not like "hijacking").

-Michael
mschnell is offline   Reply With Quote
Old 12-18-2017, 12:21 AM   #372
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 25,054
Default

Quote:
Originally Posted by mschnell View Post
Ah, just an example !
So it is there just to provide hints to C++ programmers.
Hence any criticism on that code used in a practical application (or mentioning it as something anybody would even know) seems perfectly pointless.

Nonetheless, discussing it here as a base for some future "product" seems decently viable (not like "hijacking").

-Michael
Also, some of those examples, are what the builtin control surfaces binaries are/were compiled from, not random examples but the actual CS support that comes with Reaper so that helps.
__________________
Clever is not the same as good, clever is from the head, good is from the heart. -Benmont Tench
karbomusic is online now   Reply With Quote
Old 12-18-2017, 04:15 AM   #373
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

fundorin is offline   Reply With Quote
Old 12-18-2017, 09:30 AM   #374
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

I've downloaded your source code from GH, Geoff, so I could deconstruct it and build a basic csurf plugin as a starting point for my controller.
But, when I've opened reaper_csurf_integrator.sln in VS2017, I've got the following set of warnings and errors. What do you think might be a reason for those? https://i.imgur.com/M7S5HkL.png
fundorin is offline   Reply With Quote
Old 12-18-2017, 10:03 AM   #375
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by fundorin View Post
I've downloaded your source code from GH, Geoff, so I could deconstruct it and build a basic csurf plugin as a starting point for my controller.
But, when I've opened reaper_csurf_integrator.sln in VS2017, I've got the following set of warnings and errors. What do you think might be a reason for those? https://i.imgur.com/M7S5HkL.png
Ok, so to first answer your question, the errors are in VS because I develop on a Mac and I simply haven't compiled on Windows in a week or so, thanks for doing my work for me re: Windows issues, I am surprised that's all it didn't like

To fix the errors you need to compile for C++17, google how to set VS for C++17, adjust VS accordingly and you should compile.

That said, this code is in a state of development and is a bad candidate to study.

Second, and MUCH more important, it is a terrible introduction to all of this, in order to accommodate external definition by map files, the code is EXTREMELY indirected and thus VERY hard to understand and reason about !!!

Believe me, I know, I wrote the damn thing and find myself hopelessly lost more often than not

So, please don't start your C++ code journey here, for your own mental health, you need a more direct example, like the Faderport SDK example as others have pointed out
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143

Last edited by Geoff Waddington; 12-18-2017 at 10:09 AM.
Geoff Waddington is online now   Reply With Quote
Old 12-18-2017, 10:28 AM   #376
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Faderport goes with all other surfaces support, as well as your Eucon plugin did. I'm trying to find a simple "single surface" source project to begin with.
Nanokontrol2 almost builded, but had these 2 errors: https://i.imgur.com/6XbYDLf.png.
Klinke's one is too huge for a start, I think.
The only one that was built successfully, but with some deprecated functions and some other warnings, was Tascam 2400. Although, it has some code, related to WDL and also GUI part, as far as I can understand. And I don't understand it. 🤓
https://i.imgur.com/1JQww8v.png
https://i.imgur.com/zoSto91.png
fundorin is offline   Reply With Quote
Old 12-18-2017, 10:35 AM   #377
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by fundorin View Post
Faderport goes with all other surfaces support. I'm trying to find a simple "single surface" source project to begin with.
In the SDK look at the csurf_faderport.cpp file, that is the Faderport only code, it's a good place to start.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-18-2017, 10:46 AM   #378
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 25,054
Default

Quote:
Originally Posted by Geoff Waddington View Post
In the SDK look at the csurf_faderport.cpp file, that is the Faderport only code, it's a good place to start.
There is also the lastest of the Faderport XT code, I know it has been refactored but maybe some value there since the OP is wanting to work with at single CS...

https://github.com/TheNimaj/Faderport_XT

And...

https://github.com/TheNimaj/Faderpor..._faderport.cpp
__________________
Clever is not the same as good, clever is from the head, good is from the heart. -Benmont Tench
karbomusic is online now   Reply With Quote
Old 12-18-2017, 11:30 AM   #379
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Tried to build FaderportXT.
It's showing the same error as one of the other plugins that I've tried.
res.rc(10): fatal error RC1015: cannot open include file 'afxres.h'.
https://i.imgur.com/KJFAt3r.pngGoogle says that MFC for C++ should be installed and I already have it (russian name): https://i.imgur.com/k9tva0V.png

What could be a solution to this issue, guys?
fundorin is offline   Reply With Quote
Old 12-18-2017, 12:04 PM   #380
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 25,054
Default

Sorry it took me awhile, I had to pull it down, try to compile, see the error, then find the solution... I had to go dig up the reference for atlmfc which I found here on my machine:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include

I then went into Project > Properties > VC++ Directories > Include Directories and appended it to the include path...



It then built....

Quote:
1> Creating library .\Debug\reaper_csurf.lib and object .\Debug\reaper_csurf.exp
1>reaper_csurf.vcxproj -> C:\Temp\Faderport_XT-master\Faderport_XT-master\jmde\csurf\..\..\Build\reaper_csurf_fpxt.dl l
There were some warnings after that but looks like it's just a warning about output directories not matching in the config but since it successfully built the DLL, likely nothing to worry about...



FWIW, I think MFC is mainly needed for the settings dialog FYI but don't quote me as I'm flying a little blind here. FYI, if using the Express version of Visual Studio, this could potentially be more complicated but hopefully this will work.
__________________
Clever is not the same as good, clever is from the head, good is from the heart. -Benmont Tench

Last edited by karbomusic; 12-18-2017 at 12:11 PM.
karbomusic is online now   Reply With Quote
Old 12-18-2017, 12:23 PM   #381
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Needed to install MFC and ATL components.
The problem is that even when I've changed VS language to english, adding components interface was still in russian. I though that I already had that one, but found out that I didn't.
So, 1.3Gb less on the system SSD and MFC is installed.
Debug x64 - success
Release x64 - Error LNK1117 syntax error in option 'mapinfo:lines'
X64 x64 - Success

Thanks.
fundorin is offline   Reply With Quote
Old 12-18-2017, 01:43 PM   #382
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by fundorin View Post
Needed to install MFC and ATL components.
The problem is that even when I've changed VS language to english, adding components interface was still in russian. I though that I already had that one, but found out that I didn't.
So, 1.3Gb less on the system SSD and MFC is installed.
Debug x64 - success
Release x64 - Error LNK1117 syntax error in option 'mapinfo:lines'
X64 x64 - Success

Thanks.
Glad you got it sorted !!

Wondering if this got a bit "programmy", maybe we should split off separate threads when it gets specific like that, dunno...... it is, after all about open source software... hmm.....
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-18-2017, 01:50 PM   #383
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

If you want a dedicated beta tester with properly configured VS 2017 for your plugin, don't split the thread and I'll stop posting offtopic. 🤓
fundorin is offline   Reply With Quote
Old 12-18-2017, 02:15 PM   #384
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by fundorin View Post
If you want a dedicated beta tester with properly configured VS 2017 for your plugin, don't split the thread and I'll stop posting offtopic. 🤓
Ha no worries, i was jus' thinkin' out loud

As far as the compile problem, I just spent a couple of hours in hell on the Windows side trying to get it sorted, not done yet, back over there shortly

Seems that some compiler versions may not support certain C++17 features, Xen warned me about this...
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-18-2017, 02:31 PM   #385
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

This is what I get with integrator:
https://i.imgur.com/ff2RUvC.png
http://pastebin.ru/dA9OiPW5
No other serious errors, though. Only some minor warnings.
fundorin is offline   Reply With Quote
Old 12-18-2017, 02:33 PM   #386
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by fundorin View Post
This is what I get with integrator:
https://i.imgur.com/ff2RUvC.png
http://pastebin.ru/dA9OiPW5
No other serious errors, though. Only some minor warnings.
Yup, that's what I'm getting.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-18-2017, 02:38 PM   #387
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

I've changed from

to

and this error has gone.
But, because when I first imported the project, I've chose to update SDK version and something else for it, I now get a couple of other ones, some of which might be related to the update of the project:

Last edited by fundorin; 12-18-2017 at 02:45 PM.
fundorin is offline   Reply With Quote
Old 12-18-2017, 03:58 PM   #388
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by fundorin View Post
I've changed from

to

and this error has gone.
But, because when I first imported the project, I've chose to update SDK version and something else for it, I now get a couple of other ones, some of which might be related to the update of the project:
Yeah, you can't do that and get the needed C++17 features.

Turns out std::byte was introduced in C++17 and that conflicts with Windoze, fixed now, just re-clone and you should be good.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-18-2017, 04:10 PM   #389
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

No errors. No warnings. Only retargeted to the newer SDK version. https://i.imgur.com/NifRSVt.png
fundorin is offline   Reply With Quote
Old 12-21-2017, 02:49 AM   #390
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Update:

Glad to report that this round of refactoring is complete, we are back to where we were a week ago...

Now I have just enough time for some sleep before Christmas

Was it worth it ?

I think so.

The design feels much cleaner internally.

As far as future cool capabilities, FX maps can now span surfaces, so you can have the Reverb pre delay on Mix1's fader 8, and the room size on the iPad room picture, just pinch to zoom
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-21-2017, 08:49 AM   #391
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Yep. Just seen that you've added some new lines to your project. Congrats.
I was watching a drill course for C++ today (with Xcode, but, doesn't matter) and wondered, why didn't you just add "using namespace std;" to the top of your main.cpp file? This addition should've remove all those "std:byte" errors that you had a couple days ago.

Might be a noob question. Whatever.
fundorin is offline   Reply With Quote
Old 12-21-2017, 09:30 AM   #392
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by fundorin View Post
Yep. Just seen that you've added some new lines to your project. Congrats.
I was watching a drill course for C++ today (with Xcode, but, doesn't matter) and wondered, why didn't you just add "using namespace std;" to the top of your main.cpp file? This addition should've remove all those "std:byte" errors that you had a couple days ago.

Might be a noob question. Whatever.
Yeah, using namespace std; has been there since day one, it used to be in control_surface_integrator.h (around line 16) but that caused conflicts between the C++17 and Windows byte definitions, so I had to move it to control_surface_integrator_Reaper.h, and make sure it was after "reaper_plugin_functions.h" to avoid problems.

This is one of the language babysitting "features" you will come to know when coding C++, header inclusion order can be tricky at times.

Also of note, use std::byte if you want C++17 byte and ::byte if you want Windows byte.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-21-2017, 10:43 AM   #393
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Tough stuff 😩
fundorin is offline   Reply With Quote
Old 12-23-2017, 02:28 PM   #394
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Just doing a bit of performance testing.

Those who suffered through this on EuCon will be pleased.

With a project of over 2000 tracks a deletion of a track causes a complete rebuild, and that takes... wait for it... 5 seconds !!

Without CSI installed Reaper is almost instantaneous, so there is still room for improvement, but we're already way ahead of where we were on the EuCon project.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-23-2017, 05:03 PM   #395
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

If EuCon part is overdone, let's add some Novation support, then.
fundorin is offline   Reply With Quote
Old 12-23-2017, 05:16 PM   #396
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Good news, a very productive Saturday, thanks in large part to great help from nofish and cfillion.

Locked tracks now persist to the project file and restore upon project load, YAY !
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Old 12-24-2017, 02:48 AM   #397
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 19,121
Default

Geoff: Once again I want to say just how much in awe I am of the effort you and the other guys are putting in on this. I cant wait to see an Alpha but will prolly feel slightly guilty just riding for free on the back of all your efforts.
I know you arent doing this for personal gain other than having a cool WORKING controller system, but if you should decide to put up some sort of funding link I would love to make a smallish (retiree sized) contribution to say thanks, as I am sure would many of us popcorn-munchers.
__________________
"What a dick comment. I'm gonna make sure to avoid your name." Dicks other than Trump can speak????
ivansc is offline   Reply With Quote
Old 12-24-2017, 10:13 AM   #398
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Quote:
Originally Posted by ivansc View Post
Geoff: Once again I want to say just how much in awe I am of the effort you and the other guys are putting in on this. I cant wait to see an Alpha but will prolly feel slightly guilty just riding for free on the back of all your efforts.
I know you arent doing this for personal gain other than having a cool WORKING controller system, but if you should decide to put up some sort of funding link I would love to make a smallish (retiree sized) contribution to say thanks, as I am sure would many of us popcorn-munchers.
Thanks, the link to the donation page has been in my sig for over six months, guess it wasn't obvious enough, maybe that's why there have been only around 10 donations so far

Revamped my sig to be more blatantly obvious, any donation is appreciated.

And yes, this would be a good time to donate, we are VERY close to an Alpha !!

There is still a huge amount of work to do in 2018 and onwards, so any financial support is more than welcomed.

Merry Christmas, Happy Hanukkah, and any other Seasons Greetings that apply, to everyone out there !!
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143

Last edited by Geoff Waddington; 12-24-2017 at 10:30 AM.
Geoff Waddington is online now   Reply With Quote
Old 12-24-2017, 01:44 PM   #399
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 19,121
Default

Ha ha ha! What can I say, I guess I have to blame my OAP short attention span. As I was writing it a distant dim memory stirred but it never got me as far as looking at your sig. Frankly I usually ignore sigs because most of them are meaningless drivel like my own!

If I can remember this as far a the paypal window I will bung you a small contribution mate.

__________________
"What a dick comment. I'm gonna make sure to avoid your name." Dicks other than Trump can speak????
ivansc is offline   Reply With Quote
Old 12-25-2017, 11:49 AM   #400
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,787
Default

Ok, as a Christmas present to myself, I decided to tackle that scalability problem with track rebuilding mentioned a few posts back.

Track Actions now get added to the map when you bank to a track, not before.

Also known as lazy initialization.

With a project of over 2000 tracks deletion of a track causes a complete rebuild, and that is now instantaneous as opposed to 5 seconds, thank you Santa
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is online now   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:46 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.