Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER for Live Use

Reply
 
Thread Tools Display Modes
Old 06-18-2020, 10:01 AM   #1
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default Coupler like real church organ.

Hi all,

For live use I have VSTi instruments, in fact organ stops, in a REAPER project.

I am making links between instruments, couplers. This succeeds in that these couplers do not behave like the couplers of an organ. It does not work the way it should do.

What actually needs to be done is that the midi note-on message is interrupted, but not gone.

And when a note is pressed and the coupler is pressed that note also sounds.

How it works at a church organ? The enigine of the organ blows wind to the pipes wich are accessible. Enabling a stop gives the wind access to the pipes that stop. Disabling of a stop disables access of wind to the pipes. The key you play sounds when you enable a stop. Disbling and enabling a stop will result in a sounding pipe wich before is pressed.

I do not see how to emulate this in REAPER.

Kind regards,

Jan Flikweert
Jan Flikweert is offline   Reply With Quote
Old 06-18-2020, 11:34 AM   #2
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Sorry, but maybe I don't really understand the problem.

I understand that a "coupler" (virtually) presses the same key of a target-keyboard, if a key is pressed on a source-keyboard. Correct ?
Of course just routing the messages will not perfectly simulate this, as no key-off events are issued when the coupler is released while some source-keys are still pressed.

This can rather easily be accomplished with a JSFX (script) plugin.

-Michael

Last edited by mschnell; 06-18-2020 at 09:59 PM.
mschnell is offline   Reply With Quote
Old 06-18-2020, 01:20 PM   #3
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default

Quote:
Originally Posted by mschnell View Post
Sorry, but maybe I don't really understand the problem.

I understand that a "coupler" (virtually) presses the same key of a target-keyboard, if a key is pressed on a source-keyboard. Correct ?
Of course just routing the messages will not perfectly simulate this, as no key-off events are issued when the coupler i released while some source-keys are still pressed.

This can rather easily be accomplished with a JSFX (script) plugin.

-Michael
Hi,

Please have a look at the attachment.

Kind regards,

Jan Flikweert
Attached Images
File Type: gif Naamloos.gif (29.4 KB, 269 views)
Jan Flikweert is offline   Reply With Quote
Old 06-18-2020, 10:01 PM   #4
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by Jan Flikweert View Post
Please have a look at the attachment.
Sorry. Can't make any sens or that.

-Michael
mschnell is offline   Reply With Quote
Old 06-19-2020, 12:45 AM   #5
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default

Hi,

Thanks for your reply.

Let us make it easy.

What is the best way of muting/unmuting midi tracks in REAPER with connected external MIDI input devices?

An example:
You send from a external MIDI input device a note on to a MIDI track in REAPER and hold this key.

This track is muted.

While holding that key you decide tu unmute this track.

REAPER does not process the existing note on message.

That is the problem.

Kind regards,

Jan Flikweert
Jan Flikweert is offline   Reply With Quote
Old 06-19-2020, 01:39 AM   #6
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default

Hi,

An other approach could be to search/create a JSFX script handling MIDI messages note on/off as follows:

1. Place every note-on in a buffer.
2. Keep all note on messages in that buffer.
3. Remove that note-on from buffer when for that note a note off message has been received
4. Remove that note on when that note has been played.
5. When the coupler is engaged: Execute midi buffer with pending open note on messages
6. When the coupler is engaged en the notes from buffer have been played remove that note from buffer.


So I will search for a JSFX script. An other option could be to learn how to create this. In that case the sub-forum "REAPER for live use" is not the right place.

Kind regards,

Jan Flikweert

Last edited by Jan Flikweert; 06-19-2020 at 02:40 AM.
Jan Flikweert is offline   Reply With Quote
Old 06-25-2020, 01:42 AM   #7
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default

Hi all,

I can report that I managed to create a PYTHON script with buffered couplers with REAPER as front end.

Here is what I did:

Function wich handles notes
When manual is guest in a coupler and velocity from midi message is larger then 0:
1. Send note on to that manual
2. If a coupler is engaged send note to coupler

When manual is host in a coupler and velocity from midi message is 0:

When velocity guest is 0:
1. If a coupler is engaged and the velocity of the same note of the other manual = 0 send note to coupler and manual

At last:

When no coupler is engaged: sent the midi message to the manual.

Function Engaging coupler
Sent pending note-on messages from host manual buffer to coupler

Class list state manuals
f.e. midi note 36 pedal stays in bfr_pdl[36].dt1,dt2 and dt3.

This contains alwas the actual state of the manual.

Now I can test it. What about latency/polyphony?

I do not say it is easy, but it is done!

Kind regards,

Jan Flikweert

Last edited by Jan Flikweert; 06-25-2020 at 01:58 AM.
Jan Flikweert is offline   Reply With Quote
Old 06-25-2020, 03:43 AM   #8
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by Jan Flikweert View Post
a PYTHON script ... with REAPER as front end.
What is this supposed to mean ?

