Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Developer Forum

Reply
 
Thread Tools Display Modes
Old 01-15-2014, 10:35 AM   #41
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

mdmiller, that's great!

I could really use some help – the extension runs ok, but you'll probably just shake your head about the code.
---david is offline   Reply With Quote
Old 01-15-2014, 04:50 PM   #42
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

I downloaded the package this morning but won't be able to play with it until Friday at the earliest. I want to get used to how everything functions before I look at the code.

I'm sure your code is fine. We're often our own worst critics.

Thanks for starting the project, it looks very interesting and quite useful. Hopefully I'll be able to help a little.
mdmiller is offline   Reply With Quote
Old 01-18-2014, 08:06 AM   #43
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Just to keep everyone on the same page, these are some PMs from the last couple of days between mdmiller and me:


Quote:
Originally Posted by mdmiller in a PM
Hi.

I am very excited about this but ran into a snag. When assigning the MIDI input, Reaper crashed. When I went back to remove it, Reaper crashed. I couldn't restore my previous settings until I deleted the dll. Any ideas?

Thanks,

Mark

Quote:
Originally Posted by ---david in a PM
Hey Mark.

Oh my. Not really.

nardberr is running the x64 version and it seems to work for him, though. What versions (of Windows, Reaper, SWS) are you using?

My first guess would be any of the string stuff, I admit C-Strings are still a bit of a riddle for me, a lot of semi-dangerous poking in the dark ...

Judging from the fact that it crashes directly on startup it seems to be something that happens in the init / object instantiation part (when you select the US-2400 in the preferences, a new US-2400 CSurf object gets instantiated). But that still could be a lot of things ...

I'm not at the studio ATM but I could try and compile alternate versions (leaving out bit after bit) tomorrow, so we can eliminate the error? Maybe you could take just a quick glance on the code, odds are you find something I didn't even think of ...

David

@nardberr,

could you give us details about your installation (versions of Windows, Reaper, etc.) – it might help to zero in on what's going wrong on Mark's machine?


Quote:
Originally Posted by mdmiller in a PM
David,

I'm using Windows 7, 64 bit and running Reaper 4.5.9. I will have a look at the source and see if I can find something. It may be due to compiling on a 32 bit machine. I'll compile it on a 64 bit machine and see what happens. I won't have a break in the studio until Monday or Tuesday, so I'll let you know when I can. Please don't waste time compiling alternate versions. It's probably something on my end.

It's been over 15 years since I used C++ and I'm not familiar with the Reaper API. Even so, I've been programming for a long time. It's possible that I will stumble across something. Strings in C and C++ are a pain. I recall using various libraries to make it easier. I don't remember what they were, it's been too long.

I have the pro versions of VS up to 2012. Which version did you use?

Thanks,

Mark

P.S. You can check out my studio at www.mandmrecordingstudio.com and my profile at www.swsql.com

@Mark,

a recompile by you would be great! And take your time, of course ... I'm using Visual C++ 2010 Express to compile so I think you should be fine.

I thought about researching string libraries (Boost is the first one that pops into my head, although it might be overkill), but the hardest part for me was to get things to compile in the first place so including another library seemed kind of daunting, haha. It's probably a good idea, though.


Thanks everyone for continuing support on this!
---david is offline   Reply With Quote
Old 01-18-2014, 09:29 AM   #44
Nardberr
Human being with feelings
 
Join Date: Mar 2008
Posts: 40
Default

Ok, Hi all!

I am running it in windows 7 64bit, Reaper 64bit 4.59.

The first build gave me problems but no crash, just gave a warning that that it was unable to load and some problems with python but since that I've had no major problems and it has been quite stable for a beta.

No midi inputs need to be assigned in the midi preferences as far as I can remember only input 1 in the controller section. The only thing I can think of midi wise that could cause a crash is a midi loop choking the system.

Oh! Input 2 in the midi section if you want to use the joystick

Your could try moving klinke MCU or any other control plugin out of your plugin folder.

If Python is installed, ensure its one of the latest versions and communicating properly with Reaper.

I have no programming skills so that's about it as far as I can see but hope that I can help.

Once again great work by you David, haven't had a chance to respond properly yet but loving what you have done!
Nardberr is offline   Reply With Quote
Old 01-18-2014, 10:47 AM   #45
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Thanks nardberr!

Ok, so far no differences between the systems – which version of the SWS-Extension do you guys have installed? You can look it up in Reaper under Main Menu > Extensions > About SWS Extension. Mine is 2.4.0 Build #1.

Maybe it's something to do with different Windows versions – back in XP sometimes there were differences between XP Home (or so) and XP Pro ...*Are there different versions for Win 7? Service Packs?
---david is offline   Reply With Quote
Old 01-18-2014, 09:05 PM   #46
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

Thanks Nardberr. I'll try your suggestions I won't be back in the studio until Monday though. Python was working with Reaper at last check. I'll let you guys know what happens.

David, I'm not sure which SWS extensions version I have installed. I'll also check that on Monday. Yes, Win 7 has different versions like XP.
mdmiller is offline   Reply With Quote
Old 01-20-2014, 11:04 AM   #47
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

I compiled the dll and am now getting a MIDI error. The message states that the port won't register. Hmm. I'll have more time to play with everything tomorrow after my clients are finished.
mdmiller is offline   Reply With Quote
Old 01-29-2014, 08:13 AM   #48
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

