summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpepper <pepper@chimecrisis.com>2014-04-08 19:50:46 -0700
committerpepper <pepper@chimecrisis.com>2014-04-08 19:50:46 -0700
commit2419e6acd46949640fccf5312110dcbca5b6e143 (patch)
tree2e1bbce461631d58b2cbb82c1280ffb31e9693ee
parentff8d397eeed6f9980882646b2e5f37da113645fd (diff)
first scripts
-rw-r--r--add_vsti_to_midi_file.py101
-rw-r--r--reaper_test.py50
2 files changed, 151 insertions, 0 deletions
diff --git a/add_vsti_to_midi_file.py b/add_vsti_to_midi_file.py
new file mode 100644
index 0000000..5b30120
--- /dev/null
+++ b/add_vsti_to_midi_file.py
@@ -0,0 +1,101 @@
+from subprocess import call
+DEFAULT_MIDI_TRACK = '/Users/pepper/Desktop/example.mid'
+DEFAULT_VSTI = 'Omnisphere';
+DEFAULT_TRACK_NAME = 'last'
+
+def console(m):
+ s = str(m) + '\n'
+ return RPR_ShowConsoleMsg(s)
+
+def insertMidiNewTrack(midi_file=DEFAULT_MIDI_TRACK):
+ return RPR_InsertMedia(midi_file, 1);
+
+def addVstiToTrack(track_number=0, FX=DEFAULT_VSTI):
+ track = RPR_GetTrack(track_number,0);
+ fxIdx = RPR_TrackFX_GetByName (track, FX, 1)
+ isOpen = RPR_TrackFX_GetOpen(track, fxIdx)
+ if isOpen ==0:
+ isOpen = 1
+ else:
+ isOpen = 0
+ RPR_TrackFX_SetOpen(track, fxIdx, isOpen)
+ #close FX dialog on track 1
+ RPR_Main_OnCommand(41749,0)
+
+def renderAndClear(track_name):
+ RPR_Main_OnCommand(41824,0); #render everything
+ filename = "/Users/pepper/Documents/REAPER Media/%s.wav" % track_name;
+ call(["mv","/Users/pepper/Documents/REAPER Media/untitled.wav", filename])
+ RPR_Main_OnCommand(40668,0) #delete everything
+ RPR_Main_OnCommand(40296,0) #select all tracks
+ RPR_Main_OnCommand(40005,0) #remove selected tracks from project
+
+def main():
+ #FIXME
+ #ask anton about blocking
+ RPR_Undo_BeginBlock()
+ insertMidiNewTrack()
+ addVstiToTrack()
+ renderAndClear()
+ RPR_Undo_EndBlock("add vsti to midi file",0)
+
+main()
+
+
+
+
+#RPR_SetMediaItemSelected(track,1);
+#RPR_Main_OnCommand(40788,0)
+#console(track);
+#TrackIdx = 0
+#TrackCount = RPR_CountSelectedTracks(0)
+#while TrackIdx < TrackCount:
+# track = RPR_GetSelectedTrack(0, TrackIdx)
+# fxIdx = RPR_TrackFX_GetByName (track, FX, 1)
+# isOpen = RPR_TrackFX_GetOpen(track, fxIdx)
+# if isOpen ==0:
+# isOpen = 1
+# else:
+# isOpen = 0
+# RPR_TrackFX_SetOpen(track, fxIdx, isOpen)
+# TrackIdx +=1
+#def insert_fx():
+# fx = "ReaSynth";
+# i = 0;
+# RPR_Undo_BeginBlock();
+# for i in xrange(0, RPR_CountSelectedTracks(0)):
+# track = RPR_GetSelectedTrack(0, i);
+# fx_idx = RPR_TrackFX_GetByName(track, fx, 1);
+# is_open = RPR_TrackFX_GetOpen(track, fx_idx);
+# console(is_open);
+# RPR_TrackFX_SetOpen(track, fx_idx, is_open);
+## RPR_Undo_EndBlock(strcat(#undo_msg, fx), 0);
+#insert_fx();
+#numTracks = RPR_CountSelectedTracks(0)
+#console(numTracks);
+#for TrIndex in range(0,numTracks-1):
+# tr = RPR_GetSelectedTrack(0,TrIndex)
+# rc=RPR_TrackFX_GetFXName(tr, 0, "", 64)
+# plugname=rc[3]
+# RPR_ShowConsoleMsg(plugname+'\n')
+# if "JS: IX/Mixer_8xM-1xS" in plugname:
+# # set volumes in ix mixer to rising values
+# for x in range(0,8):
+# basevolume=-48+48.0/(numTracks-1)*TrIndex
+# paramval=basevolume+24.0/7*x
+# RPR_TrackFX_SetParam(tr, 0, x, paramval);
+# # set pans to decreasing values
+# for x in range(0,8):
+# panval=1.0-1.0/7*x
+# RPR_TrackFX_SetParam(tr, 0, x+8, panval);
+
+
+#console("track fx FXName: %s" % (TrackFX_GetFXName(1)));
+#console("track fx count: %s" % (TrackFX_GetCount(1)));
+#TrackFX_FormatParamValue
+#TrackFX_GetCount
+#TrackFX_GetFXName
+#TrackFX_GetNumParams
+#TrackFX_GetParam
+#TrackFX_GetParamName
+#TrackFX_SetParam
diff --git a/reaper_test.py b/reaper_test.py
new file mode 100644
index 0000000..0749485
--- /dev/null
+++ b/reaper_test.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python2
+#import socket
+#TCP_IP = '127.0.0.1'
+#TCP_PORT = 5005
+#BUFFER_SIZE = 1024
+#MESSAGE = "process: file1.mid; plugin: Omnisphere.vst; output: file2.wav"
+#
+#s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+#s.connect((TCP_IP, TCP_PORT))
+#s.send(MESSAGE)
+#data = s.recv(BUFFER_SIZE)
+#s.close()
+#
+#print "received data:", data
+
+import socket
+
+TCP_IP = '127.0.0.1'
+TCP_PORT = 5005
+BUFFER_SIZE = 20 # Normally 1024, but we want fast response
+
+s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+s.bind((TCP_IP, TCP_PORT))
+s.listen(1)
+
+def processData(data_string):
+ parts = data_string.split(";")
+ #MESSAGE = "file1.mid;Omnisphere.vst;file2.wav"
+ process = parts[0];
+ plugin = parts[1];
+ output = parts[2];
+ #call reaper internal functions here
+ insert = RPR_InsertMedia(parts[0], 1);
+
+
+conn, addr = s.accept()
+print 'Connection address:', addr
+while 1:
+ data = conn.recv(BUFFER_SIZE)
+ if not data: break
+ print "received data:", data
+ processData(data); #what is conn.send(data)?
+ response_string = "Data recieved! processing...%s" % (data);
+ conn.send(response_string) # echo...something like this is ok? looks so, test it
+# conn.send(data) # echo
+conn.close()
+
+
+#so this is basically it? yep ok I'm just going to look quickly at the reaper api to see if I can find the right functions
+#well I'm not seeing what I need right away...do you think I should look for a similar script, or try to study the api intensely? it's python already so it should work well arlight I'll work from here...thanks! no problems