-Michael
mschnell is offline   Reply With Quote
Old 06-25-2020, 05:19 AM   #9
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default

Hi,

An external Python script handles note on/off messages from midi keyboard, has a console to toggle stops, vibrato and couplers on/off.

In REAPER I have 153 tracks with each track a vsti instrument with Sforzando.
Maybe over the top and I do not use them all together, but it is very nice.

The samples in the SFZ files for Sforzando are recorded from my digital Domus organ. I edited the samples in SPEAR. It is wowing how clean these samples are and how well preserved the harmonics of the samples are!

I created also some mixtures with the program Polyphone.

My digital Domus organ has 95 stored stops in memory and 31 physical stops(real stops) on the console. My digital Domus Organ has 2 manuals and a pedal. I added a keyboard. So I have 3 manuals and a Pedal.

The couplers should be done in Python script or REAPER because they must be stored in a memory for my music library. Each piece of music one recerd with f.e. 30 combinations.

It provides a better quality of the sound.

I use Liquidsonics Reverberate plugin in REAPER to add reverb.

Of course I should like to create this in REAPER script/JSFX, but I did not manage to understand handling midi messages and buffered midi in REAPER.

The goal of this project is to replace open source programs and use REAPER.

One of my wishes is to use the Linuxsampler VSTi plugin. This is possible but Linuxsampler gets messed around with more then one track containing Linuxsampler plugin. So actually at the moment Linuxsampler plugin is limited to 16 instruments. Nice, but not enough.

There should also be a possebillaty to run Linuxsampler standalone, send a script file to Linuxsampler and let Linuxsampler send output to REAPER. This requires: cat yourscript.lscp | netcat localhost 8888. Not so easy in Windows!


Kind regards,

Jan Flikweert

Quote:
Originally Posted by mschnell View Post
What is this supposed to mean ?

-Michael

Last edited by Jan Flikweert; 06-25-2020 at 05:36 AM.
Jan Flikweert is offline   Reply With Quote
Old 06-26-2020, 02:28 AM   #10
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by Jan Flikweert View Post
I created also some mixtures with the program Polyphone.
??? AFAIK "mixtures" and "odd" overtone stops (5 1/3 ...) need to be tuned on (rather) exact overtone frequencies and not in chromatic scale distance to the basic stops. How do you take care of that ?

-Michael

Last edited by mschnell; 06-26-2020 at 02:43 AM.
mschnell is offline   Reply With Quote
Old 06-26-2020, 02:52 AM   #11
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default

Hi,

I made real mixtures.

Each "key" can have from 2 up to 8 samples.

In polyphone I made from f.e. a oktaaf 4,montre '8, gamba 8: something like 16',10 2/3,5 1/3,4,2,1,2/3,1/2

I am not experienced to process more like you suggest.

Kind regards,

Jan Flikweert
Quote:
Originally Posted by mschnell View Post
??? AFAIK "mixtures" and "odd" overtone stops (5 1/3 ...) need to be tuned on (rather) exact overtone frequencies and not in chromatic scale distance to the basic stops. How do you take care of that ?

-Michael

Last edited by Jan Flikweert; 06-27-2020 at 01:05 AM.
Jan Flikweert is offline   Reply With Quote
Old 06-26-2020, 02:32 AM   #12
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by Jan Flikweert View Post
... Kind regards,
Nice but describing the purpose does not answer the question about what is meant by "front end" and what exactly technically is the back end and what is the communication channel between back and front. (BTW I would be inclined to do a "coupler" JSFX for you, but unfortunately I don't understand your language, and you don't understand mine, so this is futile.)

BTW.: if you can do Python, I suppose there are audio libraries and on top of that "Sampler" libraries for Python. Those could run in an external program that maybe can be linked with Reaper via ReaRoute and (e.g.loopMIDI.

-Michael

Last edited by mschnell; 06-26-2020 at 02:41 AM.
mschnell is offline   Reply With Quote
Old 06-26-2020, 02:47 AM   #13
Jan Flikweert
Human being with feelings
 
Join Date: Apr 2020
Posts: 66
Default

Hi,

With the word "front-end" I mean that the VSTi instrument plugin is placed in REAPER and REAPER processes the sound. Maybe not the correct word "front-end".

My goal is to process so many as possible in REAPER. Because I did not manage to process (buffered)midi in a proper way in REAPER I use PYTHON. Audio processing stays in REAPER.

There is a possibillty to run Linuxsampler standalone. You can run this frm REAPER or PYTHON. But this is open source and asking questions at developers and forum will not work there.

Kind regards,

Jan Flikweert
Quote:
Originally Posted by mschnell View Post
Nice but dios not answer the question about what is meant by "front end" and what exactly technically is the back end and what is the communication channel between back and front.

BTW.: if you can do Python, I suppose there are audio libraries and on top of that "Sampler" libraries for Python. Those could run in an external program that maybe can be linked wirth Reaper via ReaRourte.

-Michael
Jan Flikweert 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:45 AM.


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