Still no luck. I'm sure it's something with my system. When I get a chance I'll try unhooking all the MIDI equipment and see what happens. It's tough to troubleshoot when there isn't much time.
mdmiller is offline   Reply With Quote
Old 01-29-2014, 02:08 PM   #49
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Hey Mark, sorry this is so bloody difficult – I really have no idea what's happening.

'MIDI error', that sounds like there's really something going on with your system, because Reaper is handling all the system level MIDI stuff on its own, I just send events through the API – so the error seems to occur somewhere down the line ...

At least that's what I thought at first, but then again, other MIDI stuff works (even the US-2400 in Mackie emulation mode), right?

At the moment I'm having trouble as well finding the time to improve this thing ... maybe we'll pick it up in a couple of weeks. I hope you get it running and can find out what there is to fix.

Good luck and keep us posted!
---david is offline   Reply With Quote
Old 01-30-2014, 05:44 AM   #50
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

Yes, other MIDI stuff works and the US2400 works in Mackie emulation. I'll have some time to troubleshoot tomorrow.
mdmiller is offline   Reply With Quote
Old 01-30-2014, 06:05 AM   #51
Nardberr
Human being with feelings
 
Join Date: Mar 2008
Posts: 40
Default

Quote:
Originally Posted by mdmiller View Post
Yes, other MIDI stuff works and the US2400 works in Mackie emulation. I'll have some time to troubleshoot tomorrow.
Hi Mdmiller, did you try taking your other files out of you Reaper plugin folder and running just the the us-24000 plugin?

I remember early on having to isolate it and put the other plugins back after having found a file that cause some problems.
Nardberr is offline   Reply With Quote
Old 02-01-2014, 07:46 AM   #52
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

Good idea, I'll give that a try. I didn't have time to troubleshoot yesterday since a client stayed longer than expected. I was worn out by the end of the day.

I uninstalled EarSketch that had some files in the plugin folder. It might have something to do with the issue. Others have reported problems with it as well. EarSketch is a programming interface for Reaper that I used for a course via Coursera from Georgia Tech. Removing it solved an issue I had with some preferences not being saved.
mdmiller is offline   Reply With Quote
Old 02-28-2014, 04:36 AM   #53
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 345
Default

I've just checked the us 2400 plug in on windows 7 x64, and so far it seems to works good ! it seems faster than native...

Thanks !

I'll report further after using it more...
mim is offline   Reply With Quote
Old 02-28-2014, 10:57 PM   #54
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default Update!

Quote:
Originally Posted by mim View Post
I've just checked the us 2400 plug in on windows 7 x64, and so far it seems to works good ! it seems faster than native...

Thanks !

I'll report further after using it more...
Thanks mim,

that's really great news! I'm glad it works so well!


Just today I was wondering if anybody was still listening here – I didn't really have time to post anything for so long. But I have been tinkering quite a bit the last days and here's a major update!


Quote:
Originally Posted by mdmiller View Post
I compiled the dll and am now getting a MIDI error. The message states that the port won't register. Hmm. I'll have more time to play with everything tomorrow after my clients are finished.
mdmiller, I think you should check this one out, too, if you find the time – I encountered a MIDI-Error crash just like the one you described. It went away after I exchanged a header file, so maybe you're lucky, too?

Here are the new features:


Changed Aux functionality

As of this version you add aux sends by entering the according mode (i.e. Aux 1 to edit Sends to, well, Aux 1) hitting f-key and the track select. You remove with Shift and track select. I think this it's more intuitive that way. Also, more room for custom actions!


M-Key / Meter Mode

I finally found out how to adress the Meter Mode of the US-2400 (there just was an error in the Tascam docs ...), you can use that now by installing the .dll with '_meter-mode' in the filename and then pressing the Meter Key on the US-2400.

