|
|
|
06-13-2018, 06:49 AM
|
#1
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
HansTheMan's Reaper scripts
Hey guys, just finished my first Reaper script for the MIDI editor,
This script is made for making a glissandi scale between two notes.
You can also choose gradual ease-in or ease-out and note repetitions.
The script is especially useful if you want to replicate the orchestral harp glissandi like John Williams.
Just select two notes, run script and choose the notes you want in your scale and if you want ease-in or out. The range knob is the percentage of number of notes effected by the ease-in/out. The curve knob is the exponential curvature for the ease-in/out.
Holding down ctrl while mouse dragging a knob will increment in small steps.
Then hit the create scale button to create the scale. Ignore the preview button since it is not yet implemented.
You can download the script here,
https://github.com/TheOriginalHansTheMan/glissandi
you will also need to download Lokasenna's GUI library and setup the correct path.
In the next version I might include the GUI library for easier installation, and in case he makes changes to it.
I plan to include "ease-in and ease-out" for the next version.
|
|
|
06-13-2018, 07:22 AM
|
#2
|
Human being with feelings
Join Date: Oct 2008
Location: Right Hear
Posts: 15,618
|
thanks and yes, please do make it so the GUI lib is included already...
perhaps you could also then put it up on ReaPack?
|
|
|
06-13-2018, 08:07 AM
|
#3
|
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 9,866
|
@hanstheman
Nice one for a first script :P
Thanks for sharing !
Small enhancement:
https://github.com/TheOriginalHansTh...issandi.lua#L1
The dependency are hardcoded, your should consider using relative path (and maybe even pack the GUI library in your repo).
|
|
|
06-13-2018, 08:10 AM
|
#4
|
Human being with feelings
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
|
Always nice to see people using my GUI. Cheers.
I'm currently in the process of tidying it up for a "stable" release, so I can then make some major rewrites and changes to the structure without pissing anyone off. I'll only ever touch the release version for bug fixes, so it'll be put on ReaPack. I forget the syntax, but I think ReaPack headers can require other packages to be installed somehow.
|
|
|
06-15-2018, 02:38 AM
|
#5
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
Quote:
Originally Posted by Lokasenna
Always nice to see people using my GUI. Cheers.
I'm currently in the process of tidying it up for a "stable" release, so I can then make some major rewrites and changes to the structure without pissing anyone off. I'll only ever touch the release version for bug fixes, so it'll be put on ReaPack. I forget the syntax, but I think ReaPack headers can require other packages to be installed somehow.
|
Sounds nice! I guess I can just include the version of your GUI I'm using for next update of the script. Then in the future when it's included in ReaPack I can look at it again.
It is an amazing GUI thank you so much for making it.
|
|
|
06-15-2018, 02:51 AM
|
#6
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
Quote:
Originally Posted by X-Raym
|
I will do that for next version
Merci pour tes tutoriels, ça m'a aidé beaucoup!
|
|
|
06-15-2018, 07:12 AM
|
#7
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
Quote:
Originally Posted by X-Raym
@hanstheman
The dependency are hardcoded, your should consider using relative path (and maybe even pack the GUI library in your repo).
|
I'm not entirely sure how this is done. The GUI is located in a folder with subfolders. Do you know how to do this so that it will work on both mac and windows ?
I've tried a couple of ways but it seems difficult to do since Lua is run through Reaper.
|
|
|
06-15-2018, 07:24 AM
|
#8
|
Human being with feelings
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
|
Quote:
Originally Posted by hanstheman
I'm not entirely sure how this is done. The GUI is located in a folder with subfolders. Do you know how to do this so that it will work on both mac and windows ?
I've tried a couple of ways but it seems difficult to do since Lua is run through Reaper.
|
You can copy/paste all of Core.lua in place of the loadfile("Core.lua") command, and likewise for each of the classes. My Script Compiler (I think it's still available on ReaPack) does this, but it looks for a custom function - there's an example on the Help tab, or you can see it used in all of the Example scripts.
Relative paths would require the library to be installed in the same place relative to your script, which is a little trickier. The upcoming release will include an "install" script that saves the library path as an ExtState for scripts to quickly access.
But yeah, at the moment your script requires all users to have the GUI in C:/Users/J/Documents/REAPER Media/Scripts/Lokasenna_GUI-master, which I can pretty much guarantee nobody will.
|
|
|
07-04-2018, 12:28 AM
|
#9
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
Uploaded final version 0.1 of Glissandi (including Loka's GUI)
Final version 0.1 (including GUI)
https://github.com/TheOriginalHansTheMan/glissandi
In the future I am considering publishing two versions, one including GUI and one without (for those who have it installed).
|
|
|
07-04-2018, 04:00 AM
|
#10
|
Human being with feelings
Join Date: Aug 2011
Posts: 508
|
I got this error message when running the script, after selecting a couple notes. Any idea?
|
|
|
07-04-2018, 12:40 PM
|
#11
|
Human being with feelings
Join Date: Aug 2011
Posts: 508
|
Just confirmed this happens in another computer. I am running 5.91..might that be the issue?
|
|
|
07-04-2018, 01:29 PM
|
#12
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
Quote:
Originally Posted by reapero
Just confirmed this happens in another computer. I am running 5.91..might that be the issue?
|
no it should work, and you are using win10 also ?
I also checked on my 2nd computer and it works fine.
I do believe the error is from Loka's GUI since I checked and my script does not use that sign that generates the error. I don't know if the GUI has any dependencies such as SWS, but I'm sure you have that extension installed anyway?
|
|
|
07-04-2018, 01:52 PM
|
#13
|
Human being with feelings
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
|
You've most likely saved the script as HTML when you downloaded it, rather than the actual Lua code.
Try right-clicking this link, choose Save As, and make sure the file ends with .lua: https://raw.githubusercontent.com/Th.../Glissandi.lua
Hans - I'd really recommend distributing your scripts through ReaPack. It's simpler, easier for people to find, and keeps this issue from happening (some browsers don't play nicely when you try to download a .lua file).
|
|
|
07-05-2018, 01:01 AM
|
#14
|
Human being with feelings
Join Date: Aug 2011
Posts: 508
|
You are correct Lokasenna.
Weird thing is i already right click and Saved as, and got a .lua file...so everything looked fine on the file.
I guess i´d be better if i just go and copy the raw text then paste it into a lua file myself when downloading scripts from Github.
|
|
|
07-05-2018, 02:30 AM
|
#15
|
Human being with feelings
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
|
If you're using Safari, this is actually a known issue dating back ten years.
|
|
|
07-05-2018, 03:45 AM
|
#16
|
Human being with feelings
Join Date: Aug 2011
Posts: 508
|
win10 + chrome here. I guess its not only Safari then!
|
|
|
07-08-2018, 12:38 PM
|
#17
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
I usually download as zip from github.
How do I distribute through Reapack ?
|
|
|
07-08-2018, 12:50 PM
|
#18
|
Human being with feelings
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
|
If you're comfortable with services like Github and using Ruby, you can set up your own repository and give out the link for people to add to their ReaPack: https://github.com/cfillion/reapack-index
If you're not comfortable with those, the easiest way is to upload your scripts to the ReaTeam repository: https://github.com/ReaTeam/ReaScripts#contributing
|
|
|
07-08-2018, 12:53 PM
|
#19
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,048
|
Oh, we can actually upload our stuff to the ReaTeam repo???
I thought that needs to be acknowledged by the admins.
|
|
|
07-08-2018, 12:56 PM
|
#20
|
Human being with feelings
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
|
ReaTeam members on Github can push files to the repo themselves.
Literally anyone with a Github account can create a pull request though - it creates a duplicate ("fork") of the ReaTeam repo on their account, with their changes/additions, and then requires a team member to check it over and merge it into the main repo.
|
|
|
07-08-2018, 02:31 PM
|
#21
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,048
|
I see, thanks for the info!
|
|
|
04-28-2020, 10:49 AM
|
#22
|
Human being with feelings
Join Date: Aug 2015
Location: Florence, Italy
Posts: 463
|
Could it be possible to add a save scale option so I could save the scales I use more frequently to recall them when if I need to use them often?
Last edited by DANIELE; 04-28-2020 at 11:18 AM.
|
|
|
04-29-2020, 01:30 AM
|
#23
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
Quote:
Originally Posted by DANIELE
Could it be possible to add a save scale option so I could save the scales I use more frequently to recall them when if I need to use them often?
|
Sure I actually planned it all along but haven't been programming for Reaper for the past year or so... I'm slowly getting back to composition and thus will get more motivation for reaper scripting
I checked out your stuff, I'm a bit in the same direction composition wise so could be cool to hear what you'd think Reaper is missing.
I had some ideas to program a better workflow for cinematic-midi users, better ways to save and manipulate MIDI data etc... Keep an eye on this thread - you might find future scripts useful!!
Oh if you are curious you can check out my stuff,
https://www.youtube.com/watch?v=PQ4UYE61NpE
https://soundcloud.com/hans-jonathan-hummelgaard
|
|
|
04-29-2020, 05:59 AM
|
#24
|
Human being with feelings
Join Date: Aug 2015
Location: Florence, Italy
Posts: 463
|
Quote:
Originally Posted by hanstheman
Sure I actually planned it all along but haven't been programming for Reaper for the past year or so... I'm slowly getting back to composition and thus will get more motivation for reaper scripting
I checked out your stuff, I'm a bit in the same direction composition wise so could be cool to hear what you'd think Reaper is missing.
I had some ideas to program a better workflow for cinematic-midi users, better ways to save and manipulate MIDI data etc... Keep an eye on this thread - you might find future scripts useful!!
Oh if you are curious you can check out my stuff,
https://www.youtube.com/watch?v=PQ4UYE61NpE
https://soundcloud.com/hans-jonathan-hummelgaard
|
Ehi thank you so much for answering. I'm full of ideas but lacking in time so I accept with pleasure your invitation.
I'm really an engineer with some little skills in programming (I'm not a programmer but I find easy to learn new languages). Having a few time I have to choose and actually I'm trying to write music for the most part. I hope some day I will have the time to learn lua language (I remember I played with it a bit some years ago). Maybe this collab could be useful to learn something more.
I find Reaper pretty good for me but I must say I had to change my workflow sometimes to adapt to the software due to the lacking of useful functions I would need. I have to re-think about that.
In the mean time I have some useful idea to improve this great plugin. I'm doing a Star Wars like track so I started to write many runs by hand, then I remembered I had your great plugin so I started using it and it is so useful.
Saving favorite scales and maybe get to the user the ability to choose from a predefined range (classic scales, major, minor natural, harmonic, melodic, maybe the various modes and something special like octatonic, pentatonic, diminished and so on...) is one of them.
Maybe instead of pre-configuring all the scale in a menu they could be build them with some simple user settings (tonic, scale type). Then if you want a more specific thing (repetitions etc...you could use the already pretty good interface).
Another idea is to add the ability to do multiple direction scales...well I think I'll stop for now, I don't want to over spam you.
I will follow the thread and I'll check out your links after work.
|
|
|
04-29-2020, 09:00 AM
|
#25
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Having additionally a huge pull down menu with preset scales would be great, there are many scale jsfx already, data from there could be used. One could load from those presets quickly, then modify further if necessary.
|
|
|
05-08-2020, 01:18 AM
|
#26
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
I can make it so that custom scales and data are saved WITH the Reaper project. But sharing data between projects would require writing to desktop file, haven't worked with that before. I'm a Windows user, so would NOT support Mac if I figure it out.
However, right now I'll work on custom MIDI controllers - I managed to communicate between Unity3D and Reaper through the OSC protocol. So you could as an example control Reaper knobs through an XBox controller , or even better through VR!!
You can also trigger scripts inside Reaper, so in terms of one-direction communication you can do almost everything!
I plan to make everything OpenSource and available on Github!
I would DEFINITELY recommend you study LUA scripting, it's made to be one of the easier programming languages.I think it would make the most sense if I tidy up my LUA code so that you or others can easily contribute adding data lists etc... I could make Youtube videos explaining things... I'm still a novice programmer so could use the Github practice of working with others
Funny you mention Star Wars - studying John Williams Star Wars sheet music was my main inspiration behind the plugin
Mm, I think a live VR version of Glissandi would be easy to do, do you have a SteamVR device ?
I'll take your ideas into consideration Thank YOU
Quote:
Originally Posted by DANIELE
Ehi thank you so much for answering. I'm full of ideas but lacking in time so I accept with pleasure your invitation.
I'm really an engineer with some little skills in programming (I'm not a programmer but I find easy to learn new languages). Having a few time I have to choose and actually I'm trying to write music for the most part. I hope some day I will have the time to learn lua language (I remember I played with it a bit some years ago). Maybe this collab could be useful to learn something more.
I find Reaper pretty good for me but I must say I had to change my workflow sometimes to adapt to the software due to the lacking of useful functions I would need. I have to re-think about that.
In the mean time I have some useful idea to improve this great plugin. I'm doing a Star Wars like track so I started to write many runs by hand, then I remembered I had your great plugin so I started using it and it is so useful.
Saving favorite scales and maybe get to the user the ability to choose from a predefined range (classic scales, major, minor natural, harmonic, melodic, maybe the various modes and something special like octatonic, pentatonic, diminished and so on...) is one of them.
Maybe instead of pre-configuring all the scale in a menu they could be build them with some simple user settings (tonic, scale type). Then if you want a more specific thing (repetitions etc...you could use the already pretty good interface).
Another idea is to add the ability to do multiple direction scales...well I think I'll stop for now, I don't want to over spam you.
I will follow the thread and I'll check out your links after work.
|
|
|
|
05-09-2020, 02:18 AM
|
#27
|
Human being with feelings
Join Date: Aug 2015
Location: Florence, Italy
Posts: 463
|
Quote:
Originally Posted by hanstheman
I can make it so that custom scales and data are saved WITH the Reaper project. But sharing data between projects would require writing to desktop file, haven't worked with that before. I'm a Windows user, so would NOT support Mac if I figure it out.
However, right now I'll work on custom MIDI controllers - I managed to communicate between Unity3D and Reaper through the OSC protocol. So you could as an example control Reaper knobs through an XBox controller , or even better through VR!!
You can also trigger scripts inside Reaper, so in terms of one-direction communication you can do almost everything!
I plan to make everything OpenSource and available on Github!
I would DEFINITELY recommend you study LUA scripting, it's made to be one of the easier programming languages.I think it would make the most sense if I tidy up my LUA code so that you or others can easily contribute adding data lists etc... I could make Youtube videos explaining things... I'm still a novice programmer so could use the Github practice of working with others
Funny you mention Star Wars - studying John Williams Star Wars sheet music was my main inspiration behind the plugin
Mm, I think a live VR version of Glissandi would be easy to do, do you have a SteamVR device ?
I'll take your ideas into consideration Thank YOU
|
I have a Rift S so yeah I have a VR device.
About saving stuff if you don't manage to do this as I said you can build scales based on user settings.
I'll do some Lua tutorial for sure but then I have to learn how to use it inside Reaper, it is not an easy journey.
I tried to look at your code but there are so many lines that I lost myself, obviously it contains the gui code also so I had to find who does what.
Maybe some tutorial about your code would be useful to edit it while someone is learning Lua.
About JW...yeah JW and Glissandi are the same thing.
|
|
|
05-22-2020, 02:19 PM
|
#28
|
Human being with feelings
Join Date: Sep 2019
Posts: 50
|
Would it work to write all the scales you use into a project template and use that to start new projects?
I'll check out this project after I get my instrument templates sorted. Thanks!
|
|
|
05-22-2020, 11:40 PM
|
#29
|
Human being with feelings
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
|
Hans! You're other idea about osc integration for unity is very interesting to me as a sound designer for games
My personal music has gone into the realms of ambisonic/binaural and intend to release it via vr (in the future) so that proper binaural tracking can be done so things like being able to take vr headset positions and send them over vr is going to be super useful so..
Keep up the amazing work!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
|
|
|
05-24-2020, 05:13 AM
|
#30
|
Human being with feelings
Join Date: Aug 2011
Posts: 508
|
Quote:
I can make it so that custom scales and data are saved WITH the Reaper project. But sharing data between projects would require writing to desktop file
|
Sorry if i didnt get this clearly but, shouldnt ExtState (instead of ProjExtState) work in this context?
Quote:
So you could as an example control Reaper knobs through an XBox controller , or even better through VR!!
|
Wow, that sounds interesting! Please do share your advances (i am a game audio dude too!)
Quote:
Having additionally a huge pull down menu with preset scales would be great, there are many scale jsfx already, data from there could be used. One could load from those presets quickly, then modify further if necessary.
|
You know what i always wanted for this and other glissandi tools? A Learn mode where you can click on notes on a simple piano roll gfx (we could steal Reaper´s MIDI input as well i guess and just bang the notes on your MIDI controller), with option to delete the last note just in case you clicked on the wrong one to define the scale.
I suck at theory and, more often than not, i am using custom scales so its easier for me to just play the notes i am interested in than think "well yeah this is a b5 dominant with flat 11th add semi altered diminished 6th..this is just too painful to me.
Thanks Hans
|
|
|
05-24-2020, 11:43 AM
|
#31
|
Human being with feelings
Join Date: Mar 2015
Posts: 29
|
great script, I'd appreciate a learn function but a pull down menu for scales should be easier to accomplish I guess. I tried to force Midi notes to key signature with key snap enabled, but it messes up the glissando.
hans, do you think it is possible that your script could write the glissando in the key signature of the key snap the piano roll is set to?
Thanks for the script!
|
|
|
05-25-2020, 11:24 AM
|
#32
|
Human being with feelings
Join Date: Aug 2015
Location: Florence, Italy
Posts: 463
|
Ehi Hans I had a few hours of time to play with your great plugin and I managed to add Scales and Chords as user settings.
I still don't know the lua very well so maybe my code could be optimized a bit but it works really great.
I studied a bit also the guy system but it lacks in examples and tutorials so I managed only to do basic things.
I put in the main loop some code that set the sliders based on tonic and scale type choosed by user.
You can also do chords arpeggios.
To allow the user for manual sliders editing I added a button that avoid the scale to be forced by drop down menus.
Thank you so much for writing this awesome script. Now I'm able to set scales only by choosing tonic and type.
|
|
|
05-25-2020, 03:12 PM
|
#33
|
Human being with feelings
Join Date: Mar 2015
Posts: 29
|
Quote:
Originally Posted by DANIELE
Ehi Hans I had a few hours of time to play with your great plugin and I managed to add Scales and Chords as user settings.
|
damn, this looks like a great addition!
|
|
|
05-25-2020, 10:48 PM
|
#34
|
Human being with feelings
Join Date: Aug 2015
Location: Florence, Italy
Posts: 463
|
Ehi Hans is it ok for you if I share here this addition?
All the credits go to you, you did the job I only added a few lines of code.
Thank you.
|
|
|
05-26-2020, 08:29 AM
|
#35
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,048
|
Oh wow Daniele, that looks really awesome. looking forward to this addition!
I'm sure Hans will agree on releasing it.
|
|
|
05-26-2020, 09:30 AM
|
#36
|
Human being with feelings
Join Date: Aug 2015
Location: Florence, Italy
Posts: 463
|
Quote:
Originally Posted by _Stevie_
Oh wow Daniele, that looks really awesome. looking forward to this addition!
I'm sure Hans will agree on releasing it.
|
Thank you Stevie. I'm planning to do some more things even if I'm pretty satisfied with this one.
For example the two "manual" buttons you see do the same thing but I decided to replicate them because it is more user friendly I think.
Maybe I could move the buttons in another area and rework the interface, I don't know.
Let's wait for Hans permission, then I will share this little work I did.
|
|
|
05-28-2020, 11:44 PM
|
#37
|
Human being with feelings
Join Date: Aug 2015
Location: Florence, Italy
Posts: 463
|
I get the authorization from Hans to publish this little addition I made.
You can overwrite the previous one (I leaved the same name to avoid confusion). The functions are the same of the original but now you can set a scale based on the tonic and the type. You can also do some chord arpeggios using the same method.
The scales and chords type lists could be expanded obviously, especially the chords one.
The UI should be quite intuitive but here's a short explanation:
- By default the interface works with the scale tonic and type selection, if you want to set it manually you have to press the button "Manual Scale Set". If you want to came back to the menu selection you have to press "Menu Scale Set";
- Same thing for the chords, if you want to use those menus you have to press "Menu Chord Scale Set" before. Same thing as before if you want to manually edit the sliders;
- The button "Reset all to 0" set all the sliders to 0 (incredible, right?!?) if you want to start from scratch doing something yours.
In the future Hans told me that he want to implemet a save scale function, maybe I will try to do the same when I have time.
I would also like to remove that buttons and doing the things automatically based on mouse click but I have to do some more experiments to understand how lokasenna gui works using that methods.
If you have suggestions or if you find bugs feel free to share them here.
PS keep in mind I'm not a professional coder so I did this for my usage and I like to share it with you.
Enjoy.
|
|
|
05-29-2020, 03:43 AM
|
#38
|
Human being with feelings
Join Date: Mar 2015
Posts: 29
|
Quote:
Originally Posted by DANIELE
I get the authorization from Hans to publish this little addition I made.
...
Enjoy.
|
Great, thank you Daniele, and of course thanks Hans!
|
|
|
05-29-2020, 11:24 PM
|
#39
|
Human being with feelings
Join Date: Oct 2016
Posts: 39
|
Saving data to Reaper..
Hey all, I'm super happy there is so much interest in the script! And thanks Daniele to extending functionality!!
I found my old script that also uses the GUI ver. 2, where you can store basic midi notes and a few other data along with your Reaper project file (among other things, mostly experimental stuff!), so should be super easy to incorporate that into the Glissandi script..
It uses a modified version of the GUI's block class... I'll upload it for reference but I haven't looked at it for years.
BUT the serialize and deserialize methods for storing data could easily be modified to save data into the Glissandi script...
I apologize if it isn't working, I haven't checked it with newer Reaper versions..
I don't know when I will have time to work on it so anybody feel free to do it yourself XD
|
|
|
06-12-2020, 07:00 AM
|
#40
|
Human being with feelings
Join Date: Aug 2011
Posts: 508
|
Great script! Would be very nice to intercept the MIDI notes with it so at least you could enter the scale tonic with the keyboard.
Thanks hans and Daniele!
EDIT: Well, maybe just a change in the UI displaying the notes and scales directly instead of the dropdown would be enough for starters. That would make 2 clicks instead of four.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 09:39 PM.
|