mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-29 23:29:41 +02:00
There are now extra blank lines in the results that need to be dealt with. Script updated to do so. This bug 2665 is now fixed. I think there is a small issue with the label command not using the selection that still needs to be addressed too, but it is minor compared to bug 2665 and can wait.
188 lines
4.9 KiB
Python
188 lines
4.9 KiB
Python
# docimages_core.py
|
|
# Sends commands to get images for the manual.
|
|
# This is the shared part reused in a bunch of scripts.
|
|
|
|
# Make sure Audacity is running first and that mod-script-pipe is enabled
|
|
# before running this script.
|
|
|
|
import os
|
|
import sys
|
|
|
|
def startPipes() :
|
|
global tofile
|
|
global fromfile
|
|
global EOL
|
|
if( sys.platform == 'win32' ):
|
|
print( "pipe-test.py, running on windows" )
|
|
toname = '\\\\.\\pipe\\ToSrvPipe'
|
|
fromname = '\\\\.\\pipe\\FromSrvPipe'
|
|
EOL = '\r\n\0'
|
|
else:
|
|
print( "pipe-test.py, running on linux or mac" )
|
|
toname = '/tmp/audacity_script_pipe.to.' + str(os.getuid())
|
|
fromname = '/tmp/audacity_script_pipe.from.' + str(os.getuid())
|
|
EOL = '\n'
|
|
|
|
print( "Write to \"" + toname +"\"" )
|
|
if not os.path.exists( toname ) :
|
|
print( " ..does not exist. Ensure Audacity is running with mod-script-pipe." )
|
|
sys.exit();
|
|
|
|
print( "Read from \"" + fromname +"\"")
|
|
if not os.path.exists( fromname ) :
|
|
print( " ..does not exist. Ensure Audacity is running with mod-script-pipe." )
|
|
sys.exit();
|
|
|
|
print( "-- Both pipes exist. Good." )
|
|
|
|
tofile = open( toname, 'wt' )
|
|
print( "-- File to write to has been opened" )
|
|
fromfile = open( fromname, 'rt')
|
|
print( "-- File to read from has now been opened too\r\n" )
|
|
|
|
|
|
def sendCommand( command ) :
|
|
global tofile
|
|
global EOL
|
|
print( "Send: >>> \n"+command )
|
|
tofile.write( command + EOL )
|
|
tofile.flush()
|
|
|
|
def getResponse() :
|
|
"""Return the command response."""
|
|
global fromfile
|
|
result = ''
|
|
line = ''
|
|
while True:
|
|
result += line
|
|
line = fromfile.readline()
|
|
if line == '\n' and len(result) > 0:
|
|
break
|
|
return result
|
|
|
|
|
|
def doCommand( command ) :
|
|
sendCommand( command )
|
|
response = getResponse()
|
|
print( "Rcvd: <<< \n" + response )
|
|
return response
|
|
|
|
def do( command ) :
|
|
doCommand( command )
|
|
|
|
def quickTest() :
|
|
do( 'Help: Command=Help' )
|
|
|
|
def setup() :
|
|
global path
|
|
global sample_path
|
|
global result_path
|
|
global sample
|
|
global sample2
|
|
global postfix
|
|
postfix = ''
|
|
path = os.path.abspath(__file__);
|
|
|
|
path = os.path.dirname( path )
|
|
path = os.path.dirname( path )
|
|
path = os.path.dirname( path )
|
|
path = os.path.join( path, 'tests' )
|
|
result_path = os.path.join( path, 'results' )
|
|
sample_path = os.path.join( path, 'samples' )
|
|
sample = os.path.join( sample_path, 'FifeAndDrums.wav' )
|
|
sample2 = os.path.join( sample_path, 'FifeAndDrumsStereo.wav' )
|
|
|
|
startPipes()
|
|
do( 'SetProject: X=10 Y=10 Width=910 Height=800' )
|
|
|
|
def imageSet(name):
|
|
print("****************** " + name + " ***************************")
|
|
|
|
def makeWayForTracks( ) :
|
|
do( 'Select: TrackCount=20' )
|
|
do( 'RemoveTracks' )
|
|
|
|
def capture( name, what ) :
|
|
global result_path
|
|
global postfix
|
|
name = name.split( '.png' )[0] + postfix + '.png'
|
|
do( 'Screenshot: Path="'+os.path.join( result_path, name) +'" CaptureWhat=' + what )
|
|
|
|
def loadExample( name ):
|
|
global sample_path
|
|
makeWayForTracks( )
|
|
do( 'Import2: Filename="'+os.path.join( sample_path, name)+'"' )
|
|
do( 'Select: Start=0 End=0')
|
|
do( 'FitInWindow' )
|
|
|
|
def loadMonoTrack():
|
|
global sample
|
|
makeWayForTracks( )
|
|
do( 'Import2: Filename="'+sample+'"' )
|
|
do( 'Select: Start=0 End=150')
|
|
do( 'Trim')
|
|
do( 'ZoomSel' )
|
|
|
|
def loadStereoTrack():
|
|
global sample2
|
|
makeWayForTracks( )
|
|
do( 'Import2: Filename="'+sample2+'"' )
|
|
do( 'Select: Start=0 End=150')
|
|
do( 'Trim')
|
|
do( 'ZoomSel' )
|
|
|
|
def loadMonoTracks( num ) :
|
|
makeWayForTracks( )
|
|
loadMonoTrack()
|
|
do( 'Select: Track=0')
|
|
do( 'SetTrack: Name="Foxy Lady"')
|
|
for i in range( 0, num-1 ):
|
|
do( 'Select')
|
|
do( 'Duplicate' )
|
|
do( 'FitInWindow' )
|
|
do( 'Select: Start=55 End=70 TrackCount=' + str(num))
|
|
|
|
def loadStereoTracks( num ) :
|
|
makeWayForTracks( )
|
|
loadStereoTrack()
|
|
do( 'SetTrack: Track=0 Name="Foxy Lady"')
|
|
for i in range( 0, num-1 ):
|
|
do( 'Select')
|
|
do( 'Duplicate' )
|
|
do( 'FitInWindow' )
|
|
do( 'Select: Start=55 End=70 TrackCount=' + str(num) )
|
|
|
|
def makeMonoTracks( num ) :
|
|
makeWayForTracks( )
|
|
for i in range( 0, num ):
|
|
do( 'NewMonoTrack' )
|
|
do( 'SetTrack: Track=0 Name="Foxy Lady"')
|
|
do( 'Select: Start=0 End=150 TrackCount=' + str(num) )
|
|
do( 'Chirp: StartAmp=0.5' )
|
|
do( 'Wahwah' )
|
|
do( 'FitInWindow' )
|
|
do( 'Select: Start=55 End=70')
|
|
|
|
def makeStereoTracks( num ) :
|
|
makeWayForTracks( )
|
|
for i in range( 0, num ):
|
|
do( 'NewStereoTrack' )
|
|
do( 'Select' )
|
|
do( 'SetTrack: Name="Voodoo Children IN STEREO"')
|
|
do( 'Select: Start=0 End=150 TrackCount=' + str(num) )
|
|
do( 'Chirp: StartAmp=0.5' )
|
|
do( 'Wahwah' )
|
|
do( 'FitInWindow' )
|
|
do( 'Select: Start=55 End=70')
|
|
|
|
try:
|
|
coreLoaded
|
|
except NameError:
|
|
setup()
|
|
coreLoaded=True
|
|
print( "Set up done")
|
|
else :
|
|
print( "Already set up")
|
|
|
|
|