But I admit that I find this a quite useless feature (15 lights for a VU signal, that's more like a consumer tape deck ...) – I could use an additional qualifier key instead (more custom actions, yay!) so I made a version for that as well: If you use the .dll with '_m-key' in the filename pressing Meter makes another command set available (like Shift or F-Key).

Unfortunately this button doesn't send a signal for releasing the button (unlike every other button, weirdly), which poses a problem in using it as a qualifier: If you can't check for a button-up you have no way of knowing if it's still pressed when another button goes down (which is of course how qualifier keys work).

The workaround is as follows: when you press the M-Key it stays activated for a short time (half a second or so). The M-Key and all buttons with assigned M actions flash rapidly during that time.


New On_Screen-Help Window

With the new M-Key there wouldn't be enough room to put all custom actions on the Keymap (the one you can stick to your Master section) in a sensible fashion. So I made an On-Screen Help Window that shows all button functions (hardcoded ones as well as custom actions that were loaded). You can access it by hitting F-Key and Shift together and in that order (reversed order brings up the Channel Strip, see above posts about earlier updates). As long as it's open it simply follows your actions (like changing modes, hitting qualifiers) and shows you the according options.

Screenshots here:
Pan Mode – no qualifier: https://raw2.github.com/DavidLichten...eenHelpPan.png,
Chan Mode – no qualifier: https://raw2.github.com/DavidLichten...enHelpChan.png,
Chan Mode – F-Key pressed: https://raw2.github.com/DavidLichten...lpChanFKey.png


Improved the system for Custom Actions

You can now give your Custom Action ReaScript any name you like. I recommend a short description of what it does, because the filename is the text that shows up in Reaper's action dialog and in the US-2400 On-Screen-Help. The filename just has to contain a kind of signature at the end that the csurf plugin uses to identify and assign the action – it looks like this:

(US-2400 - Chan - FKey - 3)

... which is pretty self-explanatory I guess, but here are the details nonetheless:

* US-2400 – this identifies it as an action the CSurf plug-in is supposed to load.
* Pan / Chan / Aux – assigns an action to a certain mode (i.e. the action is only available in that mode). You can leave this bit out, then the action will be triggered regardless of current mode.
* NoKey / Shift / FKey / MKey – the qualifier key this action is assigned to, obviously. You can leave this out, too, for the action to be assigned to all qualifier combinations. Use NoKey if you want the action assigned to the button without qualifier exclusively. MKey is only available if you haven't installed the meter mode version of course.
* Lastly, the button itself – available are the 6 Aux Buttons (1 to 6), the Null button, and the transport section (Rew, FFwd, Stop, Play, Rec).

The right form is important for assignment to work: Separate the above bits by space, dash, space (' - '). Also, the identification is case sensitive (e.g. Ffwd won't work).

The narrower assignment overwrites the wider one. – Example: Let's say you have an action '(US-2400 - 3)'. This should be triggered by the 3rd Aux button, with every qualifier in every mode. But if you also have an action '(US-2400 - FKey - 3)' this action overrides the other action (only for FKey/3 of course). '(US-2400 - Chan - FKey - 3)' would overide both previous ones.

All buttons except 'Null' have hardcoded actions, when no qualifier is pressed: Aux 1 to 6 with no qualifier enters Aux Mode, transport does the obvious things, but you can override those by loading an action using the according signature (e.g. override Play with (US-2400 - Play) or (US-2400 - NoKey - Play))!


As always, get it here:
https://github.com/DavidLichtenberge...r-csurf-us2400
---david is offline   Reply With Quote
Old 03-01-2014, 09:03 AM   #55
Teddy
Human being with feelings
 
Join Date: Sep 2011
Posts: 132
Default

Quote:
Originally Posted by ---david View Post
Just today I was wondering if anybody was still listening here – I didn't really have time to post anything for so long.
I'm listening! Interesting and inspiring to see how you're adding new functionality while keeping things organized. Keep up the good work!
Teddy is offline   Reply With Quote
Old 03-01-2014, 02:28 PM   #56
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

Thanks for the update! (I'm still listening too.)

I'll let you know how it goes.
mdmiller is offline   Reply With Quote
Old 03-02-2014, 02:15 AM   #57
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 345
Default

I noticed something a bit strange with the us 2400 driver.

I have an osc device, that shows the 24 tracks os the us 2400. In REAPER if I change a volume of a track, the OSC device shows it (change in string of volume). If I change the volume with the regular MCU dll, the OSC device is updated as well. However if I change the volume with the US 2400 and the driver of ---david, the OSC device doesn't update the volume value. (REAPER is not sending to OSC the new value).

---david, do you have an idea about that ?

It's not a show stopper for me, but it would be much nicer to have volume display updated on the osc device.
I noticed solo button has kind of the same problem, but mute seems to work nicely.

Thanks
mim is offline   Reply With Quote
Old 03-02-2014, 09:07 AM   #58
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Quote:
Originally Posted by mim View Post
In REAPER if I change a volume of a track, the OSC device shows it (change in string of volume). If I change the volume with the regular MCU dll, the OSC device is updated as well. However if I change the volume with the US 2400 and the driver of ---david, the OSC device doesn't update the volume value. (REAPER is not sending to OSC the new value).
Hey mim,

the only difference I could find between Mute and Solo is that with Solo I call the button update manually (via SetSurfaceSolo()) after setting the value (via CSurf_OnSoloChange()) whereas with Mute I just set the value (CSurf_OnMuteChange()). The former is (at least for Mute and Solo) unnecessary, as Reaper calls the according SetSurface-method automatically when a value has changed (well, most times at least).

For faders the situation is slightly more complicated, removing the manual call to update here breaks the reset behavior (Shift-Fader: Vol > 0dB, FKey-Fader: Vol > -inf dB) – I don't really know why, maybe it happens to fast, the faders are blocked from updates as long as they're touched, and tapping the fader twice works – but I might be able to work around that.

I'm unsure as to how that might influence the OSC updates, though. But I have compiled a x64-dll (mkey-mode, but it shouldn't matter for a test case) with the manual updates commented out, test it and tell me if that works for you.
Attached Files
File Type: zip reaper_csurf_us2400_test.zip (83.0 KB, 59 views)

Last edited by ---david; 03-02-2014 at 09:08 AM. Reason: typo
---david is offline   Reply With Quote
Old 03-02-2014, 10:49 AM   #59
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 345
Default

Quote:
Originally Posted by ---david View Post
But I have compiled a x64-dll (mkey-mode, but it shouldn't matter for a test case) with the manual updates commented out, test it and tell me if that works for you.
Hello David,

Thanks for the prompt reply. I briefly tested the test version, it doesn't seems to change anything. The behavior is still the same.

I can have solostate to be updated on osc when I change mute. (it worked also with original version).

Still I have to double check the test because I just thought I could have messed with two portables install.
Coming back soon...

EDIT : I double checked, and indeed it's not working better .... I can provide any info you'd want. As I say it's not that important. Thanks for your work.

Last edited by mim; 03-02-2014 at 02:02 PM. Reason: Confirming result
mim is offline   Reply With Quote
Old 03-03-2014, 06:20 PM   #60
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

Sorry David, still no luck. I did a complete reinstall of Reaper, SWS and Python. Reaper crashes when I try to use either of the new dlls. Wish I had better news. It's weird because the US-2400 works with Mackie Universal.
mdmiller is offline   Reply With Quote
Old 03-03-2014, 06:40 PM   #61
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Quote:
Originally Posted by mim View Post
I briefly tested the test version, it doesn't seems to change anything. The behavior is still the same.
Quote:
Originally Posted by mdmiller View Post
Sorry David, still no luck. I did a complete reinstall of Reaper, SWS and Python. Reaper crashes when I try to use either of the new dlls. Wish I had better news. It's weird because the US-2400 works with Mackie Universal.
Oh man. So sorry to hear that.

I think I'm out of my depth here.

Also, I've been toying with the idea of doing a complete rewrite for a while now ... I know, developer's first rule is: 'no rewrites!', but I think that only applies if you start out knowing what you're doing (and I sure didn't – and sometimes still don't). And over the iterations so much unnecessary (or even wrong) stuff has piled up, it really smells ... Well, it would take me some time for sure. I think I'll sleep on it.

What do you guys think – have you ever started over completely, or is step by step refactoring the way to go (to me that sounds even more exhausting)?
---david is offline   Reply With Quote
Old 03-03-2014, 06:51 PM   #62
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Quote:
Originally Posted by mdmiller View Post
Sorry David, still no luck. I did a complete reinstall of Reaper, SWS and Python. Reaper crashes when I try to use either of the new dlls. Wish I had better news. It's weird because the US-2400 works with Mackie Universal.
Oh, hey Mark, just thought of something:

Does Reaper crash when you try to load the CSurf extensions for Frontier AlphaTrack or Tranzport (they are included in the regular Reaper install) – could you try that? (I'm assuming that Reaper crashes for you regardless if the US-2400 is connected or not, so it shouldn't matter if you don't have any of those devices)

I'm asking because I lifted the init stuff (where the csurf object is instantiated and things connect with Reaper) from those two extensions ... so if that crashes too I might have copied something fishy ...
---david is offline   Reply With Quote
Old 03-03-2014, 07:46 PM   #63
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default

I don't know if it crashes when the US-2400 isn't connected. I'll try that first and then see if it crashes with AlphaTrack and Tranzport. I still think something is weird with my system. For example, Reaper still won't save some of my preferences.

I noticed something interesting in the Reaper.ini file after the crash. It showed that the last script run was for the US-2400. I don't remember what it was but the name ended in null. Does that make any sense? I still haven't spent much time looking at your code. It's been pretty busy here.

As far as a rewrite, I don't see anything wrong with that in this case. When developing in the past we would often create a prototype as a proof of concept. Once the prototype showed that the concept worked, the actual program was created after an intensive planning stage. I don't think many people still use this outdated methodology, but that makes little difference.

If I can find the time, possibly over the next few months, I will break things down and see if a bare-bones object can be instantiated and connected properly. However, my development machines are in my home office and the US-2400 is in the studio so I'll have to do some running back and forth.

I doubt that you copied something fishy since the code seems to work for everyone else.

Thank you very much for your efforts to date!
mdmiller is offline   Reply With Quote
Old 03-04-2014, 03:18 PM   #64
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 345
Default

I worked on a mix with this driver the whole day and it worked perfectly. No disconnection, no glitch, and much quicker than original mcu. I only used the faders (no knobs or scripts).

I like the sel and solo master behavior. I have a question though(sorry if it's in the manual), why is the rewind button blinking ?

Thanks David!

I don't know if you should rewrite it. Maybe not now ? Maybe when you'll have a full feature set, and you'd feel confortable with c ?
mim is offline   Reply With Quote
Old 03-21-2014, 09:31 AM   #65
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Hey guys,

sorry for the late answer, been sick, then busy – and I didn't get notified (again).

Quote:
Originally Posted by mim View Post
I have a question though(sorry if it's in the manual), why is the rewind button blinking ?
mim, the blinking lights in the transport section indicate automation modes (off/trim, read, write, latch) – I think that's way more useful than their original function. Also, you can change automation modes for selected tracks (all tracks, if none selected) with shift and the according transport button.

Here's the manual section about it:
https://github.com/DavidLichtenberge...nsport-buttons

Quote:
Originally Posted by mdmiller View Post
If I can find the time, possibly over the next few months, I will break things down and see if a bare-bones object can be instantiated and connected properly.
Mark, that would be great!

Quote:
Originally Posted by mdmiller View Post
As far as a rewrite, I don't see anything wrong with that in this case. When developing in the past we would often create a prototype as a proof of concept. Once the prototype showed that the concept worked, the actual program was created after an intensive planning stage. I don't think many people still use this outdated methodology, but that makes little difference.
That's what I'm thinking – but I have to find the time first, not only the time to do it, but to go through some more learning, too.

I think next thing will be some bug fixing with this version. Unfortunately I won't get this done before May, even June – sorry, guys. If someone using this is too annoyed with the bugs in this version (and there are some hairy ones, especially with the actions (adding aux sends deletes the effects on the aux receive – what?), maybe revert to some older version? Again, sorry.

Last edited by ---david; 03-21-2014 at 09:33 AM. Reason: Added link to manual
---david is offline   Reply With Quote
Old 04-15-2014, 03:13 PM   #66
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

So ...

Sorry it's getting a little quiet in here ... I am pretty much swamped at the moment.

But ...
– I finally found the time to fix the huge Aux bugs, and while I was at it I also added the possibility to switch the Sends between Post and Pre (documentation here: https://github.com/DavidLichtenberge...uttons--tracks)
– The Channel Strip adjusts more quickly now to changes (like Insert / Delete FX) and shows Flip state and FX name.
– I fixed my terribly broken Split Actions (mostly for my own use, I guess, those are a little esoteric ...)

Everyone, feel free to report on any bugs, but it might very well happen that this will be it for quite a while.

Sorry Mark, I did look for another way to fix your problem but found none, but only quickly, I must admit – I really had to squeeze it in with several big, stressful jobs this time. If you find the time to do something with it, it would be really very much appreciated!

As always – if you like, get the new version here:
https://github.com/DavidLichtenberge...r-csurf-us2400
---david is offline   Reply With Quote
Old 04-17-2014, 12:23 PM   #67
flipmedia
Human being with feelings
 
Join Date: Apr 2014
Posts: 4
Default US-2400

Hi all, I have a Tascam US-2400 and I am running Windows Ultimate 7 64 bit SP1.
I have no problems running the Tascam in Reaper using Mackie Universal x 3 and 0, 8, 16 respectively for track assigments in Logic Mode. I however do not get plug-in controls or send controls. I have downloaded David's Github package and installed everything as listed. python 3.34 is installed and communicating. SWS extensions are 2.40, and the Tascam has the latest firmware 1.31. I installed all the scripts etc. I cannot get anything to respond at all in Native mode, under control surface the US-2400 is not listed. I tried using the Mackie Control Universal and adding the Tascam midi channel 1 but nothing works including the transport. I should mention I am running both the 32 and 64 bit version of reaper, perhaps that is the problem? If anyone could offer some advice I'd be grateful as I'd really like to have the added features David outlined. Thanks.

Regards,

Sean
flipmedia is offline   Reply With Quote
Old 04-17-2014, 02:58 PM   #68
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Quote:
Originally Posted by flipmedia View Post
Hi all, I have a Tascam US-2400 and I am running Windows Ultimate 7 64 bit SP1.
I have no problems running the Tascam in Reaper using Mackie Universal x 3 and 0, 8, 16 respectively for track assigments in Logic Mode. I however do not get plug-in controls or send controls. I have downloaded David's Github package and installed everything as listed. python 3.34 is installed and communicating. SWS extensions are 2.40, and the Tascam has the latest firmware 1.31. I installed all the scripts etc. I cannot get anything to respond at all in Native mode, under control surface the US-2400 is not listed. I tried using the Mackie Control Universal and adding the Tascam midi channel 1 but nothing works including the transport. I should mention I am running both the 32 and 64 bit version of reaper, perhaps that is the problem? If anyone could offer some advice I'd be grateful as I'd really like to have the added features David outlined. Thanks.

Regards,

Sean
Hi Sean!

I'm a little confused as to what you tried and what didn't work, but if I understand you correctly, Reaper's Control Surface selection menu doesn't show an entry called 'US-2400 (M-Key-Support)' or 'US-2400 (Metermode)'?

That means Reaper can't find the .dll-file. Possible reasons:

– If you copied both .dlls (there is one for M-Key-support and one for Metermode, see documentation about it here: https://github.com/DavidLichtenberge...-or-meter-mode) try putting only one of them into the 'Plugins' directory – maybe that's a problem

– Could it be you copied the file to the wrong place? For example – I'm assuming you have separate directories for the 64 bit and the 32 bit, maybe something got mixed up and the 32 bit version landed in the 64 bit Reaper directory ...

BTW, anyone, I'm unsure which version to use with 32 bit Reaper on an 64 bit machine – 32 or 64 bit, I'm thinking it depends on the OS, so 64 bit, but I might be wrong?

I hope that helps – if not, let me know.

Oh, and: to anyone who wants to use the Split Actions – proceed with caution! I'm thinking of tossing them, they crashed Reaper twice today! (Everything else should run ok, though)
---david is offline   Reply With Quote
Old 04-19-2014, 03:29 AM   #69
flipmedia
Human being with feelings
 
Join Date: Apr 2014
Posts: 4
Default Tascam us2400

Hi David, thanks so much for the quick reply. I got it working although I haven't had time to put it through it's paces yet. It appears that the Mkey.dll works fine but the meters.dll causes reaper to crash on startup. I tried it with both the mkey and meters dll's in the plugins directory and each on there own and the outcome was the meters.dll crashed reaper everytime. I made sure that the correct 32 bit and 64 bit versions were installed in there separate directory. A few things I noticed so far: The rew transport button is flashing and it has no function. The aux's work but the aux one decoder controls the send levels for all the aux's. (works fine however). I really appreciate your work here David as getting a controller such as the Tascam seems rather redundant if you have to use your mouse for fx sends and manually opening plugins. I'll report back after I spend more time with it.

Thanks again,


Regards,

Sean
flipmedia is offline   Reply With Quote
Old 04-19-2014, 04:42 AM   #70
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Hi Sean.

Quote:
Originally Posted by flipmedia View Post
Hi David, thanks so much for the quick reply. I got it working although I haven't had time to put it through it's paces yet. It appears that the Mkey.dll works fine but the meters.dll causes reaper to crash on startup. I tried it with both the mkey and meters dll's in the plugins directory and each on there own and the outcome was the meters.dll crashed reaper everytime. I made sure that the correct 32 bit and 64 bit versions were installed in there separate directory.
Great that you got it to work … sorry about the 'meters' .dll, I'll look into it when I find the time.

Quote:
Originally Posted by flipmedia View Post
A few things I noticed so far: The rew transport button is flashing and it has no function.
You're not the first one to wonder about the blinking REW ... But that's not a bug, it's a feature – I completely redefined their use, as I find their regular function useless (people should know if their finger is on the REW Button, haha), they indicate automation modes now, see documentation about it here: https://github.com/DavidLichtenberge...nsport-buttons

Quote:
Originally Posted by flipmedia View Post
The aux's work but the aux one decoder controls the send levels for all the aux's. (works fine however).
Oh? I thought they would be bug free now, damn. That's an important feature, I'll see to that.

Do I understand you correctly – if you set up two Aux busses and then go into AUX 1 mode the send levels you enter with the rotary encoder are set for both busses? Or did you mean that when you turn one encoder it sets the send level for all channels at the same time?

Quote:
Originally Posted by flipmedia View Post
I really appreciate your work here David as getting a controller such as the Tascam seems rather redundant if you have to use your mouse for fx sends and manually opening plugins.
Thanks! ... and that's exactly what I thought – so many buttons, so little function ... although I must say I imagined it to be less work than it turned out to be.

Quote:
Originally Posted by flipmedia View Post
I'll report back after I spend more time with it.
Please do! Thanks for testing!

David
---david is offline   Reply With Quote
Old 04-19-2014, 05:52 AM   #71
flipmedia
Human being with feelings
 
Join Date: Apr 2014
Posts: 4
Default Aux sends

Hi David, sorry for being so vague. For example to test the aux sends, I created 4 tracks. Track 1 was a wave file with 3 sends. The remaining 3 tracks were delay aux---1, comp aux---2 and verb aux---3. Only encoder 1 also named aux 1 on the Tascam sends levels for all 3 aux's. It does send independent levels for each aux and illustrates that when I jump between the aux 1-3 buttons showing different levels as i change between them. It's not a problem I was just curious if this was intended. Also in answer to your question regarding 32 or 64 bit for 32 bit reaper on a 64 bit OS you must use 32 bit for 32 bit and 64 bit for 64 reaper on a 64 bit OS. If you put a 64 bit .dll into the 32 bit reaper plugins folder it will not show up in the control surface menu in Reaper preferences.


Regards,

Sean

Last edited by flipmedia; 04-19-2014 at 06:21 AM.
flipmedia is offline   Reply With Quote
Old 04-19-2014, 06:34 AM   #72
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Quote:
Originally Posted by flipmedia View Post
For example to test the aux sends, I created 4 tracks. Track 1 was a wave file with 3 sends. The remaining 3 tracks were delay aux---1, comp aux---2 and verb aux---3. Only encoder 1 also named aux 1 on the Tascam sends levels for all 3 aux's. It does send independent levels for each aux and illustrates that when I jump between the aux 1-3 buttons showing different levels as i change between them. It's not a problem I was just curious if this was intended.
Ah, ok – relief, relief (hoping I got you right this time :-) ).

That is intended, the aux sends are per track (replacing pan on each channel), so you have all sends of a particular buss at hand, and you can fine-tune the combination of tracks you're sending to that particular aux buss. Of course that means, if you want to adjust several aux sends of one track, you permanently have to switch between Aux modes 1 – 6 ... it's a trade-off, I find it to be more useful this way than the other way around, it's simply more often the case in my workflow.

Actually, that's how a lot of these decisions have been made – highly subjectively, based on my needs and preferences ... Feel free to object – if it turns out there's a majority stumbling over my workflow quirks, that might be a reason to rethink a feature (... given I find the time, of course :-) ).

Quote:
Originally Posted by flipmedia View Post
Also in answer to your question regarding 32 or 64 bit for 32 bit reaper on a 64 bit OS you must use 32 bit for 32 bit and 64 bit for 64 reaper on a 64 bit OS.
Thanks for the clarification – I'll update the documentation!
---david is offline   Reply With Quote
Old 04-21-2014, 04:46 PM   #73
flipmedia
Human being with feelings
 
Join Date: Apr 2014
Posts: 4
Default us2400

Hi David, I've had the chance to give the Tascam a good workout with your code and it's nothing short of brilliant. Everything works fantastic and the scribble strip is fantastic (no need for the clumsy meters at all). I love the way it switches information from Channel strip names to FX encoders with all the parameters listed and highlights the channels when used. So anyone using a Tascam US-2400 with Reaper on win 7 64 bit get David's code it works rock solid with both 32 bit and 64 bit reaper. I thought I should mention a few things I added as well. I run an IPad with V-control with the tascam and mostly use the edit window for super quick automation access like read/write/latch etc. If I select a track in V-control the selection is mirrored on the Tascam and vice versa ( all other functions are also reflected). It's also nice to see track metering without having to lookup at the monitor. V-control with the Tascam allows complete control with an even faster workflow (ie record enable, automation switching).
I also added a Mackie Universal for the Tascam us-2400 for midi channel 2 and assigned the joystick to zoom horizonal and zoom vertical under the actions menu.

Thanks again David for turning a control surface into a command center lol.


Regards,

Sean
flipmedia is offline   Reply With Quote
Old 04-21-2014, 06:15 PM   #74
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Quote:
Originally Posted by flipmedia View Post
Hi David, I've had the chance to give the Tascam a good workout with your code and it's nothing short of brilliant. Everything works fantastic and the scribble strip is fantastic (no need for the clumsy meters at all). I love the way it switches information from Channel strip names to FX encoders with all the parameters listed and highlights the channels when used. So anyone using a Tascam US-2400 with Reaper on win 7 64 bit get David's code it works rock solid with both 32 bit and 64 bit reaper. I thought I should mention a few things I added as well. I run an IPad with V-control with the tascam and mostly use the edit window for super quick automation access like read/write/latch etc. If I select a track in V-control the selection is mirrored on the Tascam and vice versa ( all other functions are also reflected). It's also nice to see track metering without having to lookup at the monitor. V-control with the Tascam allows complete control with an even faster workflow (ie record enable, automation switching).
I also added a Mackie Universal for the Tascam us-2400 for midi channel 2 and assigned the joystick to zoom horizonal and zoom vertical under the actions menu.

Thanks again David for turning a control surface into a command center lol.


Regards,

Sean
That totally made my day – so glad you like it!

I found some minor bugs – but probably quick to fix, mostly to do with fader updates, so there's a small update coming in the next days.
---david is offline   Reply With Quote
Old 04-27-2014, 01:37 PM   #75
aer
Human being with feelings
 
Join Date: Apr 2013
Location: Brighton, UK
Posts: 6
Default

David you are an absolute gem!

I have just acquired a US-2400 after a couple of weeks of constant research into control surface options and luckily finding one arrive on ebay. I have mostly worked in Ableton, but bit by bit have been falling in love with the customisation attitude in Reaper.

Your extension for the US-2400 has got me planning to switch full time into Reaper!

I am yet to really put it through its paces as I haven't got many projects very developed in Reaper but I will let you know if I find anything unexpected. I have to say having read through this entire thread and your documentation I am expecting very good things.

I do have one request for a possible feature:

Would it be possible to have a setting where the rotary controllers are output as pitchbends or CCs split across the other midi ports? (similarly to how you got the joystick to port 2 by duplicating the controllers)

So that would be -
rotary 1-8 -> pb channel 1-8 port 2, 9-16 -> port 3, 17-24 -> port 4

I am using an ipad with lemur and have been trying to figure out the perfect way to combine the US-2400 and lemur to handle FX selection and parameter control. I was really interested in the way the MCU mode on the US-2400 outputs midi CCs on a separate port in Chan mode. I wanted to take them directly into lemur and convert them into OSC, which i have tested and can get full bi-directional control with.

The only problem is that all the MCU presets are awful compared to what you have built!

I would try and implement it myself but have no coding experience (apart from the low level scripting I do in Lemur). If you can think of a quick way to have a try at this and if you find the time I would be even more grateful than I already am.

The end goal is to be able to build custom drum sequencers, fx control layouts and synth control layouts which have use of a combination of intuitively laid out, bi-directional and bankable hardware controllers with extra touch screen controls (including more esoteric controllers using lemurs physics and scripting etc). All of which load according to track/fx selection messages sent to and from reaper over OSC. Basically every tool I regularly use set up exactly how I would instinctively want to interact with it instantaneously....

For now I am going to try and continue to hack my way through with the blunt machete that is my stunted programming knowledge. Also going to pick my brother's brains when I can, as he is a programmer with a fair bit of experience working in C++, Python and Reaper.

If I manage to get anything working I post here lemur files & custom actions etc. in case anyone else has lemur and wants to try it out.

But once again, thank you David. You have finally swayed me off Ableton!

Matt
__________________
soundcloud.com/aer-uk

Last edited by aer; 04-27-2014 at 11:41 PM.
aer is offline   Reply With Quote
Old 04-27-2014, 01:38 PM   #76
aer
Human being with feelings
 
Join Date: Apr 2013
Location: Brighton, UK
Posts: 6
Default

Also sorry for the huge post, this has been several weeks of tinkering and research while I was ill all put into one rambling message.
__________________
soundcloud.com/aer-uk
aer is offline   Reply With Quote
Old 05-02-2014, 02:36 PM   #77
mdmiller
Human being with feelings
 
Join Date: Mar 2013
Posts: 125
Default It Works!

It's working! Hooray!

I feel a little stupid. I didn't realize that using EarSketch not only screwed up my preferences file (Reaper wouldn't remember my changes) it also messed Python up.

I started playing with some Python scripts for Reaper on my development machine and all was well. When I tried to run the scripts in the studio I found out that non EarSketch Python scripts and Reaper were no longer friends. Since the EarSketch scripts worked and EarSketch uses Python, it never occurred to me that there would be a problem with regular Python scripts.

Anyway, it works now and I'm anxious to start testing.

Thanks David! I knew it was something on my end.

My advice to all: Don't install EarSketch even though it has some cool features.
mdmiller is offline   Reply With Quote
Old 05-19-2014, 01:46 AM   #78
bishbash
Human being with feelings
 
Join Date: May 2014
Location: UK
Posts: 3
Default WONDERFUL!

Been an engineer for 35 years and I really cannot get by without faders, so I just got a us2400 (isn't ebay wonderful!). I tried 8 channel systems but the bank switching really got in the way.
It's all about the immediate link between what you are hearing and what you are doing, not having to think about selecting something and then selecting something else with a mouse before you can hear it.
Some test mixes of 30 - 40 channel live recordings are instantly better.
Working with the WT Imperial theme on two large monitors - lovely.

Give David a knighthood!

Only thing left to solve - a proper meter bridge. How can I get the track names / levels OUT of the system to an external device? I'm thinking get the data out to a small processor (eg Raspberry Pi, Arduino) and drive some small displays mounted above the encoders.

Not going to hijack the thread - if it turns into anything, I'll start anew.
Cheers
bishbash is offline   Reply With Quote
Old 06-01-2014, 01:52 PM   #79
---david
Human being with feelings
 
Join Date: Jan 2013
Posts: 52
Default

Wow guys,

Sorry I've been away for so long, I've never gotten even one notification about the thread, so today I was just checking in to see if anything happened here ( ... ) and am overwhelmed by the flood of good news!!

I'm so glad it's working for everyone – especially for you, Mark!

Quote:
Originally Posted by mdmiller View Post
I didn't realize that using EarSketch not only screwed up my preferences file (Reaper wouldn't remember my changes) it also messed Python up.
I'll put that into the documentation.

Quote:
Originally Posted by aer View Post
Would it be possible to have a setting where the rotary controllers are output as pitchbends or CCs split across the other midi ports? (similarly to how you got the joystick to port 2 by duplicating the controllers)

For now I am going to try and continue to hack my way through with the blunt machete that is my stunted programming knowledge. Also going to pick my brother's brains when I can, as he is a programmer with a fair bit of experience working in C++, Python and Reaper.
Hey Matt, at least the more important half of it is easily done, you (or maybe your brother) just have to change a couple of lines to get this going:

The magic happens in lines 726 to about 743 of reaper-csurf-us2400.cpp. 727 - 732 are what the extension should do if it gets an encoder message, simply change 'OnEncoderChange()' to 'kbd_OnMidiEvent()' as I have already done in the joystick section (741 - 744) -- 'm_midi_in_dev + x' decides which of the US2400 MIDI ports it should use (+1 -> Port 2, +2 -> Port 3 etc).

Before compiling your customized version, you'll only have to set the options in lines 13 and 14, depending if you want to use Metermode or the 'M'-Button.

That should get it to work in one direction at least - the other direction (sending parameter changes to the led rings) is much more complicated, I'm afraid.

Sorry I'm not doing it myself, but I'm really short on time lately (took me a month to check on the thread ...)

Quote:
Originally Posted by bishbash View Post
Only thing left to solve - a proper meter bridge. How can I get the track names / levels OUT of the system to an external device? I'm thinking get the data out to a small processor (eg Raspberry Pi, Arduino) and drive some small displays mounted above the encoders.
Most people seem to like the combination with iPads mounted on top of the US-2400, maybe that's easier than building something from scratch? Price might be an issue though, first generation iPads are still a hundred bucks on E-Bay (at least in Germany).

If you actually build one yourself with Arduino or whatever, keep us updated – I for one would really like to see that!

---

... It's such a shame, I barely had time to use the thing myself in the last weeks (other obligations) – but it really makes my heart sing to see how many of you are enjoying this!

If you find bugs (and I'm sure you will), feel free to use the issue-tracker on GitHub or post them here – although I can't promise any fixes in the months to come (I'm pretty much booked to the end of the year) ... so, if there is someone out there with time and skills to fix something by themselves - that would be so great! - Just fork it on GitHub!
---david is offline   Reply With Quote
Old 06-08-2014, 04:02 AM   #80
bishbash
Human being with feelings
 
Join Date: May 2014
Location: UK
Posts: 3
Default levels out to meterbridge

Following up to my Meterbridge on US2400 idea.
What is the SIMPLEST way to get the track names / actual meter readings (not fader levels) OUT to an external system / device?
Are they / can they be mapped to MIDI CCs? If so, how do I find out which ones so I can trap them?
I have some programing skills but hacking/recompiling csurf etc is beyond me. Intermediate level JavaScript / Python etc is probably OK
Need to get this sorted before I can decide whether to do the custom hardware thing or a stack of tablets.
Cheers
bishbash is offline   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 03:23 PM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.